@daysnap/utils
Version:
53 lines (50 loc) • 965 B
JavaScript
import {
isUndefined
} from "./chunk-3KRJNCKB.js";
// src/trap.ts
var trap = {
list: {},
// 触发
trigger(id, data = {}) {
if (!id.startsWith("trap")) {
throw new Error(`trap id \u547D\u540D\u5FC5\u987B\u6EE1\u8DB3: trap:[componentName]:[action]`);
}
this.list[id] = data;
},
// 创建
create(id, cb) {
if (!id.startsWith("trap")) {
throw new Error(`trap id \u547D\u540D\u5FC5\u987B\u6EE1\u8DB3: trap:[componentName]:[action]`);
}
const data = this.list[id];
this.delete(id);
if (!isUndefined(data)) {
cb(data);
}
},
// 删除
delete(id) {
delete this.list[id];
},
// 清除
clear() {
this.list = {};
}
};
function createTrapInstance(id) {
return {
trigger(data) {
return trap.trigger(id, data);
},
create(cb) {
return trap.create(id, cb);
},
delete() {
return trap.delete(id);
}
};
}
export {
trap,
createTrapInstance
};