@spearwolf/shadow-objects 0.30.1 → 0.31.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/CHANGELOG.md +24 -0
- package/README.md +34 -10
- package/bundle.js +13 -13
- package/package.json +3 -3
- package/src/bundle.js +4 -4
- package/src/bundle.js.map +7 -1
- package/src/constants.js +53 -40
- package/src/constants.js.map +7 -1
- package/src/create-worker.bundle.js +6 -8
- package/src/create-worker.bundle.js.map +7 -1
- package/src/create-worker.js +5 -2
- package/src/create-worker.js.map +7 -1
- package/src/elements/ShaeElement.js +57 -54
- package/src/elements/ShaeElement.js.map +7 -1
- package/src/elements/ShaeEntElement.d.ts.map +1 -1
- package/src/elements/ShaeEntElement.js +320 -341
- package/src/elements/ShaeEntElement.js.map +7 -1
- package/src/elements/ShaePropElement.js +312 -320
- package/src/elements/ShaePropElement.js.map +7 -1
- package/src/elements/ShaeWorkerElement.js +234 -229
- package/src/elements/ShaeWorkerElement.js.map +7 -1
- package/src/elements/constants.js +37 -22
- package/src/elements/constants.js.map +7 -1
- package/src/elements/events.d.ts +1 -1
- package/src/elements/events.d.ts.map +1 -1
- package/src/elements/events.js +1 -2
- package/src/elements/events.js.map +7 -1
- package/src/elements.js +4 -4
- package/src/elements.js.map +7 -1
- package/src/in-the-dark/Entity.d.ts +3 -1
- package/src/in-the-dark/Entity.d.ts.map +1 -1
- package/src/in-the-dark/Entity.js +299 -275
- package/src/in-the-dark/Entity.js.map +7 -1
- package/src/in-the-dark/Kernel.d.ts +1 -1
- package/src/in-the-dark/Kernel.d.ts.map +1 -1
- package/src/in-the-dark/Kernel.js +556 -532
- package/src/in-the-dark/Kernel.js.map +7 -1
- package/src/in-the-dark/Registry.d.ts.map +1 -1
- package/src/in-the-dark/Registry.js +101 -104
- package/src/in-the-dark/Registry.js.map +7 -1
- package/src/in-the-dark/ShadowObject.d.ts.map +1 -1
- package/src/in-the-dark/ShadowObject.js +21 -23
- package/src/in-the-dark/ShadowObject.js.map +7 -1
- package/src/in-the-dark/SignalsPath.d.ts.map +1 -1
- package/src/in-the-dark/SignalsPath.js +139 -123
- package/src/in-the-dark/SignalsPath.js.map +7 -1
- package/src/in-the-dark/events.js +11 -9
- package/src/in-the-dark/events.js.map +7 -1
- package/src/in-the-dark/importModule.js +31 -29
- package/src/in-the-dark/importModule.js.map +7 -1
- package/src/index.d.ts +2 -2
- package/src/index.d.ts.map +1 -1
- package/src/index.js +14 -14
- package/src/index.js.map +7 -1
- package/src/shadow-objects.js +6 -6
- package/src/shadow-objects.js.map +7 -1
- package/src/shadow-objects.worker.js +3 -3
- package/src/shadow-objects.worker.js.map +7 -1
- package/src/shae-ent.js +3 -3
- package/src/shae-ent.js.map +7 -1
- package/src/shae-prop.js +3 -3
- package/src/shae-prop.js.map +7 -1
- package/src/shae-worker.js +3 -3
- package/src/shae-worker.js.map +7 -1
- package/src/types.d.ts +5 -4
- package/src/types.d.ts.map +1 -1
- package/src/types.js +1 -2
- package/src/types.js.map +7 -1
- package/src/utils/ConsoleLogger.js +179 -185
- package/src/utils/ConsoleLogger.js.map +7 -1
- package/src/utils/FrameLoop.js +41 -40
- package/src/utils/FrameLoop.js.map +7 -1
- package/src/utils/array-utils.js +22 -24
- package/src/utils/array-utils.js.map +7 -1
- package/src/utils/attr-utils.js +15 -11
- package/src/utils/attr-utils.js.map +7 -1
- package/src/utils/constants.js +5 -2
- package/src/utils/constants.js.map +7 -1
- package/src/utils/generateUUID.d.ts.map +1 -1
- package/src/utils/generateUUID.js +269 -32
- package/src/utils/generateUUID.js.map +7 -1
- package/src/utils/props-utils.js +34 -43
- package/src/utils/props-utils.js.map +7 -1
- package/src/utils/toMaybe.js +5 -2
- package/src/utils/toMaybe.js.map +7 -1
- package/src/utils/toNamespace.js +6 -3
- package/src/utils/toNamespace.js.map +7 -1
- package/src/utils/toUrlString.js +9 -6
- package/src/utils/toUrlString.js.map +7 -1
- package/src/utils/waitForMessageOfType.js +30 -32
- package/src/utils/waitForMessageOfType.js.map +7 -1
- package/src/view/ComponentChanges.d.ts +1 -1
- package/src/view/ComponentChanges.d.ts.map +1 -1
- package/src/view/ComponentChanges.js +249 -251
- package/src/view/ComponentChanges.js.map +7 -1
- package/src/view/ComponentContext.d.ts.map +1 -1
- package/src/view/ComponentContext.js +303 -331
- package/src/view/ComponentContext.js.map +7 -1
- package/src/view/ComponentMemory.d.ts +1 -0
- package/src/view/ComponentMemory.d.ts.map +1 -1
- package/src/view/ComponentMemory.js +73 -76
- package/src/view/ComponentMemory.js.map +7 -1
- package/src/view/IShadowObjectEnvProxy.js +1 -2
- package/src/view/IShadowObjectEnvProxy.js.map +7 -1
- package/src/view/LocalShadowObjectEnv.d.ts.map +1 -1
- package/src/view/LocalShadowObjectEnv.js +57 -52
- package/src/view/LocalShadowObjectEnv.js.map +7 -1
- package/src/view/RemoteWorkerEnv.js +134 -123
- package/src/view/RemoteWorkerEnv.js.map +7 -1
- package/src/view/ShadowEnv.d.ts.map +1 -1
- package/src/view/ShadowEnv.js +232 -228
- package/src/view/ShadowEnv.js.map +7 -1
- package/src/view/ViewComponent.d.ts +9 -0
- package/src/view/ViewComponent.d.ts.map +1 -1
- package/src/view/ViewComponent.js +142 -130
- package/src/view/ViewComponent.js.map +7 -1
- package/src/view/cloneChangeTrail.js +13 -11
- package/src/view/cloneChangeTrail.js.map +7 -1
- package/src/worker/MessageRouter.d.ts.map +1 -1
- package/src/worker/MessageRouter.js +78 -67
- package/src/worker/MessageRouter.js.map +7 -1
- package/src/worker/WorkerRuntime.js +22 -21
- package/src/worker/WorkerRuntime.js.map +7 -1
- package/tsconfig.lib.tsbuildinfo +0 -1
package/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACpH,OAAO,KAAK,EAAC,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAC5F,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;AAErD,MAAM,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC7D,IAAI,EAAE,mBAAmB,CAAC,cAAc,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC3C;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,mBAAmB,CAAC,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,CAAC;IAC3C,UAAU,EAAE,uBAAuB,CAAC;CACrC;AAED,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC;IACrC,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,WAAW,CAAC;AAEhB,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,kBAAkB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,CAC9B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,GAAG;IACrF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,IAAI,CAAC;CAC1D,CACF,CAAC;AAEF,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,SAAS,CAAC;IAElB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzH,cAAc,CAAC,CAAC,GAAG,OAAO,EACxB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,oBAAoB,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,SAAS,CAAC,EACtD,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,GAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpB,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAC9B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,oBAAoB,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,SAAS,CAAC,EACtD,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,GAC9D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpB,UAAU,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,GAC3D,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1B,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAC1B,IAAI,EAAE,MAAM,GAAG,MAAM,EACrB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,GAC3D,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1B,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7H,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvE,KAAK,EAAE;SAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAC,GAC9B;SACA,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1C,CAAC;IAEF,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7H,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACxF,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3G,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAEpF,EAAE,CAAC,GAAG,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,GAAG,IAAI,EAAE,aAAa,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IAEnE,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,GAAG,GAAG,IAAI,CAAC;IAElE;;;;;OAKG;IACH,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC/D;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAExF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,MAAM,EAAE,uBAAuB,GAAG,EAAE,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAE/C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,8BAA8B,GAAG,CAAC,aAAa,EAAE;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,GAAG,2BAA2B,KAAK,IAAI,CAAC;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;CACpB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,2BAA2B,CAAC,CAAC;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,8BAA8B,CAAC;CAC7C"}
|
package/src/types.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
package/src/types.js.map
CHANGED
|
@@ -1,195 +1,189 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const HAS_LOCAL_STORAGE = 'localStorage' in globalThis;
|
|
1
|
+
const CONSOLE_LOGGER = "ConsoleLogger";
|
|
2
|
+
const CONSOLE_LOGGER_STORAGE = `${CONSOLE_LOGGER}Storage`;
|
|
3
|
+
const IS_LOCALHOST = Boolean(globalThis.location?.host?.startsWith("localhost") ?? false);
|
|
4
|
+
const HAS_LOCAL_STORAGE = "localStorage" in globalThis;
|
|
6
5
|
const ConsoleLogger$ = Symbol.for(CONSOLE_LOGGER);
|
|
7
6
|
let gInitialized = false;
|
|
8
7
|
const asBoolean = (val) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
8
|
+
if (typeof val === "boolean") return val;
|
|
9
|
+
switch (val.toLowerCase()) {
|
|
10
|
+
case "true":
|
|
11
|
+
case "yes":
|
|
12
|
+
case "on":
|
|
13
|
+
return true;
|
|
14
|
+
default:
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
19
17
|
};
|
|
20
|
-
const getKeyPath = (key) => [HAS_LOCAL_STORAGE ? CONSOLE_LOGGER :
|
|
21
|
-
function loadConfigValue(key, as =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
return value != undefined ? as(value) : defaultValue;
|
|
18
|
+
const getKeyPath = (key) => [HAS_LOCAL_STORAGE ? CONSOLE_LOGGER : void 0, ...Array.isArray(key) ? key : [key]].filter(Boolean).join(".");
|
|
19
|
+
function loadConfigValue(key, as = void 0, defaultValue) {
|
|
20
|
+
const _key = getKeyPath(key);
|
|
21
|
+
const value = HAS_LOCAL_STORAGE ? localStorage.getItem(_key) : globalThis[CONSOLE_LOGGER_STORAGE]?.[_key];
|
|
22
|
+
return value != void 0 ? as(value) : defaultValue;
|
|
26
23
|
}
|
|
27
24
|
function saveConfigValue(key, val) {
|
|
25
|
+
if (HAS_LOCAL_STORAGE) {
|
|
26
|
+
localStorage.setItem(getKeyPath(key), val);
|
|
27
|
+
} else {
|
|
28
|
+
if (globalThis[CONSOLE_LOGGER_STORAGE] == void 0) {
|
|
29
|
+
globalThis[CONSOLE_LOGGER_STORAGE] = {};
|
|
30
|
+
console.debug(`${CONSOLE_LOGGER}: Initialize`, { [CONSOLE_LOGGER_STORAGE]: globalThis[CONSOLE_LOGGER_STORAGE] });
|
|
31
|
+
}
|
|
32
|
+
globalThis[CONSOLE_LOGGER_STORAGE][getKeyPath(key)] = val;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
class ConsoleLogger {
|
|
36
|
+
constructor(namespace) {
|
|
37
|
+
this.enable = true;
|
|
38
|
+
this.namespace = (namespace || "").trim() || CONSOLE_LOGGER;
|
|
39
|
+
if (!gInitialized) {
|
|
40
|
+
ConsoleLogger.loadConfig();
|
|
41
|
+
gInitialized = true;
|
|
42
|
+
}
|
|
43
|
+
const key = [this.namespace, "enable"];
|
|
44
|
+
this.enable = loadConfigValue(key, asBoolean, this.enable);
|
|
45
|
+
saveConfigValue(key, HAS_LOCAL_STORAGE ? this.enable ? "true" : "false" : this.enable);
|
|
46
|
+
}
|
|
47
|
+
static {
|
|
48
|
+
this.sharedConfig = {
|
|
49
|
+
enable: IS_LOCALHOST,
|
|
50
|
+
debug: false,
|
|
51
|
+
info: true,
|
|
52
|
+
warn: true,
|
|
53
|
+
"styles.debug": "color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em",
|
|
54
|
+
"styles.info": "color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em",
|
|
55
|
+
"styles.warn": "color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em",
|
|
56
|
+
"styles.error": "color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em"
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
static get isEnabled() {
|
|
60
|
+
return ConsoleLogger.sharedConfig.enable;
|
|
61
|
+
}
|
|
62
|
+
static get isDebug() {
|
|
63
|
+
return ConsoleLogger.sharedConfig.enable && ConsoleLogger.sharedConfig.debug;
|
|
64
|
+
}
|
|
65
|
+
static {
|
|
66
|
+
this.sharedStyles = {
|
|
67
|
+
get debug() {
|
|
68
|
+
return ConsoleLogger.sharedConfig["styles.debug"];
|
|
69
|
+
},
|
|
70
|
+
set debug(val) {
|
|
71
|
+
ConsoleLogger.sharedConfig["styles.debug"] = val;
|
|
72
|
+
},
|
|
73
|
+
get info() {
|
|
74
|
+
return ConsoleLogger.sharedConfig["styles.info"];
|
|
75
|
+
},
|
|
76
|
+
set info(val) {
|
|
77
|
+
ConsoleLogger.sharedConfig["styles.info"] = val;
|
|
78
|
+
},
|
|
79
|
+
get warn() {
|
|
80
|
+
return ConsoleLogger.sharedConfig["styles.warn"];
|
|
81
|
+
},
|
|
82
|
+
set warn(val) {
|
|
83
|
+
ConsoleLogger.sharedConfig["styles.warn"] = val;
|
|
84
|
+
},
|
|
85
|
+
get error() {
|
|
86
|
+
return ConsoleLogger.sharedConfig["styles.error"];
|
|
87
|
+
},
|
|
88
|
+
set error(val) {
|
|
89
|
+
ConsoleLogger.sharedConfig["styles.error"] = val;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
static loadConfig() {
|
|
28
94
|
if (HAS_LOCAL_STORAGE) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
95
|
+
["enable", "debug", "info", "warn"].forEach((key) => {
|
|
96
|
+
this.sharedConfig[key] = loadConfigValue(key, asBoolean, this.sharedConfig[key]);
|
|
97
|
+
});
|
|
98
|
+
["debug", "info", "warn", "error"].forEach((key) => {
|
|
99
|
+
this.sharedStyles[key] = loadConfigValue(["styles", key], void 0, this.sharedStyles[key]);
|
|
100
|
+
});
|
|
101
|
+
if (ConsoleLogger.isDebug) {
|
|
102
|
+
console.debug(`${CONSOLE_LOGGER}: Load config from localStorage`, ConsoleLogger.sharedConfig);
|
|
103
|
+
}
|
|
104
|
+
if (!globalThis[CONSOLE_LOGGER]?.[ConsoleLogger$]) {
|
|
105
|
+
globalThis[CONSOLE_LOGGER] ??= {
|
|
106
|
+
[ConsoleLogger$]: true,
|
|
107
|
+
get enable() {
|
|
108
|
+
return ConsoleLogger.sharedConfig.enable;
|
|
109
|
+
},
|
|
110
|
+
set enable(val) {
|
|
111
|
+
ConsoleLogger.sharedConfig.enable = val;
|
|
112
|
+
saveConfigValue("enable", val ? "true" : "false");
|
|
113
|
+
},
|
|
114
|
+
get debug() {
|
|
115
|
+
return ConsoleLogger.sharedConfig.debug;
|
|
116
|
+
},
|
|
117
|
+
set debug(val) {
|
|
118
|
+
ConsoleLogger.sharedConfig.debug = val;
|
|
119
|
+
saveConfigValue("debug", val ? "true" : "false");
|
|
120
|
+
},
|
|
121
|
+
get info() {
|
|
122
|
+
return ConsoleLogger.sharedConfig.info;
|
|
123
|
+
},
|
|
124
|
+
set info(val) {
|
|
125
|
+
ConsoleLogger.sharedConfig.info = val;
|
|
126
|
+
saveConfigValue("info", val ? "true" : "false");
|
|
127
|
+
},
|
|
128
|
+
get warn() {
|
|
129
|
+
return ConsoleLogger.sharedConfig.warn;
|
|
130
|
+
},
|
|
131
|
+
set warn(val) {
|
|
132
|
+
ConsoleLogger.sharedConfig.warn = val;
|
|
133
|
+
saveConfigValue("warn", val ? "true" : "false");
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
if (!globalThis[CONSOLE_LOGGER_STORAGE]?.[ConsoleLogger$]) {
|
|
139
|
+
globalThis[CONSOLE_LOGGER_STORAGE] = {
|
|
140
|
+
[ConsoleLogger$]: true,
|
|
141
|
+
...ConsoleLogger.sharedConfig,
|
|
142
|
+
// @ts-ignore
|
|
143
|
+
...globalThis[CONSOLE_LOGGER_STORAGE]
|
|
144
|
+
};
|
|
145
|
+
ConsoleLogger.sharedConfig = globalThis[CONSOLE_LOGGER_STORAGE];
|
|
146
|
+
if (ConsoleLogger.isDebug) {
|
|
147
|
+
console.debug(
|
|
148
|
+
`${CONSOLE_LOGGER}: Load config from ${CONSOLE_LOGGER_STORAGE}`,
|
|
36
149
|
// @ts-ignore
|
|
37
|
-
|
|
150
|
+
globalThis[CONSOLE_LOGGER_STORAGE]
|
|
151
|
+
);
|
|
38
152
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
get isEnabled() {
|
|
157
|
+
return this.enable && ConsoleLogger.sharedConfig.enable;
|
|
158
|
+
}
|
|
159
|
+
get isDebug() {
|
|
160
|
+
return this.isEnabled && ConsoleLogger.sharedConfig.debug;
|
|
161
|
+
}
|
|
162
|
+
get isInfo() {
|
|
163
|
+
return this.isEnabled && ConsoleLogger.sharedConfig.info;
|
|
164
|
+
}
|
|
165
|
+
get isWarn() {
|
|
166
|
+
return this.isEnabled && ConsoleLogger.sharedConfig.warn;
|
|
167
|
+
}
|
|
168
|
+
debug(...args) {
|
|
169
|
+
this.#print("debug", ConsoleLogger.sharedStyles.debug, args);
|
|
170
|
+
}
|
|
171
|
+
info(...args) {
|
|
172
|
+
this.#print("info", ConsoleLogger.sharedStyles.info, args);
|
|
173
|
+
}
|
|
174
|
+
warn(...args) {
|
|
175
|
+
this.#print("warn", ConsoleLogger.sharedStyles.warn, args);
|
|
176
|
+
}
|
|
177
|
+
error(...args) {
|
|
178
|
+
this.#print("error", ConsoleLogger.sharedStyles.error, args);
|
|
179
|
+
}
|
|
180
|
+
#print(level, styles, args) {
|
|
181
|
+
console[level](`%c${this.namespace}`, styles, ...args);
|
|
182
|
+
}
|
|
42
183
|
}
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
'styles.debug': 'color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',
|
|
50
|
-
'styles.info': 'color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',
|
|
51
|
-
'styles.warn': 'color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',
|
|
52
|
-
'styles.error': 'color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',
|
|
53
|
-
}; }
|
|
54
|
-
static get isEnabled() {
|
|
55
|
-
return ConsoleLogger.sharedConfig.enable;
|
|
56
|
-
}
|
|
57
|
-
static get isDebug() {
|
|
58
|
-
return ConsoleLogger.sharedConfig.enable && ConsoleLogger.sharedConfig.debug;
|
|
59
|
-
}
|
|
60
|
-
static { this.sharedStyles = {
|
|
61
|
-
get debug() {
|
|
62
|
-
return ConsoleLogger.sharedConfig['styles.debug'];
|
|
63
|
-
},
|
|
64
|
-
set debug(val) {
|
|
65
|
-
ConsoleLogger.sharedConfig['styles.debug'] = val;
|
|
66
|
-
},
|
|
67
|
-
get info() {
|
|
68
|
-
return ConsoleLogger.sharedConfig['styles.info'];
|
|
69
|
-
},
|
|
70
|
-
set info(val) {
|
|
71
|
-
ConsoleLogger.sharedConfig['styles.info'] = val;
|
|
72
|
-
},
|
|
73
|
-
get warn() {
|
|
74
|
-
return ConsoleLogger.sharedConfig['styles.warn'];
|
|
75
|
-
},
|
|
76
|
-
set warn(val) {
|
|
77
|
-
ConsoleLogger.sharedConfig['styles.warn'] = val;
|
|
78
|
-
},
|
|
79
|
-
get error() {
|
|
80
|
-
return ConsoleLogger.sharedConfig['styles.error'];
|
|
81
|
-
},
|
|
82
|
-
set error(val) {
|
|
83
|
-
ConsoleLogger.sharedConfig['styles.error'] = val;
|
|
84
|
-
},
|
|
85
|
-
}; }
|
|
86
|
-
static loadConfig() {
|
|
87
|
-
if (HAS_LOCAL_STORAGE) {
|
|
88
|
-
['enable', 'debug', 'info', 'warn'].forEach((key) => {
|
|
89
|
-
// @ts-ignore
|
|
90
|
-
this.sharedConfig[key] = loadConfigValue(key, asBoolean, this.sharedConfig[key]);
|
|
91
|
-
});
|
|
92
|
-
['debug', 'info', 'warn', 'error'].forEach((key) => {
|
|
93
|
-
// @ts-ignore
|
|
94
|
-
this.sharedStyles[key] = loadConfigValue(['styles', key], undefined, this.sharedStyles[key]);
|
|
95
|
-
});
|
|
96
|
-
if (ConsoleLogger.isDebug) {
|
|
97
|
-
console.debug(`${CONSOLE_LOGGER}: Load config from localStorage`, ConsoleLogger.sharedConfig);
|
|
98
|
-
}
|
|
99
|
-
// @ts-ignore
|
|
100
|
-
if (!globalThis[CONSOLE_LOGGER]?.[ConsoleLogger$]) {
|
|
101
|
-
// @ts-ignore
|
|
102
|
-
globalThis[CONSOLE_LOGGER] ??= {
|
|
103
|
-
[ConsoleLogger$]: true,
|
|
104
|
-
get enable() {
|
|
105
|
-
return ConsoleLogger.sharedConfig.enable;
|
|
106
|
-
},
|
|
107
|
-
set enable(val) {
|
|
108
|
-
ConsoleLogger.sharedConfig.enable = val;
|
|
109
|
-
saveConfigValue('enable', val ? 'true' : 'false');
|
|
110
|
-
},
|
|
111
|
-
get debug() {
|
|
112
|
-
return ConsoleLogger.sharedConfig.debug;
|
|
113
|
-
},
|
|
114
|
-
set debug(val) {
|
|
115
|
-
ConsoleLogger.sharedConfig.debug = val;
|
|
116
|
-
saveConfigValue('debug', val ? 'true' : 'false');
|
|
117
|
-
},
|
|
118
|
-
get info() {
|
|
119
|
-
return ConsoleLogger.sharedConfig.info;
|
|
120
|
-
},
|
|
121
|
-
set info(val) {
|
|
122
|
-
ConsoleLogger.sharedConfig.info = val;
|
|
123
|
-
saveConfigValue('info', val ? 'true' : 'false');
|
|
124
|
-
},
|
|
125
|
-
get warn() {
|
|
126
|
-
return ConsoleLogger.sharedConfig.warn;
|
|
127
|
-
},
|
|
128
|
-
set warn(val) {
|
|
129
|
-
ConsoleLogger.sharedConfig.warn = val;
|
|
130
|
-
saveConfigValue('warn', val ? 'true' : 'false');
|
|
131
|
-
},
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
// no localStorage available: in this case we just use globalThis[STORAGE_KEY]
|
|
137
|
-
// @ts-ignore
|
|
138
|
-
if (!globalThis[CONSOLE_LOGGER_STORAGE]?.[ConsoleLogger$]) {
|
|
139
|
-
// @ts-ignore
|
|
140
|
-
globalThis[CONSOLE_LOGGER_STORAGE] = {
|
|
141
|
-
[ConsoleLogger$]: true,
|
|
142
|
-
...ConsoleLogger.sharedConfig,
|
|
143
|
-
// @ts-ignore
|
|
144
|
-
...globalThis[CONSOLE_LOGGER_STORAGE],
|
|
145
|
-
};
|
|
146
|
-
// @ts-ignore
|
|
147
|
-
ConsoleLogger.sharedConfig = globalThis[CONSOLE_LOGGER_STORAGE];
|
|
148
|
-
if (ConsoleLogger.isDebug) {
|
|
149
|
-
console.debug(`${CONSOLE_LOGGER}: Load config from ${CONSOLE_LOGGER_STORAGE}`,
|
|
150
|
-
// @ts-ignore
|
|
151
|
-
globalThis[CONSOLE_LOGGER_STORAGE]);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
constructor(namespace) {
|
|
157
|
-
this.enable = true;
|
|
158
|
-
this.namespace = (namespace || '').trim() || CONSOLE_LOGGER;
|
|
159
|
-
if (!gInitialized) {
|
|
160
|
-
ConsoleLogger.loadConfig();
|
|
161
|
-
gInitialized = true;
|
|
162
|
-
}
|
|
163
|
-
const key = [this.namespace, 'enable'];
|
|
164
|
-
this.enable = loadConfigValue(key, asBoolean, this.enable);
|
|
165
|
-
saveConfigValue(key, HAS_LOCAL_STORAGE ? (this.enable ? 'true' : 'false') : this.enable);
|
|
166
|
-
}
|
|
167
|
-
get isEnabled() {
|
|
168
|
-
return this.enable && ConsoleLogger.sharedConfig.enable;
|
|
169
|
-
}
|
|
170
|
-
get isDebug() {
|
|
171
|
-
return this.isEnabled && ConsoleLogger.sharedConfig.debug;
|
|
172
|
-
}
|
|
173
|
-
get isInfo() {
|
|
174
|
-
return this.isEnabled && ConsoleLogger.sharedConfig.info;
|
|
175
|
-
}
|
|
176
|
-
get isWarn() {
|
|
177
|
-
return this.isEnabled && ConsoleLogger.sharedConfig.warn;
|
|
178
|
-
}
|
|
179
|
-
debug(...args) {
|
|
180
|
-
this.#print('debug', ConsoleLogger.sharedStyles.debug, args);
|
|
181
|
-
}
|
|
182
|
-
info(...args) {
|
|
183
|
-
this.#print('info', ConsoleLogger.sharedStyles.info, args);
|
|
184
|
-
}
|
|
185
|
-
warn(...args) {
|
|
186
|
-
this.#print('warn', ConsoleLogger.sharedStyles.warn, args);
|
|
187
|
-
}
|
|
188
|
-
error(...args) {
|
|
189
|
-
this.#print('error', ConsoleLogger.sharedStyles.error, args);
|
|
190
|
-
}
|
|
191
|
-
#print(level, styles, args) {
|
|
192
|
-
console[level](`%c${this.namespace}`, styles, ...args);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
//# sourceMappingURL=ConsoleLogger.js.map
|
|
184
|
+
export {
|
|
185
|
+
CONSOLE_LOGGER,
|
|
186
|
+
CONSOLE_LOGGER_STORAGE,
|
|
187
|
+
ConsoleLogger
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=ConsoleLogger.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/ConsoleLogger.ts"],
|
|
4
|
+
"sourcesContent": ["// https://developer.chrome.com/docs/devtools/console/format-style?hl=de\n\nexport const CONSOLE_LOGGER = 'ConsoleLogger';\nexport const CONSOLE_LOGGER_STORAGE = `${CONSOLE_LOGGER}Storage`;\n\nconst IS_LOCALHOST = Boolean(globalThis.location?.host?.startsWith('localhost') ?? false);\n\nconst HAS_LOCAL_STORAGE = 'localStorage' in globalThis;\n\nconst ConsoleLogger$ = Symbol.for(CONSOLE_LOGGER);\n\nlet gInitialized = false;\n\nconst asBoolean = (val: string | boolean) => {\n if (typeof val === 'boolean') return val;\n switch (val.toLowerCase()) {\n case 'true':\n case 'yes':\n case 'on':\n return true;\n default:\n return false;\n }\n};\n\nconst getKeyPath = (key: string | string[]): string =>\n [HAS_LOCAL_STORAGE ? CONSOLE_LOGGER : undefined, ...(Array.isArray(key) ? key : [key])].filter(Boolean).join('.');\n\nfunction loadConfigValue<T>(key: string | string[], as: (val: string) => T = undefined, defaultValue: T): T {\n const _key = getKeyPath(key);\n // @ts-ignore\n const value = HAS_LOCAL_STORAGE ? localStorage.getItem(_key) : globalThis[CONSOLE_LOGGER_STORAGE]?.[_key];\n return value != undefined ? as(value) : defaultValue;\n}\n\nfunction saveConfigValue(key: string | string[], val: any) {\n if (HAS_LOCAL_STORAGE) {\n localStorage.setItem(getKeyPath(key), val);\n } else {\n // @ts-ignore\n if (globalThis[CONSOLE_LOGGER_STORAGE] == undefined) {\n // @ts-ignore\n globalThis[CONSOLE_LOGGER_STORAGE] = {};\n // @ts-ignore\n console.debug(`${CONSOLE_LOGGER}: Initialize`, {[CONSOLE_LOGGER_STORAGE]: globalThis[CONSOLE_LOGGER_STORAGE]});\n }\n // @ts-ignore\n globalThis[CONSOLE_LOGGER_STORAGE][getKeyPath(key)] = val;\n }\n}\n\nexport class ConsoleLogger {\n namespace?: string;\n\n enable = true;\n\n static sharedConfig = {\n enable: IS_LOCALHOST,\n\n debug: false,\n info: true,\n warn: true,\n\n 'styles.debug': 'color: #111; background: #999; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',\n 'styles.info': 'color: #020; background: #8a8; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',\n 'styles.warn': 'color: #fa0; background: #a98; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',\n 'styles.error': 'color: #ff0; background: #a00; display: inline-block; padding: 0 0.25em; margin: 0; border-radius: 0.25em',\n };\n\n static get isEnabled() {\n return ConsoleLogger.sharedConfig.enable;\n }\n\n static get isDebug() {\n return ConsoleLogger.sharedConfig.enable && ConsoleLogger.sharedConfig.debug;\n }\n\n static sharedStyles = {\n get debug() {\n return ConsoleLogger.sharedConfig['styles.debug'];\n },\n set debug(val: string) {\n ConsoleLogger.sharedConfig['styles.debug'] = val;\n },\n get info() {\n return ConsoleLogger.sharedConfig['styles.info'];\n },\n set info(val: string) {\n ConsoleLogger.sharedConfig['styles.info'] = val;\n },\n get warn() {\n return ConsoleLogger.sharedConfig['styles.warn'];\n },\n set warn(val: string) {\n ConsoleLogger.sharedConfig['styles.warn'] = val;\n },\n get error() {\n return ConsoleLogger.sharedConfig['styles.error'];\n },\n set error(val: string) {\n ConsoleLogger.sharedConfig['styles.error'] = val;\n },\n };\n\n static loadConfig() {\n if (HAS_LOCAL_STORAGE) {\n ['enable', 'debug', 'info', 'warn'].forEach((key) => {\n // @ts-ignore\n this.sharedConfig[key] = loadConfigValue(key, asBoolean, this.sharedConfig[key]);\n });\n\n ['debug', 'info', 'warn', 'error'].forEach((key) => {\n // @ts-ignore\n this.sharedStyles[key] = loadConfigValue(['styles', key], undefined, this.sharedStyles[key]);\n });\n\n if (ConsoleLogger.isDebug) {\n console.debug(`${CONSOLE_LOGGER}: Load config from localStorage`, ConsoleLogger.sharedConfig);\n }\n\n // @ts-ignore\n if (!globalThis[CONSOLE_LOGGER]?.[ConsoleLogger$]) {\n // @ts-ignore\n globalThis[CONSOLE_LOGGER] ??= {\n [ConsoleLogger$]: true,\n\n get enable() {\n return ConsoleLogger.sharedConfig.enable;\n },\n set enable(val: boolean) {\n ConsoleLogger.sharedConfig.enable = val;\n saveConfigValue('enable', val ? 'true' : 'false');\n },\n get debug() {\n return ConsoleLogger.sharedConfig.debug;\n },\n set debug(val: boolean) {\n ConsoleLogger.sharedConfig.debug = val;\n saveConfigValue('debug', val ? 'true' : 'false');\n },\n get info() {\n return ConsoleLogger.sharedConfig.info;\n },\n set info(val: boolean) {\n ConsoleLogger.sharedConfig.info = val;\n saveConfigValue('info', val ? 'true' : 'false');\n },\n get warn() {\n return ConsoleLogger.sharedConfig.warn;\n },\n set warn(val: boolean) {\n ConsoleLogger.sharedConfig.warn = val;\n saveConfigValue('warn', val ? 'true' : 'false');\n },\n };\n }\n } else {\n // no localStorage available: in this case we just use globalThis[STORAGE_KEY]\n // @ts-ignore\n if (!globalThis[CONSOLE_LOGGER_STORAGE]?.[ConsoleLogger$]) {\n // @ts-ignore\n globalThis[CONSOLE_LOGGER_STORAGE] = {\n [ConsoleLogger$]: true,\n ...ConsoleLogger.sharedConfig,\n // @ts-ignore\n ...globalThis[CONSOLE_LOGGER_STORAGE],\n };\n // @ts-ignore\n ConsoleLogger.sharedConfig = globalThis[CONSOLE_LOGGER_STORAGE];\n if (ConsoleLogger.isDebug) {\n console.debug(\n `${CONSOLE_LOGGER}: Load config from ${CONSOLE_LOGGER_STORAGE}`,\n // @ts-ignore\n globalThis[CONSOLE_LOGGER_STORAGE],\n );\n }\n }\n }\n }\n\n constructor(namespace: string) {\n this.namespace = (namespace || '').trim() || CONSOLE_LOGGER;\n\n if (!gInitialized) {\n ConsoleLogger.loadConfig();\n gInitialized = true;\n }\n\n const key = [this.namespace, 'enable'];\n this.enable = loadConfigValue(key, asBoolean, this.enable);\n saveConfigValue(key, HAS_LOCAL_STORAGE ? (this.enable ? 'true' : 'false') : this.enable);\n }\n\n get isEnabled() {\n return this.enable && ConsoleLogger.sharedConfig.enable;\n }\n\n get isDebug() {\n return this.isEnabled && ConsoleLogger.sharedConfig.debug;\n }\n\n get isInfo() {\n return this.isEnabled && ConsoleLogger.sharedConfig.info;\n }\n\n get isWarn() {\n return this.isEnabled && ConsoleLogger.sharedConfig.warn;\n }\n\n debug(...args: any[]) {\n this.#print('debug', ConsoleLogger.sharedStyles.debug, args);\n }\n\n info(...args: any[]) {\n this.#print('info', ConsoleLogger.sharedStyles.info, args);\n }\n\n warn(...args: any[]) {\n this.#print('warn', ConsoleLogger.sharedStyles.warn, args);\n }\n\n error(...args: any[]) {\n this.#print('error', ConsoleLogger.sharedStyles.error, args);\n }\n\n #print(level: 'debug' | 'info' | 'warn' | 'error', styles: string, args: any[]) {\n console[level](`%c${this.namespace}`, styles, ...args);\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/utils/FrameLoop.js
CHANGED
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
import { emit, eventize, getSubscriptionCount, off, on } from '@spearwolf/eventize';
|
|
1
|
+
import { emit, eventize, getSubscriptionCount, off, on } from "@spearwolf/eventize";
|
|
3
2
|
let gUniqInstance = null;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
class FrameLoop {
|
|
4
|
+
static {
|
|
5
|
+
this.OnFrame = /* @__PURE__ */ Symbol("onFrame");
|
|
6
|
+
}
|
|
7
|
+
#rafID = 0;
|
|
8
|
+
#subscriptionCount = 0;
|
|
9
|
+
constructor() {
|
|
10
|
+
if (gUniqInstance) return gUniqInstance;
|
|
11
|
+
eventize(this);
|
|
12
|
+
gUniqInstance = this;
|
|
13
|
+
}
|
|
14
|
+
start(target) {
|
|
15
|
+
if (target == null) return;
|
|
16
|
+
if (getSubscriptionCount(this) === 0) {
|
|
17
|
+
this.#requestAnimationFrame();
|
|
13
18
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this.#requestAnimationFrame();
|
|
19
|
-
}
|
|
20
|
-
on(this, _a.OnFrame, target);
|
|
21
|
-
this.#subscriptionCount++;
|
|
22
|
-
return () => {
|
|
23
|
-
this.stop(target);
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
stop(target) {
|
|
27
|
-
off(this, _a.OnFrame, target);
|
|
28
|
-
if (getSubscriptionCount(this) === 0) {
|
|
29
|
-
this.#cancelAnimationFrame();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
#onFrame = (now) => {
|
|
33
|
-
emit(this, _a.OnFrame, now);
|
|
34
|
-
this.#requestAnimationFrame();
|
|
19
|
+
on(this, FrameLoop.OnFrame, target);
|
|
20
|
+
this.#subscriptionCount++;
|
|
21
|
+
return () => {
|
|
22
|
+
this.stop(target);
|
|
35
23
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.#rafID = 0;
|
|
24
|
+
}
|
|
25
|
+
stop(target) {
|
|
26
|
+
off(this, FrameLoop.OnFrame, target);
|
|
27
|
+
if (getSubscriptionCount(this) === 0) {
|
|
28
|
+
this.#cancelAnimationFrame();
|
|
42
29
|
}
|
|
30
|
+
}
|
|
31
|
+
#onFrame = (now) => {
|
|
32
|
+
emit(this, FrameLoop.OnFrame, now);
|
|
33
|
+
this.#requestAnimationFrame();
|
|
34
|
+
};
|
|
35
|
+
#requestAnimationFrame() {
|
|
36
|
+
this.#rafID = requestAnimationFrame(this.#onFrame);
|
|
37
|
+
}
|
|
38
|
+
#cancelAnimationFrame() {
|
|
39
|
+
cancelAnimationFrame(this.#rafID);
|
|
40
|
+
this.#rafID = 0;
|
|
41
|
+
}
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
export {
|
|
44
|
+
FrameLoop
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=FrameLoop.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/FrameLoop.ts"],
|
|
4
|
+
"sourcesContent": ["import {emit, eventize, getSubscriptionCount, off, on} from '@spearwolf/eventize';\n\nlet gUniqInstance: FrameLoop = null;\n\nexport class FrameLoop {\n static OnFrame = Symbol('onFrame');\n\n #rafID = 0;\n #subscriptionCount = 0;\n\n constructor() {\n if (gUniqInstance) return gUniqInstance;\n eventize(this);\n gUniqInstance = this;\n }\n\n start(target: object | Function) {\n if (target == null) return;\n\n if (getSubscriptionCount(this) === 0) {\n this.#requestAnimationFrame();\n }\n\n on(this as FrameLoop, FrameLoop.OnFrame, target);\n\n this.#subscriptionCount++;\n\n return () => {\n this.stop(target);\n };\n }\n\n stop(target: object | Function) {\n off(this, FrameLoop.OnFrame, target);\n\n if (getSubscriptionCount(this) === 0) {\n this.#cancelAnimationFrame();\n }\n }\n\n #onFrame = (now: number) => {\n emit(this as FrameLoop, FrameLoop.OnFrame, now);\n this.#requestAnimationFrame();\n };\n\n #requestAnimationFrame() {\n this.#rafID = requestAnimationFrame(this.#onFrame);\n }\n\n #cancelAnimationFrame() {\n cancelAnimationFrame(this.#rafID);\n this.#rafID = 0;\n }\n}"],
|
|
5
|
+
"mappings": "AAAA,SAAQ,MAAM,UAAU,sBAAsB,KAAK,UAAS;AAE5D,IAAI,gBAA2B;AAExB,MAAM,UAAU;AAAA,EACrB;AAAA,SAAO,UAAU,uBAAO,SAAS;AAAA;AAAA,EAEjC,SAAS;AAAA,EACT,qBAAqB;AAAA,EAErB,cAAc;AACZ,QAAI,cAAe,QAAO;AAC1B,aAAS,IAAI;AACb,oBAAgB;AAAA,EAClB;AAAA,EAEA,MAAM,QAA2B;AAC/B,QAAI,UAAU,KAAM;AAEpB,QAAI,qBAAqB,IAAI,MAAM,GAAG;AACpC,WAAK,uBAAuB;AAAA,IAC9B;AAEA,OAAG,MAAmB,UAAU,SAAS,MAAM;AAE/C,SAAK;AAEL,WAAO,MAAM;AACX,WAAK,KAAK,MAAM;AAAA,IAClB;AAAA,EACF;AAAA,EAEA,KAAK,QAA2B;AAC9B,QAAI,MAAM,UAAU,SAAS,MAAM;AAEnC,QAAI,qBAAqB,IAAI,MAAM,GAAG;AACpC,WAAK,sBAAsB;AAAA,IAC7B;AAAA,EACF;AAAA,EAEA,WAAW,CAAC,QAAgB;AAC1B,SAAK,MAAmB,UAAU,SAAS,GAAG;AAC9C,SAAK,uBAAuB;AAAA,EAC9B;AAAA,EAEA,yBAAyB;AACvB,SAAK,SAAS,sBAAsB,KAAK,QAAQ;AAAA,EACnD;AAAA,EAEA,wBAAwB;AACtB,yBAAqB,KAAK,MAAM;AAChC,SAAK,SAAS;AAAA,EAChB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/src/utils/array-utils.js
CHANGED
|
@@ -1,27 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export function appendTo(array, item) {
|
|
5
|
-
const index = array.indexOf(item);
|
|
6
|
-
if (index === -1) {
|
|
7
|
-
array.push(item);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Append a new item to the end of the array.
|
|
12
|
-
* If the item exists, remove the previous item first.
|
|
13
|
-
*/
|
|
14
|
-
export function appendToEnd(array, item) {
|
|
15
|
-
const index = array.indexOf(item);
|
|
16
|
-
if (index !== -1) {
|
|
17
|
-
array.splice(index, 1);
|
|
18
|
-
}
|
|
1
|
+
function appendTo(array, item) {
|
|
2
|
+
const index = array.indexOf(item);
|
|
3
|
+
if (index === -1) {
|
|
19
4
|
array.push(item);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
function appendToEnd(array, item) {
|
|
8
|
+
const index = array.indexOf(item);
|
|
9
|
+
if (index !== -1) {
|
|
10
|
+
array.splice(index, 1);
|
|
11
|
+
}
|
|
12
|
+
array.push(item);
|
|
20
13
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
function removeFrom(array, item) {
|
|
15
|
+
const index = array.indexOf(item);
|
|
16
|
+
if (index !== -1) {
|
|
17
|
+
array.splice(index, 1);
|
|
18
|
+
}
|
|
26
19
|
}
|
|
27
|
-
|
|
20
|
+
export {
|
|
21
|
+
appendTo,
|
|
22
|
+
appendToEnd,
|
|
23
|
+
removeFrom
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=array-utils.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/utils/array-utils.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Add a new item to the array, but only if it does not already exist\n */\nexport function appendTo<T = unknown>(array: T[], item: T) {\n const index = array.indexOf(item);\n if (index === -1) {\n array.push(item);\n }\n}\n\n/**\n * Append a new item to the end of the array.\n * If the item exists, remove the previous item first.\n */\nexport function appendToEnd<T = unknown>(array: T[], item: T) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n array.push(item);\n}\n\nexport function removeFrom<T = unknown>(array: T[], item: T) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}"],
|
|
5
|
+
"mappings": "AAGO,SAAS,SAAsB,OAAY,MAAS;AACzD,QAAM,QAAQ,MAAM,QAAQ,IAAI;AAChC,MAAI,UAAU,IAAI;AAChB,UAAM,KAAK,IAAI;AAAA,EACjB;AACF;AAMO,SAAS,YAAyB,OAAY,MAAS;AAC5D,QAAM,QAAQ,MAAM,QAAQ,IAAI;AAChC,MAAI,UAAU,IAAI;AAChB,UAAM,OAAO,OAAO,CAAC;AAAA,EACvB;AACA,QAAM,KAAK,IAAI;AACjB;AAEO,SAAS,WAAwB,OAAY,MAAS;AAC3D,QAAM,QAAQ,MAAM,QAAQ,IAAI;AAChC,MAAI,UAAU,IAAI;AAChB,UAAM,OAAO,OAAO,CAAC;AAAA,EACvB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|