emitter-master
Advanced tools
Comparing version 2.0.0-dev.20240228 to 2.0.0-dev.20240306
@@ -1,1 +0,1 @@ | ||
var Emitter=function(e){"use strict";function v(e,t){t=e.indexOf(t);-1!==t&&e.splice(t,1)}let t=0,r=!1,m=(e,t)=>e===t;const a={},n={},s={},o={};function y(){}function _(e){return s[e]??(s[e]=[])}function w(e){return a[e]??(a[e]=[])}function x(e){return o[e]??(o[e]=[])}function E(e){return n[e]??(n[e]=[])}function p(e,r,a){let n=[];if("string"==typeof e)n.push(e);else{if(!Array.isArray(e))throw new Error("错误的参数:"+e);n=e}if(a?.passphrase)for(let e=0,t=n.length;e<t;e++){var s=n[e],o=w(s),p=E(s),l=p.filter(e=>m(e.passphrase,a.passphrase));if(0===l.length){var i={data_type:"sender",start:(new Date).getTime(),passphrase:a.passphrase,data:r};a?.timeout&&(i.timeout=a.timeout),o.push(i)}else for(let e=0;e<l.length;e++){var f=l[e];"string"===f.event_name_type?f.handle(r,y):f.handle({event_name:s,data:r},y),"once"===f.event_type&&v(p,f)}}else for(let e=0,t=n.length;e<t;e++){var h=n[e],c=_(h),u=x(h);if(0===u.length){var d={data_type:"sender",start:(new Date).getTime(),data:r};a?.timeout&&(d.timeout=a.timeout),c.push(d)}else for(let e=0;e<u.length;e++){var g=u[e];"string"===g.event_name_type?g.handle(r,y):g.handle({event_name:h,data:r},y),"once"===g.event_type&&(u.splice(e,1),e--)}}}function l(e,r=null,a={}){let n=[],s;if("string"==typeof e)s="string",n.push(e);else{if(!Array.isArray(e))throw new Error("错误的参数:"+e);s="array",n=e}if(a?.passphrase){if("function"==typeof r){for(let e=0;e<n.length;e++){const l=n[e],i=w(l);var t=i.filter(e=>m(a.passphrase,e.passphrase)),o=E(l);0!==t.length&&a?.once||o.push({event_type:a?.once?"once":"normal",event_name_type:s,start:(new Date).getTime(),passphrase:a.passphrase,handle:r}),t.forEach(e=>{var t="array"===s?{event_name:l,data:e.data}:e.data;r(t),v(i,e)})}return()=>A(e,r,a)}for(let e=0,t=n.length;e<t;e++){const f=n[e];const h=w(f).filter(e=>m(a.passphrase,e.passphrase));if(0!=h.length)return new Promise(e=>{e("array"===s?{event_name:f,data:h.pop().data}:h.pop().data)})}return new Promise(e=>e(void 0===r?null:r))}if("function"==typeof r){for(let e=0;e<n.length;e++){const c=n[e],u=_(c);var p=x(c);0!==u.length&&a?.once||p.push({event_type:a?.once?"once":"normal",event_name_type:s,start:(new Date).getTime(),handle:r}),u.forEach(e=>{var t="array"===s?{event_name:c,data:e.data}:e.data;"sender"===e.data_type?(r(t),v(u,e)):r(e.data,()=>v(u,e))})}return()=>A(e,r,a)}for(let e=0,t=n.length;e<t;e++){const d=n[e],g=_(d);if(0!=g.length)return new Promise(e=>{var t=g[g.length-1],r="array"===s?{event_name:d,data:t.data}:t.data;"sender"===t.data_type&&v(g,t),e(r)})}return new Promise(e=>e(void 0===r?null:r))}function A(e,r=null,t={clear_data:!1}){let a=[];if("string"==typeof e)a.push(e);else{if(!Array.isArray(e))throw new Error("错误的参数:"+e);a=e}if(null===r)if(t.passphrase)for(let e=0;e<a.length;e++){var n=a[e];if(t.clear_data){var s=w(n);for(let e=0;e<s.length;e++)m(t.passphrase,s[e].passphrase)&&(s.splice(e,1),e--)}var o=E(n);for(let e=0;e<o.length;e++)m(t.passphrase,o[e].passphrase)&&(o.splice(e,1),e--)}else a.forEach(e=>{t.clear_data&&(w(e).length=0),E(e).length=0});else if(t.passphrase)for(let e=0;e<a.length;e++){var p=a[e];if(t.clear_data){var l=w(p);for(let e=0;e<l.length;e++)m(t.passphrase,l[e].passphrase)&&(l.splice(e,1),e--)}var i=E(p);for(let e=0;e<i.length;e++)m(t.passphrase,i[e].passphrase)&&r===i[e].handle&&(i.splice(e,1),e--)}else a.forEach(e=>{var t=x(e);for(let e=0;e<t.length;e++)t[e].handle===r&&(t.splice(e,1),e--)})}var i=l,f=p,h=A,i=(console.log("%cemitter-master:%c 2.0.0-dev.20240228 %c=> %curl:%c https://www.npmjs.com/package/emitter-master","color: #fff;background: purple;padding: 2px 5px;border-radius:4px;font-size: 14px;","color: purple;font-size:14px;","color: #333;font-size:14px;","background: purple;font-size:14px; padding: 2px 5px; border-radius: 4px; color: #fff;","font-size:14px;"),{get timeout(){return t},set timeout(e){t=e},get debug(){return r},set debug(e){r=e},sender:p,receiver:l,forwarder:function(e,r,a){let n=[];if("string"==typeof e)n.push(e);else{if(!Array.isArray(e))throw new Error("错误的参数:"+e);n=e}for(let e=0,t=n.length;e<t;e++){var s=n[e],o=x(s);const i={data_type:"forwarder",start:(new Date).getTime(),data:r},f=(a?.timeout&&(i.timeout=a.timeout),_(s));function p(){var e=f.indexOf(i);-1!==e&&f.splice(e,1)}if(f.push(i),o.length)for(let e=0;e<o.length;e++){var l=o[e];"string"===l.event_name_type?l.handle(r,p):l.handle({event_name:s,data:r},p),"once"===l.event_type&&(o.splice(e,1),e--)}}},listener:i,trigger:f,clear:A,remove:h,custom_passphrase_check:function(e){m=e}});return e.Emitter=i,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); | ||
var Emitter=function(e){"use strict";function t(e,t){const a=e.indexOf(t);-1!==a&&e.splice(a,1)}const a={strict:!0,debug:!1,timeout:0,check_passphrase:(e,t)=>e===t};const n={},s={},r={},o={};function l(){}function p(e){var t;return null!==(t=r[e])&&void 0!==t?t:r[e]=[]}function i(e){var t;return null!==(t=n[e])&&void 0!==t?t:n[e]=[]}function c(e){var t;return null!==(t=o[e])&&void 0!==t?t:o[e]=[]}function h(e){var t;return null!==(t=s[e])&&void 0!==t?t:s[e]=[]}function f(e,n,s){let r=[];if("string"==typeof e)r.push(e);else{if(!Array.isArray(e))throw Error("错误的参数:"+e);r=e}if(null==s?void 0:s.passphrase)for(let e=0,o=r.length;e<o;e++){const o=r[e],p=i(o),c=h(o),f=c.filter((e=>a.check_passphrase(e.passphrase,s.passphrase)));if(0===f.length){const e={data_type:"sender",start:(new Date).getTime(),passphrase:s.passphrase,data:n};(null==s?void 0:s.timeout)&&(e.timeout=s.timeout),p.push(e)}else for(let e=0;e<f.length;e++){const a=f[e];"string"===a.event_name_type?a.handle(n,l):a.handle({event_name:o,data:n},l),"once"===a.event_type&&t(c,a)}}else for(let e=0,t=r.length;e<t;e++){const t=r[e],a=p(t),o=c(t);if(0===o.length){const e={data_type:"sender",start:(new Date).getTime(),data:n};(null==s?void 0:s.timeout)&&(e.timeout=s.timeout),a.push(e)}else for(let e=0;e<o.length;e++){const a=o[e];"string"===a.event_name_type?a.handle(n,l):a.handle({event_name:t,data:n},l),"once"===a.event_type&&(o.splice(e,1),e--)}}}function d(e,n=null,s={}){let r,o=[];if("string"==typeof e)r="string",o.push(e);else{if(!Array.isArray(e))throw Error("错误的参数:"+e);r="array",o=e}if(null==s?void 0:s.passphrase){if("function"==typeof n){for(let e=0;e<o.length;e++){const l=o[e],p=i(l),c=p.filter((e=>a.check_passphrase(s.passphrase,e.passphrase))),f=h(l);0!==c.length&&(null==s?void 0:s.once)||f.push({event_type:(null==s?void 0:s.once)?"once":"normal",event_name_type:r,start:(new Date).getTime(),passphrase:s.passphrase,handle:n}),c.forEach((e=>{const a="array"===r?{event_name:l,data:e.data}:e.data;n(a),t(p,e)}))}return()=>u(e,n,s)}for(let e=0,t=o.length;e<t;e++){const t=o[e],n=i(t).filter((e=>a.check_passphrase(s.passphrase,e.passphrase)));if(0!=n.length)return new Promise((e=>{e("array"===r?{event_name:t,data:n.pop().data}:n.pop().data)}))}return new Promise((e=>e(void 0===n?null:n)))}if("function"==typeof n){for(let e=0;e<o.length;e++){const a=o[e],l=p(a),i=c(a);0!==l.length&&(null==s?void 0:s.once)||i.push({event_type:(null==s?void 0:s.once)?"once":"normal",event_name_type:r,start:(new Date).getTime(),handle:n}),l.forEach((e=>{const s="array"===r?{event_name:a,data:e.data}:e.data;"sender"===e.data_type?(n(s),t(l,e)):n(e.data,(()=>t(l,e)))}))}return()=>u(e,n,s)}for(let e=0,a=o.length;e<a;e++){const a=o[e],n=p(a);if(0!=n.length)return new Promise((e=>{const s=n[n.length-1],o="array"===r?{event_name:a,data:s.data}:s.data;"sender"===s.data_type&&t(n,s),e(o)}))}return new Promise((e=>e(void 0===n?null:n)))}function u(e,t=null,n={clear_data:!1}){let s=[];if("string"==typeof e)s.push(e);else{if(!Array.isArray(e))throw Error("错误的参数:"+e);s=e}if(null===t)if(n.passphrase)for(let e=0;e<s.length;e++){const t=s[e];if(n.clear_data){const e=i(t);for(let t=0;t<e.length;t++)a.check_passphrase(n.passphrase,e[t].passphrase)&&(e.splice(t,1),t--)}const r=h(t);for(let e=0;e<r.length;e++)a.check_passphrase(n.passphrase,r[e].passphrase)&&(r.splice(e,1),e--)}else s.forEach((e=>{n.clear_data&&(i(e).length=0),h(e).length=0}));else if(n.passphrase)for(let e=0;e<s.length;e++){const r=s[e];if(n.clear_data){const e=i(r);for(let t=0;t<e.length;t++)a.check_passphrase(n.passphrase,e[t].passphrase)&&(e.splice(t,1),t--)}const o=h(r);for(let e=0;e<o.length;e++)a.check_passphrase(n.passphrase,o[e].passphrase)&&t===o[e].handle&&(o.splice(e,1),e--)}else s.forEach((e=>{const a=c(e);for(let e=0;e<a.length;e++)a[e].handle===t&&(a.splice(e,1),e--)}))}globalThis.__emitter_master={passphrase_data:n,passphrase_handle:s,general_data:r,general_handle:o};const g=d,_=f,m=u;console.log("%cemitter-master:%c 2.0.0-dev.20240306 %c=> %curl:%c https://www.npmjs.com/package/emitter-master","color: #fff;background: purple;padding: 2px 5px;border-radius:4px;font-size: 14px;","color: purple;font-size:14px;","color: #333;font-size:14px;","background: purple;font-size:14px; padding: 2px 5px; border-radius: 4px; color: #fff;","font-size:14px;");const v={sender:f,receiver:d,forwarder:function(e,t,a){let n=[];if("string"==typeof e)n.push(e);else{if(!Array.isArray(e))throw Error("错误的参数:"+e);n=e}for(let e=0,s=n.length;e<s;e++){const s=n[e],r=c(s),o={data_type:"forwarder",start:(new Date).getTime(),data:t};(null==a?void 0:a.timeout)&&(o.timeout=a.timeout);const l=p(s);l.push(o);const i=function(){const e=l.indexOf(o);-1!==e&&l.splice(e,1)};if(r.length)for(let e=0;e<r.length;e++){const a=r[e];"string"===a.event_name_type?a.handle(t,i):a.handle({event_name:s,data:t},i),"once"===a.event_type&&(r.splice(e,1),e--)}}},listener:g,trigger:_,clear:u,remove:m,set_config:function(e){}};return e.Emitter=v,e}({}); |
@@ -31,9 +31,17 @@ interface EmitterMasterEventMap { | ||
declare function custom_passphrase_check(fn: (a: any, b: any) => boolean): void; | ||
declare const config: { | ||
strict: boolean; | ||
debug: boolean; | ||
timeout: number; | ||
check_passphrase: (a: any, b: any) => boolean; | ||
}; | ||
declare function set_config(cfg: (typeof config) & { | ||
check_passphrase: (...args: any[]) => any; | ||
}): void; | ||
declare function sender<const T extends keyof EmitterMasterEventMap | (keyof EmitterMasterEventMap)[]>(event_names: T, // 事件名称或事件名称的数组 | ||
data: T extends keyof EmitterMasterEventMap ? EmitterMasterEventMap[T] : EmitterMasterEventMap[T[number]], // 携带的数据 | ||
data: T extends (infer U extends keyof EmitterMasterEventMap)[] ? EmitterMasterEventMap[U] : T extends keyof EmitterMasterEventMap ? EmitterMasterEventMap[T] : never, // 携带的数据 | ||
options?: SenderOptions): void; | ||
declare function forwarder<const T extends keyof EmitterMasterEventMap | (keyof EmitterMasterEventMap)[]>(event_names: T, data: T extends keyof EmitterMasterEventMap ? EmitterMasterEventMap[T] : EmitterMasterEventMap[T[number]], options?: ForwarderOptions): void; | ||
declare function forwarder<const T extends keyof EmitterMasterEventMap | (keyof EmitterMasterEventMap)[]>(event_names: T, data: T extends (infer U extends keyof EmitterMasterEventMap)[] ? EmitterMasterEventMap[U] : T extends keyof EmitterMasterEventMap ? EmitterMasterEventMap[T] : never, options?: ForwarderOptions): void; | ||
declare function receiver<const E extends string>(event_name: E): Promise<null | ReceiverData<E>>; | ||
declare function receiver<const E extends string, H extends ((arg: ReceiverData<E>) => any) | null>(event_name: E, handle: H, options?: ReceiverOptions): H extends null ? Promise<null | ReceiverData<E>> : ClearFn; | ||
declare function receiver<const E extends string>(event_name: E, handle: (data: ReceiverData<E>, consum_fn: Function) => any, options?: ReceiverOptions): ClearFn; | ||
declare function receiver<const DefaultType, const E extends string>(event_name: E, default_value: DefaultType): Promise<ReceiverData<E> | DefaultType>; | ||
@@ -45,4 +53,2 @@ declare function receiver<const T extends readonly string[]>(event_names: T): Promise<null | ReceiverArrData<T>>; | ||
declare const Emitter: { | ||
timeout: number; | ||
debug: boolean; | ||
sender: typeof sender; | ||
@@ -55,5 +61,5 @@ receiver: typeof receiver; | ||
remove: typeof clear; | ||
custom_passphrase_check: typeof custom_passphrase_check; | ||
set_config: typeof set_config; | ||
}; | ||
export { Emitter, EmitterMasterEventMap }; | ||
export { Emitter, type EmitterMasterEventMap }; |
{ | ||
"name": "emitter-master", | ||
"version": "2.0.0-dev.20240228", | ||
"version": "2.0.0-dev.20240306", | ||
"description": "Support for offline event emitters, event, listener", | ||
"main": "./cjs/index.cjs", | ||
"main": "./cjs/index.js", | ||
"exports": { | ||
".": { | ||
"import": "./es/index.mjs", | ||
"require": "./cjs/index.cjs", | ||
"import": "./es/index.js", | ||
"require": "./cjs/index.js", | ||
"types": "./emitter.d.ts" | ||
}, | ||
"./es": { | ||
"import": "./es/index.mjs", | ||
"default": "./es/index.mjs", | ||
"import": "./es/index.js", | ||
"default": "./es/index.js", | ||
"types": "./emitter.d.ts" | ||
}, | ||
"./cjs": { | ||
"require": "./cjs/index.cjs", | ||
"default": "./cjs/index.cjs", | ||
"require": "./cjs/index.js", | ||
"default": "./cjs/index.js", | ||
"types": "./emitter.d.ts" | ||
@@ -24,3 +24,3 @@ } | ||
"browser": "./browser/index.js", | ||
"module": "./es/index.mjs", | ||
"module": "./es/index.js", | ||
"types": "./emitter.d.ts", | ||
@@ -31,5 +31,5 @@ "typing": "./emitter.d.ts", | ||
"dev:w": "rollup -c -w --environment build:dev", | ||
"build": "rollup -c --environment build:build", | ||
"build": "rollup -c --environment build:build & pnpm test", | ||
"build:w": "rollup -c -w --environment build:build", | ||
"test": "vitest" | ||
"test": "vitest run" | ||
}, | ||
@@ -44,3 +44,3 @@ "files": [ | ||
"type": "git", | ||
"url": "git+https://github.com/Autumn-one/emmit-master.git" | ||
"url": "git+https://github.com/Autumn-one/emitter-master-doc.git" | ||
}, | ||
@@ -53,27 +53,18 @@ "keywords": [ | ||
"author": "Autumn", | ||
"license": "MPL-2.0", | ||
"license": "None", | ||
"bugs": { | ||
"url": "https://github.com/Autumn-one/emmit-master/issues" | ||
"url": "https://github.com/Autumn-one/emitter-master-doc/issues" | ||
}, | ||
"homepage": "https://github.com/Autumn-one/emmit-master#readme", | ||
"homepage": "https://github.com/Autumn-one/emitter-master-doc#readme", | ||
"devDependencies": { | ||
"@babel/core": "^7.17.10", | ||
"@babel/preset-env": "^7.17.10", | ||
"@rollup/plugin-babel": "^5.3.1", | ||
"@rollup/plugin-commonjs": "^22.0.0", | ||
"@rollup/plugin-json": "^4.1.0", | ||
"@rollup/plugin-node-resolve": "^13.2.1", | ||
"@rollup/plugin-typescript": "^11.0.0", | ||
"cross-env": "^7.0.3", | ||
"glob": "^8.0.1", | ||
"npm-run-all": "^4.1.5", | ||
"rollup": "^2.70.2", | ||
"rollup-plugin-dts": "^5.3.0", | ||
"rollup-plugin-livereload": "^2.0.5", | ||
"rollup-plugin-serve": "^1.1.0", | ||
"rollup-plugin-terser": "^7.0.2", | ||
"rollup-plugin-uglify": "^6.0.4", | ||
"tslib": "^2.5.0", | ||
"typescript": "^5.1.6", | ||
"vitest": "^1.3.1" | ||
"@rollup/plugin-json": "6.1.0", | ||
"@rollup/plugin-node-resolve": "15.2.3", | ||
"@rollup/plugin-terser": "0.4.4", | ||
"glob": "10.3.10", | ||
"rollup": "4.12.0", | ||
"rollup-plugin-dts": "6.1.0", | ||
"rollup-plugin-ts": "3.4.5", | ||
"tslib": "2.6.2", | ||
"typescript": "5.3.3", | ||
"vitest": "1.3.1" | ||
}, | ||
@@ -80,0 +71,0 @@ "dependencies": { |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Misc. License Issues
License(Experimental) A package's licensing information has fine-grained problems.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
Copyleft License
License(Experimental) Copyleft license information was found.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
Non-permissive License
License(Experimental) A license not known to be considered permissive was found.
Found 1 instance in 1 package
10
8
0
100
120
23960
1
1