add lib/plugins/index.js.
Signed-off-by: 柠檬冲水 <10424920+ningmengchongshui@user.noreply.gitee.com>
This commit is contained in:
parent
72ea0081d5
commit
077865e634
|
@ -0,0 +1,85 @@
|
||||||
|
import plugin from "./plugin.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ********************
|
||||||
|
* - 2024-6-4 @柠檬冲水
|
||||||
|
* https://gitee.com/ningmengchongshui
|
||||||
|
* ********************
|
||||||
|
* 函数式编程语法糖 - 使用示例
|
||||||
|
* ********************
|
||||||
|
* - apps.js
|
||||||
|
*
|
||||||
|
* import { Messages } from "../../lib/plugins/index.js";
|
||||||
|
* const message = new Messages()
|
||||||
|
* message.response(/^(#|\/)?你好/, async (e) => {
|
||||||
|
* e.reply('你好')
|
||||||
|
* return false
|
||||||
|
* })
|
||||||
|
* export default message
|
||||||
|
* ********************
|
||||||
|
* - index.js
|
||||||
|
*
|
||||||
|
* // 导入
|
||||||
|
* import hello from './apps.js'
|
||||||
|
* const event = new Events()
|
||||||
|
* event.use(hello.ok)
|
||||||
|
*
|
||||||
|
* // 导出
|
||||||
|
* const apps = event.ok
|
||||||
|
* export { apps }
|
||||||
|
* ********************
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const define = {
|
||||||
|
name: Date.now,
|
||||||
|
dsc: 'plugin',
|
||||||
|
event: 'message',
|
||||||
|
priority: 999
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export class Messages {
|
||||||
|
count = 0
|
||||||
|
response(reg, fnc) {
|
||||||
|
this.count++
|
||||||
|
const propName = `prop_${this.count}`
|
||||||
|
this[propName] = fnc
|
||||||
|
this.rule.push({
|
||||||
|
reg,
|
||||||
|
fnc: propName
|
||||||
|
})
|
||||||
|
}
|
||||||
|
get ok() {
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||||
|
const App = this
|
||||||
|
class Children extends plugin {
|
||||||
|
constructor() {
|
||||||
|
super({
|
||||||
|
...define,
|
||||||
|
rule: App.rule
|
||||||
|
})
|
||||||
|
for (const key of App.rule) {
|
||||||
|
if (App[key.fnc] instanceof Function) {
|
||||||
|
this[key.fnc] = App[key.fnc].bind(App)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Children
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export class Events {
|
||||||
|
count = 0
|
||||||
|
use(val) {
|
||||||
|
this.count++
|
||||||
|
this.data[this.count] = val
|
||||||
|
}
|
||||||
|
get ok() {
|
||||||
|
return this.data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
export { plugin };
|
Loading…
Reference in New Issue