@idlebox/common 1.2.2 → 1.3.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.
@@ -305,6 +305,8 @@ export declare class Emitter<T> implements IDisposable {
305
305
  */
306
306
  export declare function ensureDisposeGlobal(): Promise<void>;
307
307
 
308
+ export declare function ensureGlobalObject<T>(symbol: string, constructor: () => T): T;
309
+
308
310
  /** @public */
309
311
  export declare function escapeRegExp(str: string): string;
310
312
 
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DisposableOnce = exports.LifecycleObject = exports.disposeGlobal = exports.ensureDisposeGlobal = exports.registerGlobalLifecycle = exports.globalSingleton = exports.globalSingletonDelete = exports.globalSingletonStrong = exports.deleteSymbol = exports.createSymbol = exports.globalObject = exports.AsyncDisposable = exports.isDisposedError = exports.DisposedError = exports.addDisposableEventListener = exports.toDisposable = exports.Emitter = exports.DelayCallbackList = exports.CallbackList = exports.AsyncCallbackList = exports.assertFunctionHasName = exports.nameFunction = exports.functionName = exports.convertCatchedError = exports.getErrorFrame = exports.tryInspect = exports.fromTimeStamp = exports.getTimeStamp = exports.humanDate = exports.pad2 = exports.nextYear = exports.nextMonth = exports.nextWeek = exports.nextDay = exports.nextHour = exports.nextMinute = exports.nextSecond = exports.isDateInvalid = exports.oneWeek = exports.oneDay = exports.oneHour = exports.oneMinute = exports.oneSecond = exports.sortByString = exports.normalizeArray = exports.uniqueFilter = exports.arrayUniqueReference = exports.arrayUnique = exports.isArraySame = exports.arrayDiff = void 0;
4
- exports.camelCase = exports.memo = exports.memorizeValueSymbol = exports.init = exports.bindThis = exports.singleton = exports.SingletonType = exports.singletonSymbol = exports.hookClass = exports.hookClassSymbol = exports.TimeoutPromisePool = exports.PromisePool = exports.promiseBool = exports.finishAllPromise = exports.awaitIterator = exports.PathArray = exports.normalizePath = exports.isAbsolute = exports.isObjectSameRecursive = exports.isObjectSame = exports.objectPath = exports.initOnRead = exports.definePublicConstant = exports.throwNull = exports.assertNotNull = exports.ExtendMap = exports.CustomSet = exports.RegexpFinder = exports.WrappedConsole = exports.ColorKind = exports.userAgent = exports.isWeb = exports.isNative = exports.isLinux = exports.isMacintosh = exports.isWindows = exports.isElectronMain = exports.isElectronRenderer = exports.isElectron = exports.timeoutPromise = exports.sleep = exports.timeout = exports.isTimeoutError = exports.TimeoutError = exports.CancellationTokenSource = exports.DeferredPromise = exports.isCanceledError = exports.CanceledError = exports.unsubscribableToDisposable = exports.Disposable = void 0;
5
- exports.humanSpeed = exports.humanSize = exports.humanSizeSI = exports.escapeRegExp = exports.linux_case_hyphen = exports.linux_case = exports.lcfirst = exports.ucfirst = void 0;
3
+ exports.LifecycleObject = exports.disposeGlobal = exports.ensureDisposeGlobal = exports.registerGlobalLifecycle = exports.deleteSymbol = exports.createSymbol = exports.globalSingleton = exports.globalSingletonDelete = exports.globalSingletonStrong = exports.ensureGlobalObject = exports.globalObject = exports.AsyncDisposable = exports.isDisposedError = exports.DisposedError = exports.addDisposableEventListener = exports.toDisposable = exports.Emitter = exports.DelayCallbackList = exports.CallbackList = exports.AsyncCallbackList = exports.assertFunctionHasName = exports.nameFunction = exports.functionName = exports.convertCatchedError = exports.getErrorFrame = exports.tryInspect = exports.fromTimeStamp = exports.getTimeStamp = exports.humanDate = exports.pad2 = exports.nextYear = exports.nextMonth = exports.nextWeek = exports.nextDay = exports.nextHour = exports.nextMinute = exports.nextSecond = exports.isDateInvalid = exports.oneWeek = exports.oneDay = exports.oneHour = exports.oneMinute = exports.oneSecond = exports.sortByString = exports.normalizeArray = exports.uniqueFilter = exports.arrayUniqueReference = exports.arrayUnique = exports.isArraySame = exports.arrayDiff = void 0;
4
+ exports.memo = exports.memorizeValueSymbol = exports.init = exports.bindThis = exports.singleton = exports.SingletonType = exports.singletonSymbol = exports.hookClass = exports.hookClassSymbol = exports.TimeoutPromisePool = exports.PromisePool = exports.promiseBool = exports.finishAllPromise = exports.awaitIterator = exports.PathArray = exports.normalizePath = exports.isAbsolute = exports.isObjectSameRecursive = exports.isObjectSame = exports.objectPath = exports.initOnRead = exports.definePublicConstant = exports.throwNull = exports.assertNotNull = exports.ExtendMap = exports.CustomSet = exports.RegexpFinder = exports.WrappedConsole = exports.ColorKind = exports.userAgent = exports.isWeb = exports.isNative = exports.isLinux = exports.isMacintosh = exports.isWindows = exports.isElectronMain = exports.isElectronRenderer = exports.isElectron = exports.timeoutPromise = exports.sleep = exports.timeout = exports.isTimeoutError = exports.TimeoutError = exports.CancellationTokenSource = exports.DeferredPromise = exports.isCanceledError = exports.CanceledError = exports.unsubscribableToDisposable = exports.Disposable = exports.DisposableOnce = void 0;
5
+ exports.humanSpeed = exports.humanSize = exports.humanSizeSI = exports.escapeRegExp = exports.linux_case_hyphen = exports.linux_case = exports.lcfirst = exports.ucfirst = exports.camelCase = void 0;
6
6
  var arrayDiff_cjs_1 = require("./array/arrayDiff.cjs");
7
7
  Object.defineProperty(exports, "arrayDiff", { enumerable: true, get: function () { return arrayDiff_cjs_1.arrayDiff; } });
8
8
  var arraySame_cjs_1 = require("./array/arraySame.cjs");
@@ -67,11 +67,14 @@ var lifecycle_async_cjs_1 = require("./lifecycle/dispose/lifecycle.async.cjs");
67
67
  Object.defineProperty(exports, "AsyncDisposable", { enumerable: true, get: function () { return lifecycle_async_cjs_1.AsyncDisposable; } });
68
68
  var globalObject_cjs_1 = require("./platform/globalObject.cjs");
69
69
  Object.defineProperty(exports, "globalObject", { enumerable: true, get: function () { return globalObject_cjs_1.globalObject; } });
70
- Object.defineProperty(exports, "createSymbol", { enumerable: true, get: function () { return globalObject_cjs_1.createSymbol; } });
71
- Object.defineProperty(exports, "deleteSymbol", { enumerable: true, get: function () { return globalObject_cjs_1.deleteSymbol; } });
72
- Object.defineProperty(exports, "globalSingletonStrong", { enumerable: true, get: function () { return globalObject_cjs_1.globalSingletonStrong; } });
73
- Object.defineProperty(exports, "globalSingletonDelete", { enumerable: true, get: function () { return globalObject_cjs_1.globalSingletonDelete; } });
74
- Object.defineProperty(exports, "globalSingleton", { enumerable: true, get: function () { return globalObject_cjs_1.globalSingleton; } });
70
+ Object.defineProperty(exports, "ensureGlobalObject", { enumerable: true, get: function () { return globalObject_cjs_1.ensureGlobalObject; } });
71
+ var globalSingleton_cjs_1 = require("./platform/globalSingleton.cjs");
72
+ Object.defineProperty(exports, "globalSingletonStrong", { enumerable: true, get: function () { return globalSingleton_cjs_1.globalSingletonStrong; } });
73
+ Object.defineProperty(exports, "globalSingletonDelete", { enumerable: true, get: function () { return globalSingleton_cjs_1.globalSingletonDelete; } });
74
+ Object.defineProperty(exports, "globalSingleton", { enumerable: true, get: function () { return globalSingleton_cjs_1.globalSingleton; } });
75
+ var globalSymbol_cjs_1 = require("./platform/globalSymbol.cjs");
76
+ Object.defineProperty(exports, "createSymbol", { enumerable: true, get: function () { return globalSymbol_cjs_1.createSymbol; } });
77
+ Object.defineProperty(exports, "deleteSymbol", { enumerable: true, get: function () { return globalSymbol_cjs_1.deleteSymbol; } });
75
78
  var lifecycle_global_cjs_1 = require("./lifecycle/dispose/lifecycle.global.cjs");
76
79
  Object.defineProperty(exports, "registerGlobalLifecycle", { enumerable: true, get: function () { return lifecycle_global_cjs_1.registerGlobalLifecycle; } });
77
80
  Object.defineProperty(exports, "ensureDisposeGlobal", { enumerable: true, get: function () { return lifecycle_global_cjs_1.ensureDisposeGlobal; } });
@@ -1 +1 @@
1
- {"version":3,"file":"_export_all_in_one_index.js","sourceRoot":"","sources":["../source/_export_all_in_one_index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_export_all_in_one_index.js","sourceRoot":"","sources":["../source/_export_all_in_one_index.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,9 @@ export { toDisposable } from "./lifecycle/dispose/lifecycle.js";
21
21
  export { addDisposableEventListener } from "./lifecycle/dispose/disposableEvent.js";
22
22
  export { DisposedError, isDisposedError } from "./lifecycle/dispose/disposedError.js";
23
23
  export { AsyncDisposable } from "./lifecycle/dispose/lifecycle.async.js";
24
- export { globalObject, createSymbol, deleteSymbol, globalSingletonStrong, globalSingletonDelete, globalSingleton } from "./platform/globalObject.js";
24
+ export { globalObject, ensureGlobalObject } from "./platform/globalObject.js";
25
+ export { globalSingletonStrong, globalSingletonDelete, globalSingleton } from "./platform/globalSingleton.js";
26
+ export { createSymbol, deleteSymbol } from "./platform/globalSymbol.js";
25
27
  export { registerGlobalLifecycle, ensureDisposeGlobal, disposeGlobal, LifecycleObject } from "./lifecycle/dispose/lifecycle.global.js";
26
28
  export { DisposableOnce, Disposable } from "./lifecycle/dispose/lifecycle.sync.js";
27
29
  export { unsubscribableToDisposable } from "./lifecycle/dispose/bridges/rxjs.js";
@@ -1 +1 @@
1
- {"version":3,"file":"_export_all_in_one_index.js","sourceRoot":"","sources":["../source/_export_all_in_one_index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_export_all_in_one_index.js","sourceRoot":"","sources":["../source/_export_all_in_one_index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,6BAAyB;AAC3D,OAAO,EAAE,WAAW,EAAE,6BAAyB;AAC/C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAoB,YAAY,EAAE,+BAA2B;AACvG,OAAO,EAAE,cAAc,EAAE,kCAA8B;AACvD,OAAO,EAAE,YAAY,EAAE,6BAAyB;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAqB;AAC9E,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAChD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,0BAAsB;AACzG,OAAO,EAAE,IAAI,EAAE,yBAAqB;AACpC,OAAO,EAAE,SAAS,EAAE,6BAAyB;AAC7C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAmB;AACzD,OAAO,EAAE,UAAU,EAAE,kCAA8B;AACnD,OAAO,EAAE,aAAa,EAAE,4BAAwB;AAChD,OAAO,EAAE,mBAAmB,EAAE,kCAA8B;AAC5D,OAAO,EAAiB,YAAY,EAAE,YAAY,EAAsB,qBAAqB,EAAE,mCAA+B;AAC9H,OAAO,EAAmB,iBAAiB,EAAE,wCAAoC;AACjF,OAAO,EAAc,YAAY,EAAE,mCAA+B;AAClE,OAAO,EAAmB,iBAAiB,EAAE,wCAAoC;AACjF,OAAO,EAA+B,OAAO,EAAE,mCAA+B;AAC9E,OAAO,EAA0D,YAAY,EAAE,yCAAqC;AACpH,OAAO,EAAgE,0BAA0B,EAAE,+CAA2C;AAC9I,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,6CAAyC;AAClF,OAAO,EAAE,eAAe,EAAE,+CAA2C;AACrE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,mCAA+B;AAC1E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,sCAAkC;AAC1G,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mCAA+B;AACpE,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,gDAA4C;AACnI,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,8CAA0C;AAC/E,OAAO,EAAE,0BAA0B,EAAE,4CAAwC;AAC7E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,sCAAkC;AAC3E,OAAO,EAAoD,eAAe,EAAE,+CAA2C;AACvH,OAAO,EAAqB,uBAAuB,EAAE,wDAAoD;AACzG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,4CAAwC;AAC/E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,uCAAmC;AAC5E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,yBAAqB;AAC3I,OAAO,EAAE,SAAS,EAAyB,cAAc,EAAE,wBAAoB;AAC/E,OAAO,EAAU,YAAY,EAAE,SAAS,EAAE,8BAA0B;AACpE,OAAO,EAAW,SAAS,EAAE,8BAA0B;AACvD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,gCAA4B;AAC/D,OAAO,EAAE,oBAAoB,EAAE,yCAAqC;AACpE,OAAO,EAAY,UAAU,EAAE,+BAA2B;AAC1D,OAAO,EAAE,UAAU,EAAE,+BAA2B;AAChD,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,+BAA2B;AACzE,OAAO,EAAE,UAAU,EAAE,6BAAyB;AAC9C,OAAO,EAAE,aAAa,EAAE,gCAA4B;AACpD,OAAO,EAAE,SAAS,EAAE,4BAAwB;AAC5C,OAAO,EAAE,aAAa,EAAE,mCAA+B;AACvD,OAAO,EAAsB,gBAAgB,EAAE,sCAAkC;AACjF,OAAO,EAAE,WAAW,EAAE,iCAA6B;AACnD,OAAO,EAAE,WAAW,EAAE,iCAA6B;AACnD,OAAO,EAAE,kBAAkB,EAAE,wCAAoC;AACjE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,0CAAsC;AAC3E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,0CAAsC;AAC1F,OAAO,EAAE,QAAQ,EAAE,qCAAiC;AACpD,OAAO,EAAE,IAAI,EAAE,2CAAuC;AACtD,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,yCAAqC;AACzE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,6BAAyB;AAC9F,OAAO,EAAE,YAAY,EAAE,iCAA6B;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,+BAA2B"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LifecycleObject = exports.disposeGlobal = exports.ensureDisposeGlobal = exports.registerGlobalLifecycle = void 0;
4
- const globalObject_cjs_1 = require("../../platform/globalObject.cjs");
4
+ const globalSingleton_cjs_1 = require("../../platform/globalSingleton.cjs");
5
+ const globalSymbol_cjs_1 = require("../../platform/globalSymbol.cjs");
5
6
  const lifecycle_async_cjs_1 = require("./lifecycle.async.cjs");
6
- const symbol = (0, globalObject_cjs_1.createSymbol)('lifecycle', 'application');
7
+ const symbol = (0, globalSymbol_cjs_1.createSymbol)('lifecycle', 'application');
7
8
  function create() {
8
9
  return new lifecycle_async_cjs_1.AsyncDisposable();
9
10
  }
@@ -11,14 +12,14 @@ function create() {
11
12
  * Add object into global disposable store, it will be dispose when call to `disposeGlobal`
12
13
  */
13
14
  function registerGlobalLifecycle(object) {
14
- (0, globalObject_cjs_1.globalSingletonStrong)(symbol, create)._register(object);
15
+ (0, globalSingleton_cjs_1.globalSingletonStrong)(symbol, create)._register(object);
15
16
  }
16
17
  exports.registerGlobalLifecycle = registerGlobalLifecycle;
17
18
  /**
18
19
  * Same as disposeGlobal, but do not throw by duplicate call
19
20
  */
20
21
  function ensureDisposeGlobal() {
21
- const obj = (0, globalObject_cjs_1.globalSingletonStrong)(symbol);
22
+ const obj = (0, globalSingleton_cjs_1.globalSingletonStrong)(symbol);
22
23
  if (obj && !obj.hasDisposed) {
23
24
  return Promise.resolve(obj.dispose());
24
25
  }
@@ -34,7 +35,7 @@ exports.ensureDisposeGlobal = ensureDisposeGlobal;
34
35
  * @throws when call twice
35
36
  */
36
37
  function disposeGlobal() {
37
- const obj = (0, globalObject_cjs_1.globalSingletonStrong)(symbol);
38
+ const obj = (0, globalSingleton_cjs_1.globalSingletonStrong)(symbol);
38
39
  if (obj && obj.hasDisposed) {
39
40
  throw new Error('global already disposed.');
40
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.global.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":";;;AACA,sEAAkF;AAClF,+DAAoD;AAEpD,MAAM,MAAM,GAAG,IAAA,+BAAY,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAExD,SAAS,MAAM;IACd,OAAO,IAAI,qCAAe,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAAmB;IAC1D,IAAA,wCAAqB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAFD,0DAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IAClC,MAAM,GAAG,GAAG,IAAA,wCAAqB,EAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAPD,kDAOC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IAC5B,MAAM,GAAG,GAAG,IAAA,wCAAqB,EAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC5C;SAAM,IAAI,GAAG,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AATD,sCASC;AAED;;;GAGG;AACH,MAAsB,eAAgB,SAAQ,qCAAe;IAIrD,KAAK,CAAC,OAAO;QACnB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AATD,0CASC"}
1
+ {"version":3,"file":"lifecycle.global.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":";;;AAAA,4EAAuE;AACvE,sEAA2D;AAE3D,+DAAoD;AAEpD,MAAM,MAAM,GAAG,IAAA,+BAAY,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAExD,SAAS,MAAM;IACd,OAAO,IAAI,qCAAe,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAAmB;IAC1D,IAAA,2CAAqB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAFD,0DAEC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IAClC,MAAM,GAAG,GAAG,IAAA,2CAAqB,EAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAPD,kDAOC;AAED;;;;;GAKG;AACH,SAAgB,aAAa;IAC5B,MAAM,GAAG,GAAG,IAAA,2CAAqB,EAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC5C;SAAM,IAAI,GAAG,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AATD,sCASC;AAED;;;GAGG;AACH,MAAsB,eAAgB,SAAQ,qCAAe;IAIrD,KAAK,CAAC,OAAO;QACnB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AATD,0CASC"}
@@ -1,4 +1,5 @@
1
- import { createSymbol, globalSingletonStrong } from "../../platform/globalObject.js";
1
+ import { globalSingletonStrong } from "../../platform/globalSingleton.js";
2
+ import { createSymbol } from "../../platform/globalSymbol.js";
2
3
  import { AsyncDisposable } from "./lifecycle.async.js";
3
4
  const symbol = createSymbol('lifecycle', 'application');
4
5
  function create() {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.global.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,uCAAoC;AAClF,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAExD,SAAS,MAAM;IACd,OAAO,IAAI,eAAe,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IAC1D,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC5B,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC5C;SAAM,IAAI,GAAG,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,eAAgB,SAAQ,eAAe;IAIrD,KAAK,CAAC,OAAO;QACnB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
1
+ {"version":3,"file":"lifecycle.global.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/lifecycle.global.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0CAAuC;AACvE,OAAO,EAAE,YAAY,EAAE,uCAAoC;AAE3D,OAAO,EAAE,eAAe,EAAE,6BAA0B;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AAExD,SAAS,MAAM;IACd,OAAO,IAAI,eAAe,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IAC1D,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC5B,MAAM,GAAG,GAAG,qBAAqB,CAAkB,MAAM,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;KAC5C;SAAM,IAAI,GAAG,EAAE;QACf,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KACtC;SAAM;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KACzB;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,eAAgB,SAAQ,eAAe;IAIrD,KAAK,CAAC,OAAO;QACnB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.globalSingleton = exports.globalSingletonDelete = exports.globalSingletonStrong = exports.deleteSymbol = exports.createSymbol = exports.globalObject = void 0;
4
- const functionName_cjs_1 = require("../function/functionName.cjs");
3
+ exports.ensureGlobalObject = exports.globalObject = void 0;
5
4
  /**
6
5
  * globalThis when supported.
7
6
  * if not, window in browser, global in nodejs
@@ -15,99 +14,5 @@ function ensureGlobalObject(symbol, constructor) {
15
14
  }
16
15
  return exports.globalObject[sm];
17
16
  }
18
- const symbolRegistry = ensureGlobalObject(`@@idlebox/global-symbol`, () => {
19
- return {};
20
- });
21
- /**
22
- * Get a symbol singleton, if not exists, create it
23
- *
24
- * this is very like Symbol.for, but not real global symbol
25
- * @public
26
- */
27
- function createSymbol(category, name) {
28
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
29
- return symbolRegistry[category][name];
30
- }
31
- else {
32
- if (!symbolRegistry[category]) {
33
- symbolRegistry[category] = {};
34
- }
35
- symbolRegistry[category][name] = Symbol(name);
36
- return symbolRegistry[category][name];
37
- }
38
- }
39
- exports.createSymbol = createSymbol;
40
- /**
41
- * Delete a symbol from window/global object
42
- * @public
43
- */
44
- function deleteSymbol(category, name) {
45
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
46
- delete symbolRegistry[category][name];
47
- if (Object.keys(symbolRegistry[category]).length === 0) {
48
- delete symbolRegistry[category];
49
- }
50
- }
51
- }
52
- exports.deleteSymbol = deleteSymbol;
53
- const singletonRegistry = ensureGlobalObject(`@@idlebox/global-singleton`, () => {
54
- return new Map();
55
- });
56
- function globalSingletonStrong(symbol, constructor) {
57
- let object = exports.globalObject.get(symbol);
58
- if (object instanceof WeakRef) {
59
- const target = object.deref();
60
- if (target !== undefined) {
61
- object = target;
62
- }
63
- else if (constructor) {
64
- object = constructor();
65
- if (object === undefined)
66
- throw new TypeError(`singleton constructor (${(0, functionName_cjs_1.functionName)(constructor)}) returned undefined.`);
67
- }
68
- else {
69
- singletonRegistry.delete(symbol);
70
- return undefined;
71
- }
72
- singletonRegistry.set(symbol, object);
73
- }
74
- else if (object === undefined && constructor) {
75
- object = constructor();
76
- if (object === undefined)
77
- throw new TypeError(`singleton constructor (${(0, functionName_cjs_1.functionName)(constructor)}) returned undefined.`);
78
- singletonRegistry.set(symbol, object);
79
- }
80
- return object;
81
- }
82
- exports.globalSingletonStrong = globalSingletonStrong;
83
- /**
84
- * Delete a key from window/global space
85
- * use with care
86
- * @public
87
- */
88
- function globalSingletonDelete(symbol) {
89
- singletonRegistry.delete(symbol);
90
- }
91
- exports.globalSingletonDelete = globalSingletonDelete;
92
- function globalSingleton(symbol, constructor) {
93
- if (singletonRegistry.has(symbol)) {
94
- let object = singletonRegistry.get(symbol);
95
- if (object instanceof WeakRef) {
96
- object = object.deref();
97
- if (object)
98
- return object;
99
- singletonRegistry.delete(symbol);
100
- }
101
- else {
102
- return object; // strong
103
- }
104
- }
105
- if (constructor) {
106
- const object = new WeakRef(constructor());
107
- singletonRegistry.set(symbol, object);
108
- return object.deref();
109
- }
110
- return undefined;
111
- }
112
- exports.globalSingleton = globalSingleton;
17
+ exports.ensureGlobalObject = ensureGlobalObject;
113
18
  //# sourceMappingURL=globalObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../src/platform/globalObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../src/platform/globalObject.ts"],"names":[],"mappings":";;;AAGA;;;;GAIG;AACU,QAAA,YAAY,GACxB,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEpG,SAAgB,kBAAkB,CAAI,MAAc,EAAE,WAAoB;IACzE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,oBAAY,CAAC,EAAE,CAAC,EAAE;QACtB,oBAAY,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;KACjC;IACD,OAAO,oBAAY,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAND,gDAMC"}
@@ -1,105 +1,14 @@
1
- import { functionName } from "../function/functionName.js";
2
1
  /**
3
2
  * globalThis when supported.
4
3
  * if not, window in browser, global in nodejs
5
4
  * @public
6
5
  */
7
6
  export const globalObject = typeof globalThis === 'undefined' ? (typeof window === 'undefined' ? global : window) : globalThis;
8
- function ensureGlobalObject(symbol, constructor) {
7
+ export function ensureGlobalObject(symbol, constructor) {
9
8
  const sm = Symbol.for(symbol);
10
9
  if (!globalObject[sm]) {
11
10
  globalObject[sm] = constructor();
12
11
  }
13
12
  return globalObject[sm];
14
13
  }
15
- const symbolRegistry = ensureGlobalObject(`@@idlebox/global-symbol`, () => {
16
- return {};
17
- });
18
- /**
19
- * Get a symbol singleton, if not exists, create it
20
- *
21
- * this is very like Symbol.for, but not real global symbol
22
- * @public
23
- */
24
- export function createSymbol(category, name) {
25
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
26
- return symbolRegistry[category][name];
27
- }
28
- else {
29
- if (!symbolRegistry[category]) {
30
- symbolRegistry[category] = {};
31
- }
32
- symbolRegistry[category][name] = Symbol(name);
33
- return symbolRegistry[category][name];
34
- }
35
- }
36
- /**
37
- * Delete a symbol from window/global object
38
- * @public
39
- */
40
- export function deleteSymbol(category, name) {
41
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
42
- delete symbolRegistry[category][name];
43
- if (Object.keys(symbolRegistry[category]).length === 0) {
44
- delete symbolRegistry[category];
45
- }
46
- }
47
- }
48
- const singletonRegistry = ensureGlobalObject(`@@idlebox/global-singleton`, () => {
49
- return new Map();
50
- });
51
- export function globalSingletonStrong(symbol, constructor) {
52
- let object = globalObject.get(symbol);
53
- if (object instanceof WeakRef) {
54
- const target = object.deref();
55
- if (target !== undefined) {
56
- object = target;
57
- }
58
- else if (constructor) {
59
- object = constructor();
60
- if (object === undefined)
61
- throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
62
- }
63
- else {
64
- singletonRegistry.delete(symbol);
65
- return undefined;
66
- }
67
- singletonRegistry.set(symbol, object);
68
- }
69
- else if (object === undefined && constructor) {
70
- object = constructor();
71
- if (object === undefined)
72
- throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
73
- singletonRegistry.set(symbol, object);
74
- }
75
- return object;
76
- }
77
- /**
78
- * Delete a key from window/global space
79
- * use with care
80
- * @public
81
- */
82
- export function globalSingletonDelete(symbol) {
83
- singletonRegistry.delete(symbol);
84
- }
85
- export function globalSingleton(symbol, constructor) {
86
- if (singletonRegistry.has(symbol)) {
87
- let object = singletonRegistry.get(symbol);
88
- if (object instanceof WeakRef) {
89
- object = object.deref();
90
- if (object)
91
- return object;
92
- singletonRegistry.delete(symbol);
93
- }
94
- else {
95
- return object; // strong
96
- }
97
- }
98
- if (constructor) {
99
- const object = new WeakRef(constructor());
100
- singletonRegistry.set(symbol, object);
101
- return object.deref();
102
- }
103
- return undefined;
104
- }
105
14
  //# sourceMappingURL=globalObject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../src/platform/globalObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oCAAiC;AAKxD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GACxB,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEpG,SAAS,kBAAkB,CAAI,MAAc,EAAE,WAAoB;IAClE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;QACtB,YAAY,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;KACjC;IACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACzE,OAAO,EAA4C,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;SAAM;QACN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC9B;QACD,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;SAChC;KACD;AACF,CAAC;AAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC/E,OAAO,IAAI,GAAG,EAAwB,CAAC;AACxC,CAAC,CAAC,CAAC;AAcH,MAAM,UAAU,qBAAqB,CAAI,MAAuB,EAAE,WAAqB;IACtF,IAAI,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,YAAY,OAAO,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC;SAChB;aAAM,IAAI,WAAW,EAAE;YACvB,MAAM,GAAG,WAAW,EAAE,CAAC;YACvB,IAAI,MAAM,KAAK,SAAS;gBACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,YAAY,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;SACjG;aAAM;YACN,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;SACjB;QACD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;SAAM,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,EAAE;QAC/C,MAAM,GAAG,WAAW,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,YAAY,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACjG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC5D,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAYD,MAAM,UAAU,eAAe,CAAI,MAAuB,EAAE,WAAqB;IAChF,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAClC,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,YAAY,OAAO,EAAE;YAC9B,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;YACN,OAAO,MAAM,CAAC,CAAC,SAAS;SACxB;KACD;IAED,IAAI,WAAW,EAAE;QAChB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAS,CAAC,CAAC;QACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"globalObject.js","sourceRoot":"","sources":["../../src/platform/globalObject.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GACxB,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AAEpG,MAAM,UAAU,kBAAkB,CAAI,MAAc,EAAE,WAAoB;IACzE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;QACtB,YAAY,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC;KACjC;IACD,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.globalSingleton = exports.globalSingletonDelete = exports.globalSingletonStrong = void 0;
4
+ const functionName_cjs_1 = require("../function/functionName.cjs");
5
+ const globalObject_cjs_1 = require("./globalObject.cjs");
6
+ const singletonRegistry = (0, globalObject_cjs_1.ensureGlobalObject)(`@@idlebox/global-singleton`, () => {
7
+ return new Map();
8
+ });
9
+ function globalSingletonStrong(symbol, constructor) {
10
+ let object = singletonRegistry.get(symbol);
11
+ if (object instanceof WeakRef) {
12
+ const target = object.deref();
13
+ if (target !== undefined) {
14
+ object = target;
15
+ }
16
+ else if (constructor) {
17
+ object = constructor();
18
+ if (object === undefined)
19
+ throw new TypeError(`singleton constructor (${(0, functionName_cjs_1.functionName)(constructor)}) returned undefined.`);
20
+ }
21
+ else {
22
+ singletonRegistry.delete(symbol);
23
+ return undefined;
24
+ }
25
+ singletonRegistry.set(symbol, object);
26
+ }
27
+ else if (object === undefined && constructor) {
28
+ object = constructor();
29
+ if (object === undefined)
30
+ throw new TypeError(`singleton constructor (${(0, functionName_cjs_1.functionName)(constructor)}) returned undefined.`);
31
+ singletonRegistry.set(symbol, object);
32
+ }
33
+ return object;
34
+ }
35
+ exports.globalSingletonStrong = globalSingletonStrong;
36
+ /**
37
+ * Delete a key from window/global space
38
+ * use with care
39
+ * @public
40
+ */
41
+ function globalSingletonDelete(symbol) {
42
+ singletonRegistry.delete(symbol);
43
+ }
44
+ exports.globalSingletonDelete = globalSingletonDelete;
45
+ function globalSingleton(symbol, constructor) {
46
+ if (singletonRegistry.has(symbol)) {
47
+ let object = singletonRegistry.get(symbol);
48
+ if (object instanceof WeakRef) {
49
+ object = object.deref();
50
+ if (object)
51
+ return object;
52
+ singletonRegistry.delete(symbol);
53
+ }
54
+ else {
55
+ return object; // strong
56
+ }
57
+ }
58
+ if (constructor) {
59
+ const object = new WeakRef(constructor());
60
+ singletonRegistry.set(symbol, object);
61
+ return object.deref();
62
+ }
63
+ return undefined;
64
+ }
65
+ exports.globalSingleton = globalSingleton;
66
+ //# sourceMappingURL=globalSingleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalSingleton.js","sourceRoot":"","sources":["../../src/platform/globalSingleton.ts"],"names":[],"mappings":";;;AAAA,mEAAwD;AACxD,yDAAoD;AAEpD,MAAM,iBAAiB,GAAG,IAAA,qCAAkB,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC/E,OAAO,IAAI,GAAG,EAAwB,CAAC;AACxC,CAAC,CAAC,CAAC;AAcH,SAAgB,qBAAqB,CAAI,MAAuB,EAAE,WAAqB;IACtF,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,YAAY,OAAO,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC;SAChB;aAAM,IAAI,WAAW,EAAE;YACvB,MAAM,GAAG,WAAW,EAAE,CAAC;YACvB,IAAI,MAAM,KAAK,SAAS;gBACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,IAAA,+BAAY,EAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;SACjG;aAAM;YACN,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;SACjB;QACD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;SAAM,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,EAAE;QAC/C,MAAM,GAAG,WAAW,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,IAAA,+BAAY,EAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACjG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAtBD,sDAsBC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,MAAuB;IAC5D,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAFD,sDAEC;AAYD,SAAgB,eAAe,CAAI,MAAuB,EAAE,WAAqB;IAChF,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAClC,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,YAAY,OAAO,EAAE;YAC9B,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;YACN,OAAO,MAAM,CAAC,CAAC,SAAS;SACxB;KACD;IAED,IAAI,WAAW,EAAE;QAChB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAS,CAAC,CAAC;QACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAnBD,0CAmBC"}
@@ -0,0 +1,60 @@
1
+ import { functionName } from "../function/functionName.js";
2
+ import { ensureGlobalObject } from "./globalObject.js";
3
+ const singletonRegistry = ensureGlobalObject(`@@idlebox/global-singleton`, () => {
4
+ return new Map();
5
+ });
6
+ export function globalSingletonStrong(symbol, constructor) {
7
+ let object = singletonRegistry.get(symbol);
8
+ if (object instanceof WeakRef) {
9
+ const target = object.deref();
10
+ if (target !== undefined) {
11
+ object = target;
12
+ }
13
+ else if (constructor) {
14
+ object = constructor();
15
+ if (object === undefined)
16
+ throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
17
+ }
18
+ else {
19
+ singletonRegistry.delete(symbol);
20
+ return undefined;
21
+ }
22
+ singletonRegistry.set(symbol, object);
23
+ }
24
+ else if (object === undefined && constructor) {
25
+ object = constructor();
26
+ if (object === undefined)
27
+ throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
28
+ singletonRegistry.set(symbol, object);
29
+ }
30
+ return object;
31
+ }
32
+ /**
33
+ * Delete a key from window/global space
34
+ * use with care
35
+ * @public
36
+ */
37
+ export function globalSingletonDelete(symbol) {
38
+ singletonRegistry.delete(symbol);
39
+ }
40
+ export function globalSingleton(symbol, constructor) {
41
+ if (singletonRegistry.has(symbol)) {
42
+ let object = singletonRegistry.get(symbol);
43
+ if (object instanceof WeakRef) {
44
+ object = object.deref();
45
+ if (object)
46
+ return object;
47
+ singletonRegistry.delete(symbol);
48
+ }
49
+ else {
50
+ return object; // strong
51
+ }
52
+ }
53
+ if (constructor) {
54
+ const object = new WeakRef(constructor());
55
+ singletonRegistry.set(symbol, object);
56
+ return object.deref();
57
+ }
58
+ return undefined;
59
+ }
60
+ //# sourceMappingURL=globalSingleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalSingleton.js","sourceRoot":"","sources":["../../src/platform/globalSingleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oCAAiC;AACxD,OAAO,EAAE,kBAAkB,EAAE,0BAAuB;AAEpD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC/E,OAAO,IAAI,GAAG,EAAwB,CAAC;AACxC,CAAC,CAAC,CAAC;AAcH,MAAM,UAAU,qBAAqB,CAAI,MAAuB,EAAE,WAAqB;IACtF,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,MAAM,YAAY,OAAO,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,GAAG,MAAM,CAAC;SAChB;aAAM,IAAI,WAAW,EAAE;YACvB,MAAM,GAAG,WAAW,EAAE,CAAC;YACvB,IAAI,MAAM,KAAK,SAAS;gBACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,YAAY,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;SACjG;aAAM;YACN,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;SACjB;QACD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;SAAM,IAAI,MAAM,KAAK,SAAS,IAAI,WAAW,EAAE;QAC/C,MAAM,GAAG,WAAW,EAAE,CAAC;QACvB,IAAI,MAAM,KAAK,SAAS;YACvB,MAAM,IAAI,SAAS,CAAC,0BAA0B,YAAY,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;QACjG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC5D,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAYD,MAAM,UAAU,eAAe,CAAI,MAAuB,EAAE,WAAqB;IAChF,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAClC,IAAI,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,YAAY,OAAO,EAAE;YAC9B,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAC1B,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACjC;aAAM;YACN,OAAO,MAAM,CAAC,CAAC,SAAS;SACxB;KACD;IAED,IAAI,WAAW,EAAE;QAChB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAS,CAAC,CAAC;QACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC;KACtB;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteSymbol = exports.createSymbol = void 0;
4
+ const globalObject_cjs_1 = require("./globalObject.cjs");
5
+ const symbolRegistry = (0, globalObject_cjs_1.ensureGlobalObject)(`@@idlebox/global-symbol`, () => {
6
+ return {};
7
+ });
8
+ /**
9
+ * Get a symbol singleton, if not exists, create it
10
+ *
11
+ * this is very like Symbol.for, but not real global symbol
12
+ * @public
13
+ */
14
+ function createSymbol(category, name) {
15
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
16
+ return symbolRegistry[category][name];
17
+ }
18
+ else {
19
+ if (!symbolRegistry[category]) {
20
+ symbolRegistry[category] = {};
21
+ }
22
+ symbolRegistry[category][name] = Symbol(name);
23
+ return symbolRegistry[category][name];
24
+ }
25
+ }
26
+ exports.createSymbol = createSymbol;
27
+ /**
28
+ * Delete a symbol from window/global object
29
+ * @public
30
+ */
31
+ function deleteSymbol(category, name) {
32
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
33
+ delete symbolRegistry[category][name];
34
+ if (Object.keys(symbolRegistry[category]).length === 0) {
35
+ delete symbolRegistry[category];
36
+ }
37
+ }
38
+ }
39
+ exports.deleteSymbol = deleteSymbol;
40
+ //# sourceMappingURL=globalSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalSymbol.js","sourceRoot":"","sources":["../../src/platform/globalSymbol.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,MAAM,cAAc,GAAG,IAAA,qCAAkB,EAAC,yBAAyB,EAAE,GAAG,EAAE;IACzE,OAAO,EAA4C,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;SAAM;QACN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC9B;QACD,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;AACF,CAAC;AAVD,oCAUC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;SAChC;KACD;AACF,CAAC;AAPD,oCAOC"}
@@ -0,0 +1,35 @@
1
+ import { ensureGlobalObject } from "./globalObject.js";
2
+ const symbolRegistry = ensureGlobalObject(`@@idlebox/global-symbol`, () => {
3
+ return {};
4
+ });
5
+ /**
6
+ * Get a symbol singleton, if not exists, create it
7
+ *
8
+ * this is very like Symbol.for, but not real global symbol
9
+ * @public
10
+ */
11
+ export function createSymbol(category, name) {
12
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
13
+ return symbolRegistry[category][name];
14
+ }
15
+ else {
16
+ if (!symbolRegistry[category]) {
17
+ symbolRegistry[category] = {};
18
+ }
19
+ symbolRegistry[category][name] = Symbol(name);
20
+ return symbolRegistry[category][name];
21
+ }
22
+ }
23
+ /**
24
+ * Delete a symbol from window/global object
25
+ * @public
26
+ */
27
+ export function deleteSymbol(category, name) {
28
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
29
+ delete symbolRegistry[category][name];
30
+ if (Object.keys(symbolRegistry[category]).length === 0) {
31
+ delete symbolRegistry[category];
32
+ }
33
+ }
34
+ }
35
+ //# sourceMappingURL=globalSymbol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalSymbol.js","sourceRoot":"","sources":["../../src/platform/globalSymbol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,0BAAuB;AAEpD,MAAM,cAAc,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACzE,OAAO,EAA4C,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;SAAM;QACN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SAC9B;QACD,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;KACtC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,IAAY;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE;QAC/D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;SAChC;KACD;AACF,CAAC"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "@idlebox/common",
4
4
  "type": "module",
5
5
  "typings": "docs/package-public.d.ts",
6
- "version": "1.2.2",
6
+ "version": "1.3.0",
7
7
  "license": "MIT",
8
8
  "main": "./lib/_export_all_in_one_index.cjs",
9
9
  "module": "./lib/_export_all_in_one_index.js",
@@ -20,23 +20,24 @@
20
20
  "scripts": {
21
21
  "build": "build-script build",
22
22
  "clean": "rimraf lib",
23
+ "prepack": "build-script rebuild",
23
24
  "test": "build-script test",
24
25
  "watch": "build-script watch"
25
26
  },
26
27
  "dependencies": {
27
- "source-map-support": "^0.5.20",
28
+ "source-map-support": "^0.5.21",
28
29
  "tslib": "^2.3.1"
29
30
  },
30
31
  "devDependencies": {
31
- "@build-script/builder": "^3.0.4",
32
- "@build-script/export-all-in-one": "^3.0.25",
32
+ "@build-script/builder": "^3.2.2",
33
+ "@build-script/export-all-in-one": "^3.0.26",
33
34
  "@build-script/single-dog-asset": "^1.0.14",
34
35
  "@build-script/typescript-transformer-dual-package": "^1.0.22",
35
- "@idlebox/itypes": "^0.0.7",
36
+ "@idlebox/itypes": "^1.0.0",
36
37
  "gulp": "^4.0.2",
37
38
  "ttypescript": "^1.5.12",
38
- "typescript": "^4.4.3",
39
- "ts-node": "^10.2.1"
39
+ "typescript": "^4.5.2",
40
+ "esm": "^3.2.25"
40
41
  },
41
42
  "repository": "https://github.com/GongT/baobao"
42
43
  }
@@ -1,5 +1,6 @@
1
+ import { globalSingletonStrong } from '../../platform/globalSingleton';
2
+ import { createSymbol } from '../../platform/globalSymbol';
1
3
  import { IDisposable } from './lifecycle';
2
- import { createSymbol, globalSingletonStrong } from '../../platform/globalObject';
3
4
  import { AsyncDisposable } from './lifecycle.async';
4
5
 
5
6
  const symbol = createSymbol('lifecycle', 'application');
@@ -1,5 +1,3 @@
1
- import { functionName } from '../function/functionName';
2
-
3
1
  declare const global: any;
4
2
  declare const window: any;
5
3
 
@@ -11,125 +9,10 @@ declare const window: any;
11
9
  export const globalObject: any =
12
10
  typeof globalThis === 'undefined' ? (typeof window === 'undefined' ? global : window) : globalThis;
13
11
 
14
- function ensureGlobalObject<T>(symbol: string, constructor: () => T): T {
12
+ export function ensureGlobalObject<T>(symbol: string, constructor: () => T): T {
15
13
  const sm = Symbol.for(symbol);
16
14
  if (!globalObject[sm]) {
17
15
  globalObject[sm] = constructor();
18
16
  }
19
17
  return globalObject[sm];
20
18
  }
21
-
22
- const symbolRegistry = ensureGlobalObject(`@@idlebox/global-symbol`, () => {
23
- return {} as Record<string, Record<string, symbol>>;
24
- });
25
-
26
- /**
27
- * Get a symbol singleton, if not exists, create it
28
- *
29
- * this is very like Symbol.for, but not real global symbol
30
- * @public
31
- */
32
- export function createSymbol(category: string, name: string): symbol {
33
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
34
- return symbolRegistry[category][name];
35
- } else {
36
- if (!symbolRegistry[category]) {
37
- symbolRegistry[category] = {};
38
- }
39
- symbolRegistry[category][name] = Symbol(name);
40
- return symbolRegistry[category][name];
41
- }
42
- }
43
-
44
- /**
45
- * Delete a symbol from window/global object
46
- * @public
47
- */
48
- export function deleteSymbol(category: string, name: string) {
49
- if (symbolRegistry[category] && symbolRegistry[category][name]) {
50
- delete symbolRegistry[category][name];
51
- if (Object.keys(symbolRegistry[category]).length === 0) {
52
- delete symbolRegistry[category];
53
- }
54
- }
55
- }
56
-
57
- const singletonRegistry = ensureGlobalObject(`@@idlebox/global-singleton`, () => {
58
- return new Map<string | symbol, any>();
59
- });
60
-
61
- /**
62
- * Get an singleton instance from window/global space
63
- * if symbol did not exists, create it and assign to window/global
64
- * @public
65
- */
66
- export function globalSingletonStrong<T>(symbol: symbol | string, constructor: () => T): T;
67
- /**
68
- * Get an singleton instance from window/global space
69
- * @public
70
- */
71
- export function globalSingletonStrong<T>(symbol: symbol | string): T | undefined;
72
-
73
- export function globalSingletonStrong<T>(symbol: symbol | string, constructor?: () => T): T | undefined {
74
- let object = globalObject.get(symbol);
75
- if (object instanceof WeakRef) {
76
- const target = object.deref();
77
- if (target !== undefined) {
78
- object = target;
79
- } else if (constructor) {
80
- object = constructor();
81
- if (object === undefined)
82
- throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
83
- } else {
84
- singletonRegistry.delete(symbol);
85
- return undefined;
86
- }
87
- singletonRegistry.set(symbol, object);
88
- } else if (object === undefined && constructor) {
89
- object = constructor();
90
- if (object === undefined)
91
- throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
92
- singletonRegistry.set(symbol, object);
93
- }
94
- return object;
95
- }
96
-
97
- /**
98
- * Delete a key from window/global space
99
- * use with care
100
- * @public
101
- */
102
- export function globalSingletonDelete(symbol: symbol | string) {
103
- singletonRegistry.delete(symbol);
104
- }
105
-
106
- /**
107
- * Same with globalSingletonStrong, but save instance in a WeakMap, so it maybe delete by gc if no reference
108
- * @public
109
- */
110
- export function globalSingleton<T>(symbol: symbol | string, constructor: () => T): T;
111
- /**
112
- * Same with globalSingletonStrong, but save instance in a WeakMap, so it maybe delete by gc if no reference
113
- * @public
114
- */
115
- export function globalSingleton<T>(symbol: symbol | string): T | undefined;
116
- export function globalSingleton<T>(symbol: symbol | string, constructor?: () => T): T | undefined {
117
- if (singletonRegistry.has(symbol)) {
118
- let object = singletonRegistry.get(symbol);
119
- if (object instanceof WeakRef) {
120
- object = object.deref();
121
- if (object) return object;
122
- singletonRegistry.delete(symbol);
123
- } else {
124
- return object; // strong
125
- }
126
- }
127
-
128
- if (constructor) {
129
- const object = new WeakRef(constructor() as any);
130
- singletonRegistry.set(symbol, object);
131
- return object.deref();
132
- }
133
-
134
- return undefined;
135
- }
@@ -0,0 +1,82 @@
1
+ import { functionName } from '../function/functionName';
2
+ import { ensureGlobalObject } from './globalObject';
3
+
4
+ const singletonRegistry = ensureGlobalObject(`@@idlebox/global-singleton`, () => {
5
+ return new Map<string | symbol, any>();
6
+ });
7
+
8
+ /**
9
+ * Get an singleton instance from window/global space
10
+ * if symbol did not exists, create it and assign to window/global
11
+ * @public
12
+ */
13
+ export function globalSingletonStrong<T>(symbol: symbol | string, constructor: () => T): T;
14
+ /**
15
+ * Get an singleton instance from window/global space
16
+ * @public
17
+ */
18
+ export function globalSingletonStrong<T>(symbol: symbol | string): T | undefined;
19
+
20
+ export function globalSingletonStrong<T>(symbol: symbol | string, constructor?: () => T): T | undefined {
21
+ let object = singletonRegistry.get(symbol);
22
+ if (object instanceof WeakRef) {
23
+ const target = object.deref();
24
+ if (target !== undefined) {
25
+ object = target;
26
+ } else if (constructor) {
27
+ object = constructor();
28
+ if (object === undefined)
29
+ throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
30
+ } else {
31
+ singletonRegistry.delete(symbol);
32
+ return undefined;
33
+ }
34
+ singletonRegistry.set(symbol, object);
35
+ } else if (object === undefined && constructor) {
36
+ object = constructor();
37
+ if (object === undefined)
38
+ throw new TypeError(`singleton constructor (${functionName(constructor)}) returned undefined.`);
39
+ singletonRegistry.set(symbol, object);
40
+ }
41
+ return object;
42
+ }
43
+
44
+ /**
45
+ * Delete a key from window/global space
46
+ * use with care
47
+ * @public
48
+ */
49
+ export function globalSingletonDelete(symbol: symbol | string) {
50
+ singletonRegistry.delete(symbol);
51
+ }
52
+
53
+ /**
54
+ * Same with globalSingletonStrong, but save instance in a WeakMap, so it maybe delete by gc if no reference
55
+ * @public
56
+ */
57
+ export function globalSingleton<T>(symbol: symbol | string, constructor: () => T): T;
58
+ /**
59
+ * Same with globalSingletonStrong, but save instance in a WeakMap, so it maybe delete by gc if no reference
60
+ * @public
61
+ */
62
+ export function globalSingleton<T>(symbol: symbol | string): T | undefined;
63
+ export function globalSingleton<T>(symbol: symbol | string, constructor?: () => T): T | undefined {
64
+ if (singletonRegistry.has(symbol)) {
65
+ let object = singletonRegistry.get(symbol);
66
+ if (object instanceof WeakRef) {
67
+ object = object.deref();
68
+ if (object) return object;
69
+ singletonRegistry.delete(symbol);
70
+ } else {
71
+ return object; // strong
72
+ }
73
+ }
74
+
75
+ if (constructor) {
76
+ const object = new WeakRef(constructor() as any);
77
+ singletonRegistry.set(symbol, object);
78
+ return object.deref();
79
+ }
80
+
81
+ return undefined;
82
+ }
@@ -0,0 +1,36 @@
1
+ import { ensureGlobalObject } from './globalObject';
2
+
3
+ const symbolRegistry = ensureGlobalObject(`@@idlebox/global-symbol`, () => {
4
+ return {} as Record<string, Record<string, symbol>>;
5
+ });
6
+
7
+ /**
8
+ * Get a symbol singleton, if not exists, create it
9
+ *
10
+ * this is very like Symbol.for, but not real global symbol
11
+ * @public
12
+ */
13
+ export function createSymbol(category: string, name: string): symbol {
14
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
15
+ return symbolRegistry[category][name];
16
+ } else {
17
+ if (!symbolRegistry[category]) {
18
+ symbolRegistry[category] = {};
19
+ }
20
+ symbolRegistry[category][name] = Symbol(name);
21
+ return symbolRegistry[category][name];
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Delete a symbol from window/global object
27
+ * @public
28
+ */
29
+ export function deleteSymbol(category: string, name: string) {
30
+ if (symbolRegistry[category] && symbolRegistry[category][name]) {
31
+ delete symbolRegistry[category][name];
32
+ if (Object.keys(symbolRegistry[category]).length === 0) {
33
+ delete symbolRegistry[category];
34
+ }
35
+ }
36
+ }
@@ -1,5 +0,0 @@
1
- import { buildContext } from '@build-script/builder';
2
- import { resolve } from 'path';
3
-
4
- buildContext.addAction('build', ['remove-extra-lib']);
5
- buildContext.registerAlias('remove-extra-lib', resolve(__dirname, '../postbuild.script.js'));