@develia/commons 0.4.2 → 0.4.3

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.
Files changed (61) hide show
  1. package/dist/cjs/browser/index.js +129 -0
  2. package/dist/cjs/browser/index.js.map +1 -0
  3. package/dist/cjs/index.js +4 -3
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/type-code.js +18 -0
  6. package/dist/cjs/type-code.js.map +1 -0
  7. package/dist/cjs/type.js +212 -12
  8. package/dist/cjs/type.js.map +1 -1
  9. package/dist/cjs/utilities.js +1 -127
  10. package/dist/cjs/utilities.js.map +1 -1
  11. package/dist/esm/browser/index.js +122 -0
  12. package/dist/esm/browser/index.js.map +1 -0
  13. package/dist/esm/index.js +2 -1
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/type-code.js +16 -0
  16. package/dist/esm/type-code.js.map +1 -0
  17. package/dist/esm/type.js +209 -12
  18. package/dist/esm/type.js.map +1 -1
  19. package/dist/esm/utilities.js +1 -122
  20. package/dist/esm/utilities.js.map +1 -1
  21. package/dist/types/browser/index.d.ts +7 -0
  22. package/dist/types/browser/index.d.ts.map +1 -0
  23. package/dist/types/index.d.ts +2 -1
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/patch.d.ts +3 -3
  26. package/dist/types/patch.d.ts.map +1 -1
  27. package/dist/types/type-code.d.ts +15 -0
  28. package/dist/types/type-code.d.ts.map +1 -0
  29. package/dist/types/type.d.ts +45 -11
  30. package/dist/types/type.d.ts.map +1 -1
  31. package/dist/types/types.d.ts +1 -2
  32. package/dist/types/types.d.ts.map +1 -1
  33. package/dist/types/utilities.d.ts +1 -6
  34. package/dist/types/utilities.d.ts.map +1 -1
  35. package/dist/web/browser/index.js +123 -0
  36. package/dist/web/browser/index.js.map +1 -0
  37. package/dist/web/index.js +2 -1
  38. package/dist/web/index.js.map +1 -1
  39. package/dist/web/type-code.js +16 -0
  40. package/dist/web/type-code.js.map +1 -0
  41. package/dist/web/type.js +210 -12
  42. package/dist/web/type.js.map +1 -1
  43. package/dist/web/utilities.js +1 -122
  44. package/dist/web/utilities.js.map +1 -1
  45. package/package.json +1 -1
  46. package/src/browser/index.ts +172 -0
  47. package/src/index.ts +15 -13
  48. package/src/patch.ts +3 -3
  49. package/src/type-code.ts +16 -0
  50. package/src/type.ts +370 -17
  51. package/src/types.ts +1 -5
  52. package/src/utilities.ts +2 -165
  53. package/dist/cjs/remote-data.js +0 -115
  54. package/dist/cjs/remote-data.js.map +0 -1
  55. package/dist/esm/remote-data.js +0 -112
  56. package/dist/esm/remote-data.js.map +0 -1
  57. package/dist/types/remote-data.d.ts +0 -32
  58. package/dist/types/remote-data.d.ts.map +0 -1
  59. package/dist/web/remote-data.js +0 -112
  60. package/dist/web/remote-data.js.map +0 -1
  61. package/src/remote-data.ts +0 -149
@@ -1,8 +1,8 @@
1
- import type { AbstractConstructor } from "./types.js";
1
+ import type { Constructor } from "./types.js";
2
2
  export type PureMethod<T extends object, A extends any[] = any[], R = any> = (obj: T, ...args: A) => R;
3
3
  export type PatchSpec<T extends object> = Record<string, PureMethod<T, any[], any>> | Map<PropertyKey, PureMethod<T, any[], any>>;
4
- export declare function patch<C extends AbstractConstructor<any>>(targetOrCtor: C, fns: PatchSpec<InstanceType<C>>): Map<PropertyKey, PropertyDescriptor | null>;
4
+ export declare function patch<C extends Constructor<any>>(targetOrCtor: C, fns: PatchSpec<InstanceType<C>>): Map<PropertyKey, PropertyDescriptor | null>;
5
5
  export declare function patch<T extends object>(targetOrCtor: T, fns: PatchSpec<T>): Map<PropertyKey, PropertyDescriptor | null>;
6
- export declare function unpatch<C extends AbstractConstructor<any>>(targetOrCtor: C, changes: Map<PropertyKey, PropertyDescriptor | null>): void;
6
+ export declare function unpatch<C extends Constructor<any>>(targetOrCtor: C, changes: Map<PropertyKey, PropertyDescriptor | null>): void;
7
7
  export declare function unpatch<T extends object>(targetOrCtor: T, changes: Map<PropertyKey, PropertyDescriptor | null>): void;
8
8
  //# sourceMappingURL=patch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IACrE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAChC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,GACzC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAGlD,wBAAgB,KAAK,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,EACpD,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAChC,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAE/C,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAClC,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAqC/C,wBAAgB,OAAO,CAAC,CAAC,SAAS,mBAAmB,CAAC,GAAG,CAAC,EACtD,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC;AACR,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EACpC,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC"}
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/patch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IACrE,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,IAChC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,GACzC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AAGlD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAC5C,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAChC,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAE/C,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EAClC,YAAY,EAAE,CAAC,EACf,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAClB,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;AAqC/C,wBAAgB,OAAO,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,CAAC,EAC9C,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC;AACR,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EACpC,YAAY,EAAE,CAAC,EACf,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC,GACrD,IAAI,CAAC"}
@@ -0,0 +1,15 @@
1
+ declare enum TypeCode {
2
+ String = "string",
3
+ Number = "number",
4
+ Boolean = "boolean",
5
+ Symbol = "symbol",
6
+ BigInt = "bigint",
7
+ Null = "null",
8
+ Undefined = "undefined",
9
+ Object = "object",
10
+ Function = "function",
11
+ Array = "array",
12
+ Unknown = "unknown"
13
+ }
14
+ export default TypeCode;
15
+ //# sourceMappingURL=type-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-code.d.ts","sourceRoot":"","sources":["../../src/type-code.ts"],"names":[],"mappings":"AAAA,aAAK,QAAQ;IACT,MAAM,WAAc;IACpB,MAAM,WAAc;IACpB,OAAO,YAAc;IACrB,MAAM,WAAc;IACpB,MAAM,WAAc;IACpB,IAAI,SAAc;IAClB,SAAS,cAAc;IACvB,MAAM,WAAc;IACpB,QAAQ,aAAc;IACtB,KAAK,UAAc;IACnB,OAAO,YAAc;CACxB;AAGD,eAAe,QAAQ,CAAC"}
@@ -1,13 +1,47 @@
1
- declare enum Type {
2
- Undefined = "undefined",
3
- Number = "number",
4
- String = "string",
5
- Boolean = "boolean",
6
- Object = "object",
7
- Function = "function",
8
- Symbol = "symbol",
9
- BigInt = "bigint",
10
- Null = "null"
1
+ import TypeCode from "./type-code.js";
2
+ import { type Constructor } from "./types.js";
3
+ export default class Type<T = unknown> {
4
+ private static readonly _cache;
5
+ static readonly String: Type<string>;
6
+ static readonly Number: Type<number>;
7
+ static readonly Boolean: Type<boolean>;
8
+ static readonly Symbol: Type<symbol>;
9
+ static readonly BigInt: Type<bigint>;
10
+ static readonly Null: Type<null>;
11
+ static readonly Undefined: Type<undefined>;
12
+ static readonly Object: Type<object>;
13
+ static readonly Function: Type<Function>;
14
+ static readonly Array: Type<unknown[]>;
15
+ readonly name: string;
16
+ readonly constructorRef: Constructor<T> | undefined;
17
+ readonly typeCode: TypeCode;
18
+ private constructor();
19
+ static of<U>(target: U | Constructor<U>): Type<U>;
20
+ private static _resolveFunction;
21
+ private static _resolveObject;
22
+ private static _isConstructorLike;
23
+ get isPrimitive(): boolean;
24
+ get isNullish(): boolean;
25
+ get isReferenceType(): boolean;
26
+ get isArray(): boolean;
27
+ get isFunction(): boolean;
28
+ get isValueType(): boolean;
29
+ get isClass(): boolean;
30
+ get fullName(): string;
31
+ get baseType(): Type | undefined;
32
+ getInheritanceChain(): ReadonlyArray<Type>;
33
+ isAssignableTo(target: Type): boolean;
34
+ isAssignableFrom(source: Type): boolean;
35
+ isSubclassOf(parent: Type): boolean;
36
+ getMethodNames(): ReadonlyArray<string>;
37
+ getPropertyNames(): ReadonlyArray<string>;
38
+ getMemberNames(): ReadonlyArray<string>;
39
+ hasMethod(name: string): boolean;
40
+ hasProperty(name: string): boolean;
41
+ getStaticMemberNames(): ReadonlyArray<string>;
42
+ toString(): string;
43
+ [Symbol.toPrimitive](hint: string): string | number;
44
+ get [Symbol.toStringTag](): string;
45
+ private static _getOrCreate;
11
46
  }
12
- export default Type;
13
47
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAKA,aAAK,IAAI;IACL,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;CAChB;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,YAAY,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO;IAMjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAM1D,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,OAAO,gBAAiF;IAC/G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,MAAM,eAA6E;IAC1G,gBAAuB,IAAI,aAAqE;IAChG,gBAAuB,SAAS,kBAAyF;IACzH,gBAAuB,MAAM,eAAwE;IACrG,gBAAuB,QAAQ,iBAAkF;IACjH,gBAAuB,KAAK,kBAAuE;IAMnG,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,cAAc,EAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/B,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,OAAO;WAoCO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAqCxD,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAoB/B,OAAO,CAAC,MAAM,CAAC,cAAc;IAoB7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAuBjC,IAAW,WAAW,IAAI,OAAO,CAQhC;IAED,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,IAAW,eAAe,IAAI,OAAO,CAEpC;IAED,IAAW,OAAO,IAAI,OAAO,CAG5B;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,WAAW,IAAI,OAAO,CAEhC;IAED,IAAW,OAAO,IAAI,OAAO,CAO5B;IAED,IAAW,QAAQ,IAAI,MAAM,CAK5B;IAMD,IAAW,QAAQ,IAAI,IAAI,GAAG,SAAS,CAUtC;IAEM,mBAAmB,IAAI,aAAa,CAAC,IAAI,CAAC;IAY1C,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAYrC,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAIvC,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO;IAUnC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAYvC,gBAAgB,IAAI,aAAa,CAAC,MAAM,CAAC;IAYzC,cAAc,IAAI,aAAa,CAAC,MAAM,CAAC;IAQvC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKhC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKlC,oBAAoB,IAAI,aAAa,CAAC,MAAM,CAAC;IAc7C,QAAQ,IAAI,MAAM;IAKlB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAU1D,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;IAMD,OAAO,CAAC,MAAM,CAAC,YAAY;CAoB9B"}
@@ -9,6 +9,5 @@ export type UnaryFunction<T, R> = (arg: T) => R;
9
9
  export type BinaryFunction<T1, T2, R> = (arg1: T1, arg2: T2) => R;
10
10
  export type TernaryFunction<T1, T2, T3, R> = (arg1: T1, arg2: T2, arg3: T3) => R;
11
11
  export type QuaternaryFunction<T1, T2, T3, T4, R> = (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => R;
12
- export type Constructor<T = object, A extends any[] = any[]> = new (...args: A) => T;
13
- export type AbstractConstructor<T = object, A extends any[] = any[]> = abstract new (...args: A) => T;
12
+ export type Constructor<T = unknown> = abstract new (...args: any[]) => T;
14
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAExC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAEjF,MAAM,MAAM,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAChD,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,KACP,CAAC,CAAC;AAEP,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IACzD,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;AAExB,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IACjE,QAAQ,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;AAEhE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAElC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAExC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;AAEpD,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAElE,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;AAEjF,MAAM,MAAM,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAChD,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,EAAE,KACP,CAAC,CAAC;AAEP,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import KeyValuePair from "./key-value-pair.js";
2
- import type { Optional, Resolvable, Supplier } from "./types.js";
2
+ import type { Resolvable } from "./types.js";
3
3
  import Type from "./type.js";
4
4
  export declare function isIterable(obj: any): boolean;
5
5
  export declare function isString(value: any): value is string;
@@ -9,7 +9,6 @@ export declare function isObject(value: any): value is object;
9
9
  export declare function isArray(value: any): value is any[];
10
10
  export declare function isFunction(value: any): value is Function;
11
11
  export declare function deepEqual(a: any, b: any): boolean;
12
- export declare function submitForm(url: string, data: Record<string, any>, method?: 'POST' | 'GET', target?: '_blank' | '_self' | '_parent' | '_top'): void;
13
12
  export declare function shallowEqual(a: any, b: any): boolean;
14
13
  export declare function delay(ms: number): Promise<void>;
15
14
  export declare function isUndefined(value: any): value is undefined;
@@ -20,12 +19,8 @@ export declare function isSymbol(value: any): value is symbol;
20
19
  export declare function isNullOrUndefined(value: any): boolean;
21
20
  export declare function isEmpty(value: any): boolean;
22
21
  export declare function isEmptyOrWhitespace(value: any): boolean;
23
- export declare function ajaxSubmit(selectorOrElement: HTMLFormElement | string): Promise<Response>;
24
22
  export declare function toPairs(obj: Record<string, any>): KeyValuePair<string, any>[];
25
23
  export declare function promisify<T>(thing: Resolvable<T>): Promise<T>;
26
- export declare function ajaxSubmission(selectorOrElement: HTMLFormElement | string, onSuccess?: Optional<Supplier<any>>, onFailure?: Optional<Supplier<any>>): void;
27
24
  export declare function deepClone<T>(obj: T): T;
28
25
  export declare function getType(value: any): Type;
29
- export declare function formToObject(form: HTMLFormElement): Record<string, FormDataEntryValue | FormDataEntryValue[]>;
30
- export declare function objectToFormData(data: Record<string, any>): FormData;
31
26
  //# sourceMappingURL=utilities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/utilities.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAW,UAAU,EAAW,MAAM,YAAY,CAAC;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,wBAAgB,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAE5C;AAQD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAQD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AASD,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO,CAEtD;AAOD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AASD,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,EAAE,CAElD;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,QAAQ,CAExD;AAWD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAqCjD;AAsBD,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CA2BpD;AASD,wBAAsB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErD;AAQD,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAE1D;AASD,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAExD;AAQD,wBAAgB,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,CAEhD;AAQD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAQD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAErD;AAQD,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAI3C;AAQD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAIvD;AAWD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAQ7E;AAQD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAkB7D;AAUD,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAoBtC;AASD,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAGxC"}
@@ -0,0 +1,123 @@
1
+ import {} from "../types.js";
2
+ export function submitForm(url, data, method = 'POST', target) {
3
+ const form = document.createElement('form');
4
+ form.method = method.toUpperCase();
5
+ form.action = url;
6
+ form.style.display = 'none';
7
+ if (target) {
8
+ form.target = target;
9
+ }
10
+ const appendInputs = (keyPrefix, value) => {
11
+ if (Array.isArray(value)) {
12
+ value.forEach(val => {
13
+ appendInputs(`${keyPrefix}[]`, val);
14
+ });
15
+ }
16
+ else if (typeof value === 'object' && value !== null) {
17
+ for (const subKey in value) {
18
+ if (value.hasOwnProperty(subKey)) {
19
+ appendInputs(`${keyPrefix}[${subKey}]`, value[subKey]);
20
+ }
21
+ }
22
+ }
23
+ else {
24
+ const input = document.createElement('input');
25
+ input.type = 'hidden';
26
+ input.name = keyPrefix;
27
+ input.value = String(value);
28
+ form.appendChild(input);
29
+ }
30
+ };
31
+ for (const key in data) {
32
+ if (data.hasOwnProperty(key)) {
33
+ appendInputs(key, data[key]);
34
+ }
35
+ }
36
+ document.body.appendChild(form);
37
+ form.submit();
38
+ }
39
+ export function formToObject(form) {
40
+ const fd = new FormData(form);
41
+ const out = {};
42
+ for (const [key, value] of fd.entries()) {
43
+ if (key in out) {
44
+ const current = out[key];
45
+ if (Array.isArray(current)) {
46
+ current.push(value);
47
+ }
48
+ else {
49
+ out[key] = [current, value];
50
+ }
51
+ }
52
+ else {
53
+ out[key] = value;
54
+ }
55
+ }
56
+ return out;
57
+ }
58
+ function _objectToFormData(data, formData, parentKey = '') {
59
+ for (const key in data) {
60
+ if (data.hasOwnProperty(key)) {
61
+ const value = data[key];
62
+ if (value instanceof Date) {
63
+ formData.append(parentKey ? `${parentKey}[${key}]` : key, value.toISOString());
64
+ }
65
+ else if (value instanceof File) {
66
+ formData.append(parentKey ? `${parentKey}[${key}]` : key, value);
67
+ }
68
+ else if (typeof value === 'object' && !Array.isArray(value)) {
69
+ _objectToFormData(value, formData, parentKey ? `${parentKey}[${key}]` : key);
70
+ }
71
+ else if (Array.isArray(value)) {
72
+ value.forEach((item, index) => {
73
+ const arrayKey = `${parentKey ? `${parentKey}[${key}]` : key}[${index}]`;
74
+ if (typeof item === 'object' && !Array.isArray(item)) {
75
+ _objectToFormData(item, formData, arrayKey);
76
+ }
77
+ else {
78
+ formData.append(arrayKey, item);
79
+ }
80
+ });
81
+ }
82
+ else {
83
+ formData.append(parentKey ? `${parentKey}[${key}]` : key, value);
84
+ }
85
+ }
86
+ }
87
+ return formData;
88
+ }
89
+ export function objectToFormData(data) {
90
+ let formData = new FormData();
91
+ return _objectToFormData(data, formData);
92
+ }
93
+ export function ajaxSubmission(selectorOrElement, onSuccess = undefined, onFailure = undefined) {
94
+ const form = typeof selectorOrElement === 'string'
95
+ ? document.querySelector(selectorOrElement)
96
+ : selectorOrElement;
97
+ if (!(form instanceof HTMLFormElement)) {
98
+ return;
99
+ }
100
+ form.addEventListener('submit', async (event) => {
101
+ event.preventDefault();
102
+ let promise = ajaxSubmit(form);
103
+ if (promise) {
104
+ if (onSuccess)
105
+ promise = promise.then(onSuccess);
106
+ if (onFailure)
107
+ promise.catch(onFailure);
108
+ }
109
+ });
110
+ }
111
+ export async function ajaxSubmit(selectorOrElement) {
112
+ const form = typeof selectorOrElement === 'string'
113
+ ? document.querySelector(selectorOrElement)
114
+ : selectorOrElement;
115
+ if (!(form instanceof HTMLFormElement)) {
116
+ throw new Error("Invalid element.");
117
+ }
118
+ return await fetch(form.action, {
119
+ method: form.method,
120
+ body: new FormData(form),
121
+ });
122
+ }
123
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"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"}
package/dist/web/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './types.js';
2
2
  export { default as Type } from './type.js';
3
+ export { default as TypeCode } from './type-code.js';
3
4
  export * from './utilities.js';
4
5
  export * from './string.js';
5
6
  export * from './math.js';
@@ -10,9 +11,9 @@ export { default as TimeSpan } from './timespan.js';
10
11
  export { default as Stopwatch } from './stopwatch.js';
11
12
  export { default as AsyncPoolExecutor } from './async-pool-executor.js';
12
13
  export { default as Lazy } from './lazy.js';
13
- export { default as RemoteData } from './remote-data.js';
14
14
  export { default as from, From } from './from.js';
15
15
  export { default as CleanURLSearchParams } from './clean-url-search-params.js';
16
+ export * from './browser/index.js';
16
17
  export * from './array.js';
17
18
  export * from './collections/index.js';
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAG5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAI/E,cAAc,YAAY,CAAC;AAE3B,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAGnD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAGtE,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAC,OAAO,IAAI,IAAI,EAAE,IAAI,EAAC,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAC,OAAO,IAAI,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AAE7E,cAAc,oBAAoB,CAAC;AAInC,cAAc,YAAY,CAAC;AAE3B,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,16 @@
1
+ var TypeCode;
2
+ (function (TypeCode) {
3
+ TypeCode["String"] = "string";
4
+ TypeCode["Number"] = "number";
5
+ TypeCode["Boolean"] = "boolean";
6
+ TypeCode["Symbol"] = "symbol";
7
+ TypeCode["BigInt"] = "bigint";
8
+ TypeCode["Null"] = "null";
9
+ TypeCode["Undefined"] = "undefined";
10
+ TypeCode["Object"] = "object";
11
+ TypeCode["Function"] = "function";
12
+ TypeCode["Array"] = "array";
13
+ TypeCode["Unknown"] = "unknown";
14
+ })(TypeCode || (TypeCode = {}));
15
+ export default TypeCode;
16
+ //# sourceMappingURL=type-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-code.js","sourceRoot":"","sources":["../../src/type-code.ts"],"names":[],"mappings":"AAAA,IAAK,QAYJ;AAZD,WAAK,QAAQ;IACT,6BAAoB,CAAA;IACpB,6BAAoB,CAAA;IACpB,+BAAqB,CAAA;IACrB,6BAAoB,CAAA;IACpB,6BAAoB,CAAA;IACpB,yBAAkB,CAAA;IAClB,mCAAuB,CAAA;IACvB,6BAAoB,CAAA;IACpB,iCAAsB,CAAA;IACtB,2BAAmB,CAAA;IACnB,+BAAqB,CAAA;AACzB,CAAC,EAZI,QAAQ,KAAR,QAAQ,QAYZ;AAGD,eAAe,QAAQ,CAAC"}
package/dist/web/type.js CHANGED
@@ -1,14 +1,212 @@
1
- var Type;
2
- (function (Type) {
3
- Type["Undefined"] = "undefined";
4
- Type["Number"] = "number";
5
- Type["String"] = "string";
6
- Type["Boolean"] = "boolean";
7
- Type["Object"] = "object";
8
- Type["Function"] = "function";
9
- Type["Symbol"] = "symbol";
10
- Type["BigInt"] = "bigint";
11
- Type["Null"] = "null";
12
- })(Type || (Type = {}));
1
+ import TypeCode from "./type-code.js";
2
+ import {} from "./types.js";
3
+ class Type {
4
+ constructor(name, constructorRef, typeCode) {
5
+ this.name = name;
6
+ this.constructorRef = constructorRef;
7
+ this.typeCode = typeCode;
8
+ }
9
+ static of(target) {
10
+ if (target === null)
11
+ return Type.Null;
12
+ if (target === undefined)
13
+ return Type.Undefined;
14
+ const jsType = typeof target;
15
+ if (jsType !== 'object' && jsType !== 'function') {
16
+ return this._getOrCreate(jsType, undefined, jsType);
17
+ }
18
+ if (jsType === 'function') {
19
+ return this._resolveFunction(target);
20
+ }
21
+ if (Array.isArray(target)) {
22
+ return Type.Array;
23
+ }
24
+ return this._resolveObject(target);
25
+ }
26
+ static _resolveFunction(fn) {
27
+ const isConstructor = this._isConstructorLike(fn);
28
+ if (isConstructor) {
29
+ return this._getOrCreate(fn, fn, TypeCode.Object, fn.name || 'AnonymousClass');
30
+ }
31
+ return Type.Function;
32
+ }
33
+ static _resolveObject(obj) {
34
+ const proto = Object.getPrototypeOf(obj);
35
+ const ctor = proto?.constructor;
36
+ const name = ctor?.name || 'Object';
37
+ if (!ctor || ctor === Object) {
38
+ return Type.Object;
39
+ }
40
+ return this._getOrCreate(ctor, ctor, TypeCode.Object, name);
41
+ }
42
+ static _isConstructorLike(fn) {
43
+ try {
44
+ if (fn.toString().startsWith('class '))
45
+ return true;
46
+ }
47
+ catch {
48
+ }
49
+ if (fn === Object || fn === Function || fn === Array)
50
+ return true;
51
+ const proto = fn.prototype;
52
+ if (!proto || typeof proto !== 'object')
53
+ return false;
54
+ const ownKeys = Object.getOwnPropertyNames(proto);
55
+ return ownKeys.length > 1 || (ownKeys.length === 1 && ownKeys[0] !== 'constructor');
56
+ }
57
+ get isPrimitive() {
58
+ return (this.typeCode === TypeCode.String ||
59
+ this.typeCode === TypeCode.Number ||
60
+ this.typeCode === TypeCode.Boolean ||
61
+ this.typeCode === TypeCode.Symbol ||
62
+ this.typeCode === TypeCode.BigInt);
63
+ }
64
+ get isNullish() {
65
+ return this.typeCode === TypeCode.Null || this.typeCode === TypeCode.Undefined;
66
+ }
67
+ get isReferenceType() {
68
+ return !this.isPrimitive && !this.isNullish;
69
+ }
70
+ get isArray() {
71
+ return this.typeCode === TypeCode.Array ||
72
+ this.constructorRef === Array;
73
+ }
74
+ get isFunction() {
75
+ return this.typeCode === TypeCode.Function;
76
+ }
77
+ get isValueType() {
78
+ return this.isPrimitive;
79
+ }
80
+ get isClass() {
81
+ if (!this.constructorRef)
82
+ return false;
83
+ try {
84
+ return this.constructorRef.toString().startsWith('class ');
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ get fullName() {
91
+ if (this.isPrimitive || this.isNullish) {
92
+ return `System.${this.name.charAt(0).toUpperCase()}${this.name.slice(1)}`;
93
+ }
94
+ return this.name;
95
+ }
96
+ get baseType() {
97
+ if (!this.constructorRef)
98
+ return undefined;
99
+ const parentProto = Object.getPrototypeOf(this.constructorRef.prototype);
100
+ if (!parentProto || parentProto === Object.prototype) {
101
+ return this === Type.Object ? undefined : Type.Object;
102
+ }
103
+ const parentCtor = parentProto.constructor;
104
+ return Type.of(parentCtor);
105
+ }
106
+ getInheritanceChain() {
107
+ const chain = [this];
108
+ let current = this.baseType;
109
+ while (current && !chain.includes(current)) {
110
+ chain.push(current);
111
+ current = current.baseType;
112
+ }
113
+ return Object.freeze(chain);
114
+ }
115
+ isAssignableTo(target) {
116
+ if (this === target)
117
+ return true;
118
+ if (!this.constructorRef || !target.constructorRef)
119
+ return false;
120
+ let proto = this.constructorRef.prototype;
121
+ while (proto) {
122
+ if (proto.constructor === target.constructorRef)
123
+ return true;
124
+ proto = Object.getPrototypeOf(proto);
125
+ }
126
+ return false;
127
+ }
128
+ isAssignableFrom(source) {
129
+ return source.isAssignableTo(this);
130
+ }
131
+ isSubclassOf(parent) {
132
+ if (this === parent)
133
+ return false;
134
+ return this.isAssignableTo(parent);
135
+ }
136
+ getMethodNames() {
137
+ if (!this.constructorRef?.prototype)
138
+ return Object.freeze([]);
139
+ return Object.freeze(Object.getOwnPropertyNames(this.constructorRef.prototype)
140
+ .filter(n => n !== 'constructor' &&
141
+ typeof Object.getOwnPropertyDescriptor(this.constructorRef.prototype, n)?.value === 'function'));
142
+ }
143
+ getPropertyNames() {
144
+ if (!this.constructorRef?.prototype)
145
+ return Object.freeze([]);
146
+ return Object.freeze(Object.getOwnPropertyNames(this.constructorRef.prototype)
147
+ .filter(n => n !== 'constructor' &&
148
+ typeof Object.getOwnPropertyDescriptor(this.constructorRef.prototype, n)?.value !== 'function'));
149
+ }
150
+ getMemberNames() {
151
+ if (!this.constructorRef?.prototype)
152
+ return Object.freeze([]);
153
+ return Object.freeze(Object.getOwnPropertyNames(this.constructorRef.prototype)
154
+ .filter(n => n !== 'constructor'));
155
+ }
156
+ hasMethod(name) {
157
+ if (!this.constructorRef?.prototype)
158
+ return false;
159
+ return typeof this.constructorRef.prototype[name] === 'function';
160
+ }
161
+ hasProperty(name) {
162
+ if (!this.constructorRef?.prototype)
163
+ return false;
164
+ return name in this.constructorRef.prototype && !this.hasMethod(name);
165
+ }
166
+ getStaticMemberNames() {
167
+ if (!this.constructorRef)
168
+ return Object.freeze([]);
169
+ const skip = new Set(['prototype', 'length', 'name', 'caller', 'arguments']);
170
+ return Object.freeze(Object.getOwnPropertyNames(this.constructorRef)
171
+ .filter(n => !skip.has(n)));
172
+ }
173
+ toString() {
174
+ return `Type [${this.name}]`;
175
+ }
176
+ [Symbol.toPrimitive](hint) {
177
+ let hash = 0;
178
+ for (let i = 0; i < this.name.length; i++) {
179
+ hash = ((hash << 5) - hash + this.name.charCodeAt(i)) | 0;
180
+ }
181
+ return hint === 'number' ? hash : this.toString();
182
+ }
183
+ get [Symbol.toStringTag]() {
184
+ return `Type<${this.name}>`;
185
+ }
186
+ static _getOrCreate(key, constructorRef, typeCode, customName) {
187
+ const cached = this._cache.get(key);
188
+ if (cached)
189
+ return cached;
190
+ const name = customName
191
+ ?? (typeof key === 'string' ? key : 'unknown');
192
+ const ref = typeof constructorRef === 'function'
193
+ ? constructorRef
194
+ : undefined;
195
+ const instance = new Type(name, ref, typeCode);
196
+ this._cache.set(key, instance);
197
+ return instance;
198
+ }
199
+ }
200
+ Type._cache = new Map();
201
+ Type.String = Type._getOrCreate('string', undefined, TypeCode.String, 'string');
202
+ Type.Number = Type._getOrCreate('number', undefined, TypeCode.Number, 'number');
203
+ Type.Boolean = Type._getOrCreate('boolean', undefined, TypeCode.Boolean, 'boolean');
204
+ Type.Symbol = Type._getOrCreate('symbol', undefined, TypeCode.Symbol, 'symbol');
205
+ Type.BigInt = Type._getOrCreate('bigint', undefined, TypeCode.BigInt, 'bigint');
206
+ Type.Null = Type._getOrCreate('null', undefined, TypeCode.Null, 'null');
207
+ Type.Undefined = Type._getOrCreate('undefined', undefined, TypeCode.Undefined, 'undefined');
208
+ Type.Object = Type._getOrCreate(Object, Object, TypeCode.Object, 'Object');
209
+ Type.Function = Type._getOrCreate(Function, Function, TypeCode.Function, 'Function');
210
+ Type.Array = Type._getOrCreate(Array, Array, TypeCode.Array, 'Array');
13
211
  export default Type;
14
212
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"AAKA,IAAK,IAUJ;AAVD,WAAK,IAAI;IACL,+BAAuB,CAAA;IACvB,yBAAiB,CAAA;IACjB,yBAAiB,CAAA;IACjB,2BAAmB,CAAA;IACnB,yBAAiB,CAAA;IACjB,6BAAqB,CAAA;IACrB,yBAAiB,CAAA;IACjB,yBAAiB,CAAA;IACjB,qBAAa,CAAA;AACjB,CAAC,EAVI,IAAI,KAAJ,IAAI,QAUR;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/type.ts"],"names":[],"mappings":"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"}