phecda-core 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -42,6 +42,7 @@ interface Handler {
42
42
  }
43
43
  interface Phecda {
44
44
  prototype: any;
45
+ __PROMISE_SYMBOL__: Promise<any>;
45
46
  [PHECDA_KEY]: {
46
47
  __EXPOSE_KEY: Set<PropertyKey>;
47
48
  __IGNORE_KEY: Set<PropertyKey>;
@@ -120,4 +121,18 @@ declare const activeInstance: Record<string, any>;
120
121
  declare function setInject(key: string, value: any): Record<string, any>;
121
122
  declare function getInject(key: string): any;
122
123
 
123
- export { type AbConstruct, Assign, Bind, type ClassValue, Clear, type Construct, DataMap, Effect, Empty, Err, type Events, Expose, Global, type Handler, If, Ignore, Init, Inject, type InjectData, Isolate, type NameSpace, PHECDA_KEY, type Phecda, Pipeline, Provide, Rule, SHARE_KEY, Storage, type StorageParam, Tag, To, Unique, Unmount, Watcher, type WatcherParam, activeInstance, addDecoToClass, classToPlain, get, getBind, getExposeKey, getHandler, getInject, getOwnExposeKey, getOwnHandler, getOwnIgnoreKey, getOwnState, getOwnStateKey, getPhecdaFromTarget, getShareState, getState, getStateKey, getTag, init, invokeHandler, isAsyncFunc, isPhecda, plainToClass, set, setExposeKey, setHandler, setIgnoreKey, setInject, setPropertyState, setState, setStateKey, snapShot, transformInstance, transformInstanceAsync, transformProperty, transformPropertyAsync };
124
+ declare abstract class Base {
125
+ private readonly __UNMOUNT_SYMBOL__;
126
+ private readonly __PROMISE_SYMBOL__;
127
+ abstract emitter: any;
128
+ constructor();
129
+ get tag(): PropertyKey;
130
+ then(cb: () => void, reject?: (e: any) => void): Promise<void>;
131
+ on<Key extends keyof Events>(type: Key, handler: (arg: Events[Key]) => void): void;
132
+ emit<Key extends keyof Events>(type: Key, param: Events[Key]): void;
133
+ off<Key extends keyof Events>(type: Key, handler?: (arg: Events[Key]) => void): void;
134
+ protected onUnmount(cb: () => void): void;
135
+ private _unmount;
136
+ }
137
+
138
+ export { type AbConstruct, Assign, Base, Bind, type ClassValue, Clear, type Construct, DataMap, Effect, Empty, Err, type Events, Expose, Global, type Handler, If, Ignore, Init, Inject, type InjectData, Isolate, type NameSpace, PHECDA_KEY, type Phecda, Pipeline, Provide, Rule, SHARE_KEY, Storage, type StorageParam, Tag, To, Unique, Unmount, Watcher, type WatcherParam, activeInstance, addDecoToClass, classToPlain, get, getBind, getExposeKey, getHandler, getInject, getOwnExposeKey, getOwnHandler, getOwnIgnoreKey, getOwnState, getOwnStateKey, getPhecdaFromTarget, getShareState, getState, getStateKey, getTag, init, invokeHandler, isAsyncFunc, isPhecda, plainToClass, set, setExposeKey, setHandler, setIgnoreKey, setInject, setPropertyState, setState, setStateKey, snapShot, transformInstance, transformInstanceAsync, transformProperty, transformPropertyAsync };
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ interface Handler {
42
42
  }
43
43
  interface Phecda {
44
44
  prototype: any;
45
+ __PROMISE_SYMBOL__: Promise<any>;
45
46
  [PHECDA_KEY]: {
46
47
  __EXPOSE_KEY: Set<PropertyKey>;
47
48
  __IGNORE_KEY: Set<PropertyKey>;
@@ -120,4 +121,18 @@ declare const activeInstance: Record<string, any>;
120
121
  declare function setInject(key: string, value: any): Record<string, any>;
121
122
  declare function getInject(key: string): any;
122
123
 
123
- export { type AbConstruct, Assign, Bind, type ClassValue, Clear, type Construct, DataMap, Effect, Empty, Err, type Events, Expose, Global, type Handler, If, Ignore, Init, Inject, type InjectData, Isolate, type NameSpace, PHECDA_KEY, type Phecda, Pipeline, Provide, Rule, SHARE_KEY, Storage, type StorageParam, Tag, To, Unique, Unmount, Watcher, type WatcherParam, activeInstance, addDecoToClass, classToPlain, get, getBind, getExposeKey, getHandler, getInject, getOwnExposeKey, getOwnHandler, getOwnIgnoreKey, getOwnState, getOwnStateKey, getPhecdaFromTarget, getShareState, getState, getStateKey, getTag, init, invokeHandler, isAsyncFunc, isPhecda, plainToClass, set, setExposeKey, setHandler, setIgnoreKey, setInject, setPropertyState, setState, setStateKey, snapShot, transformInstance, transformInstanceAsync, transformProperty, transformPropertyAsync };
124
+ declare abstract class Base {
125
+ private readonly __UNMOUNT_SYMBOL__;
126
+ private readonly __PROMISE_SYMBOL__;
127
+ abstract emitter: any;
128
+ constructor();
129
+ get tag(): PropertyKey;
130
+ then(cb: () => void, reject?: (e: any) => void): Promise<void>;
131
+ on<Key extends keyof Events>(type: Key, handler: (arg: Events[Key]) => void): void;
132
+ emit<Key extends keyof Events>(type: Key, param: Events[Key]): void;
133
+ off<Key extends keyof Events>(type: Key, handler?: (arg: Events[Key]) => void): void;
134
+ protected onUnmount(cb: () => void): void;
135
+ private _unmount;
136
+ }
137
+
138
+ export { type AbConstruct, Assign, Base, Bind, type ClassValue, Clear, type Construct, DataMap, Effect, Empty, Err, type Events, Expose, Global, type Handler, If, Ignore, Init, Inject, type InjectData, Isolate, type NameSpace, PHECDA_KEY, type Phecda, Pipeline, Provide, Rule, SHARE_KEY, Storage, type StorageParam, Tag, To, Unique, Unmount, Watcher, type WatcherParam, activeInstance, addDecoToClass, classToPlain, get, getBind, getExposeKey, getHandler, getInject, getOwnExposeKey, getOwnHandler, getOwnIgnoreKey, getOwnState, getOwnStateKey, getPhecdaFromTarget, getShareState, getState, getStateKey, getTag, init, invokeHandler, isAsyncFunc, isPhecda, plainToClass, set, setExposeKey, setHandler, setIgnoreKey, setInject, setPropertyState, setState, setStateKey, snapShot, transformInstance, transformInstanceAsync, transformProperty, transformPropertyAsync };
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
22
22
  var src_exports = {};
23
23
  __export(src_exports, {
24
24
  Assign: () => Assign,
25
+ Base: () => Base,
25
26
  Bind: () => Bind,
26
27
  Clear: () => Clear,
27
28
  DataMap: () => DataMap,
@@ -280,7 +281,7 @@ function invokeHandler(event, module2) {
280
281
  const initHandlers = stateVars.map((item) => {
281
282
  return getHandler(module2, item).filter((h) => !!h[event]).map((h) => h[event](module2));
282
283
  }).flat();
283
- return Promise.all(initHandlers);
284
+ return module2.__PROMISE_SYMBOL__ = Promise.all(initHandlers);
284
285
  }
285
286
  __name(invokeHandler, "invokeHandler");
286
287
  function set(proto, key, value) {
@@ -687,9 +688,60 @@ function If(value, ...decorators) {
687
688
  };
688
689
  }
689
690
  __name(If, "If");
691
+
692
+ // src/base.ts
693
+ function _ts_decorate(decorators, target, key, desc) {
694
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
695
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
696
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
697
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
698
+ }
699
+ __name(_ts_decorate, "_ts_decorate");
700
+ function _ts_metadata(k, v) {
701
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
702
+ }
703
+ __name(_ts_metadata, "_ts_metadata");
704
+ var Base = class {
705
+ static {
706
+ __name(this, "Base");
707
+ }
708
+ __UNMOUNT_SYMBOL__ = [];
709
+ __PROMISE_SYMBOL__;
710
+ constructor() {
711
+ }
712
+ get tag() {
713
+ return getTag(this);
714
+ }
715
+ then(cb, reject) {
716
+ return this.__PROMISE_SYMBOL__.then(cb, reject);
717
+ }
718
+ on(type, handler) {
719
+ this.emitter.on(type, handler);
720
+ this.onUnmount(() => this.emitter.off(type, handler));
721
+ }
722
+ emit(type, param) {
723
+ this.emitter.emit(type, param);
724
+ }
725
+ off(type, handler) {
726
+ this.emitter.off(type, handler);
727
+ }
728
+ onUnmount(cb) {
729
+ this.__UNMOUNT_SYMBOL__.push(cb);
730
+ }
731
+ _unmount() {
732
+ return Promise.all(this.__UNMOUNT_SYMBOL__.map((fn) => fn()));
733
+ }
734
+ };
735
+ _ts_decorate([
736
+ Unmount,
737
+ _ts_metadata("design:type", Function),
738
+ _ts_metadata("design:paramtypes", []),
739
+ _ts_metadata("design:returntype", void 0)
740
+ ], Base.prototype, "_unmount", null);
690
741
  // Annotate the CommonJS export names for ESM import in node:
691
742
  0 && (module.exports = {
692
743
  Assign,
744
+ Base,
693
745
  Bind,
694
746
  Clear,
695
747
  DataMap,
package/dist/index.mjs CHANGED
@@ -196,7 +196,7 @@ function invokeHandler(event, module) {
196
196
  const initHandlers = stateVars.map((item) => {
197
197
  return getHandler(module, item).filter((h) => !!h[event]).map((h) => h[event](module));
198
198
  }).flat();
199
- return Promise.all(initHandlers);
199
+ return module.__PROMISE_SYMBOL__ = Promise.all(initHandlers);
200
200
  }
201
201
  __name(invokeHandler, "invokeHandler");
202
202
  function set(proto, key, value) {
@@ -603,8 +603,59 @@ function If(value, ...decorators) {
603
603
  };
604
604
  }
605
605
  __name(If, "If");
606
+
607
+ // src/base.ts
608
+ function _ts_decorate(decorators, target, key, desc) {
609
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
610
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
611
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
612
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
613
+ }
614
+ __name(_ts_decorate, "_ts_decorate");
615
+ function _ts_metadata(k, v) {
616
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
617
+ }
618
+ __name(_ts_metadata, "_ts_metadata");
619
+ var Base = class {
620
+ static {
621
+ __name(this, "Base");
622
+ }
623
+ __UNMOUNT_SYMBOL__ = [];
624
+ __PROMISE_SYMBOL__;
625
+ constructor() {
626
+ }
627
+ get tag() {
628
+ return getTag(this);
629
+ }
630
+ then(cb, reject) {
631
+ return this.__PROMISE_SYMBOL__.then(cb, reject);
632
+ }
633
+ on(type, handler) {
634
+ this.emitter.on(type, handler);
635
+ this.onUnmount(() => this.emitter.off(type, handler));
636
+ }
637
+ emit(type, param) {
638
+ this.emitter.emit(type, param);
639
+ }
640
+ off(type, handler) {
641
+ this.emitter.off(type, handler);
642
+ }
643
+ onUnmount(cb) {
644
+ this.__UNMOUNT_SYMBOL__.push(cb);
645
+ }
646
+ _unmount() {
647
+ return Promise.all(this.__UNMOUNT_SYMBOL__.map((fn) => fn()));
648
+ }
649
+ };
650
+ _ts_decorate([
651
+ Unmount,
652
+ _ts_metadata("design:type", Function),
653
+ _ts_metadata("design:paramtypes", []),
654
+ _ts_metadata("design:returntype", void 0)
655
+ ], Base.prototype, "_unmount", null);
606
656
  export {
607
657
  Assign,
658
+ Base,
608
659
  Bind,
609
660
  Clear,
610
661
  DataMap,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "phecda-core",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "provide base function and abstract limit to other phecda module ",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",