@jelper/notify 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/es/index.js +31 -0
- package/es/index.js.map +1 -0
- package/lib/index.js +33 -0
- package/lib/index.js.map +1 -0
- package/package.json +36 -0
- package/types/index.d.ts +14 -0
package/README.md
ADDED
package/es/index.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export default () => {
|
|
2
|
+
const listeners = new Set();
|
|
3
|
+
return {
|
|
4
|
+
/**
|
|
5
|
+
* 发送通知(单向,fire-and-forget)
|
|
6
|
+
*/
|
|
7
|
+
notify: (data) => {
|
|
8
|
+
listeners.forEach(fn => fn(data));
|
|
9
|
+
},
|
|
10
|
+
/**
|
|
11
|
+
* 订阅通知
|
|
12
|
+
*/
|
|
13
|
+
on: (callback) => {
|
|
14
|
+
listeners.add(callback);
|
|
15
|
+
return () => listeners.delete(callback);
|
|
16
|
+
},
|
|
17
|
+
// 可选:一次性监听
|
|
18
|
+
once: (callback) => {
|
|
19
|
+
const handler = (data) => {
|
|
20
|
+
callback(data);
|
|
21
|
+
listeners.delete(handler);
|
|
22
|
+
};
|
|
23
|
+
listeners.add(handler);
|
|
24
|
+
return () => listeners.delete(handler);
|
|
25
|
+
},
|
|
26
|
+
clear: () => {
|
|
27
|
+
listeners.clear();
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
package/es/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":"AAGA,eAAe,GAAa,EAAE;IAC5B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,OAAO;QACL;;WAEG;QACH,MAAM,EAAE,CAAC,IAAO,EAAE,EAAE;YAClB,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC;QAED;;WAEG;QACH,EAAE,EAAE,CAAC,QAA2B,EAAe,EAAE;YAC/C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,WAAW;QACX,IAAI,EAAE,CAAC,QAA2B,EAAe,EAAE;YACjD,MAAM,OAAO,GAAG,CAAC,IAAO,EAAE,EAAE;gBAC1B,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QAED,KAAK,EAAE,GAAG,EAAE;YACV,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,CAAA","sourcesContent":["\ntype Unsubscribe = () => void;\n\nexport default <T = void>() => {\n const listeners = new Set<(data: T) => void>();\n\n return {\n /**\n * 发送通知(单向,fire-and-forget)\n */\n notify: (data: T) => {\n listeners.forEach(fn => fn(data));\n },\n\n /**\n * 订阅通知\n */\n on: (callback: (data: T) => void): Unsubscribe => {\n listeners.add(callback);\n return () => listeners.delete(callback);\n },\n\n // 可选:一次性监听\n once: (callback: (data: T) => void): Unsubscribe => {\n const handler = (data: T) => {\n callback(data);\n listeners.delete(handler);\n };\n listeners.add(handler);\n return () => listeners.delete(handler);\n },\n\n clear: () => {\n listeners.clear();\n }\n };\n}\n"]}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = (function () {
|
|
4
|
+
var listeners = new Set();
|
|
5
|
+
return {
|
|
6
|
+
/**
|
|
7
|
+
* 发送通知(单向,fire-and-forget)
|
|
8
|
+
*/
|
|
9
|
+
notify: function (data) {
|
|
10
|
+
listeners.forEach(function (fn) { return fn(data); });
|
|
11
|
+
},
|
|
12
|
+
/**
|
|
13
|
+
* 订阅通知
|
|
14
|
+
*/
|
|
15
|
+
on: function (callback) {
|
|
16
|
+
listeners.add(callback);
|
|
17
|
+
return function () { return listeners.delete(callback); };
|
|
18
|
+
},
|
|
19
|
+
// 可选:一次性监听
|
|
20
|
+
once: function (callback) {
|
|
21
|
+
var handler = function (data) {
|
|
22
|
+
callback(data);
|
|
23
|
+
listeners.delete(handler);
|
|
24
|
+
};
|
|
25
|
+
listeners.add(handler);
|
|
26
|
+
return function () { return listeners.delete(handler); };
|
|
27
|
+
},
|
|
28
|
+
clear: function () {
|
|
29
|
+
listeners.clear();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"/","sources":["index.ts"],"names":[],"mappings":";;AAGA,mBAAe;IACb,IAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,OAAO;QACL;;WAEG;QACH,MAAM,EAAE,UAAC,IAAO;YACd,SAAS,CAAC,OAAO,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,IAAI,CAAC,EAAR,CAAQ,CAAC,CAAC;QACpC,CAAC;QAED;;WAEG;QACH,EAAE,EAAE,UAAC,QAA2B;YAC9B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,cAAM,OAAA,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAA1B,CAA0B,CAAC;QAC1C,CAAC;QAED,WAAW;QACX,IAAI,EAAE,UAAC,QAA2B;YAChC,IAAM,OAAO,GAAG,UAAC,IAAO;gBACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,cAAM,OAAA,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAzB,CAAyB,CAAC;QACzC,CAAC;QAED,KAAK,EAAE;YACL,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC,EAAA","sourcesContent":["\ntype Unsubscribe = () => void;\n\nexport default <T = void>() => {\n const listeners = new Set<(data: T) => void>();\n\n return {\n /**\n * 发送通知(单向,fire-and-forget)\n */\n notify: (data: T) => {\n listeners.forEach(fn => fn(data));\n },\n\n /**\n * 订阅通知\n */\n on: (callback: (data: T) => void): Unsubscribe => {\n listeners.add(callback);\n return () => listeners.delete(callback);\n },\n\n // 可选:一次性监听\n once: (callback: (data: T) => void): Unsubscribe => {\n const handler = (data: T) => {\n callback(data);\n listeners.delete(handler);\n };\n listeners.add(handler);\n return () => listeners.delete(handler);\n },\n\n clear: () => {\n listeners.clear();\n }\n };\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jelper/notify",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "通知器",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"module": "es/index.js",
|
|
7
|
+
"types": "types/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "jelper build",
|
|
10
|
+
"serve": "jelper serve",
|
|
11
|
+
"test": "jelper test"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"notify",
|
|
15
|
+
"helper"
|
|
16
|
+
],
|
|
17
|
+
"files": [
|
|
18
|
+
"package.json",
|
|
19
|
+
"README.md",
|
|
20
|
+
"es/**",
|
|
21
|
+
"lib/**",
|
|
22
|
+
"types/**"
|
|
23
|
+
],
|
|
24
|
+
"dependencies": {
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@jest/globals":"~30.2.0",
|
|
28
|
+
"@jelper/builder": "workspace:*",
|
|
29
|
+
"@types/node": "~24.10.1"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"author": "apathyjade@outlook.com",
|
|
35
|
+
"license": "ISC"
|
|
36
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type Unsubscribe = () => void;
|
|
2
|
+
declare const _default: <T = void>() => {
|
|
3
|
+
/**
|
|
4
|
+
* 发送通知(单向,fire-and-forget)
|
|
5
|
+
*/
|
|
6
|
+
notify: (data: T) => void;
|
|
7
|
+
/**
|
|
8
|
+
* 订阅通知
|
|
9
|
+
*/
|
|
10
|
+
on: (callback: (data: T) => void) => Unsubscribe;
|
|
11
|
+
once: (callback: (data: T) => void) => Unsubscribe;
|
|
12
|
+
clear: () => void;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|