@leyyo/common 1.0.0 → 1.0.2

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 (109) hide show
  1. package/dist/assertion/common-assertion-impl.d.ts +38 -7
  2. package/dist/assertion/common-assertion-impl.js +64 -26
  3. package/dist/assertion/index-types.d.ts +466 -75
  4. package/dist/assertion/index.d.ts +0 -1
  5. package/dist/assertion/index.js +0 -1
  6. package/dist/error/common-error-impl.d.ts +6 -4
  7. package/dist/error/common-error-impl.js +8 -4
  8. package/dist/error/index-types.d.ts +5 -54
  9. package/dist/error/index.d.ts +0 -5
  10. package/dist/error/index.js +0 -5
  11. package/dist/{error → exception}/assertion-exception.d.ts +1 -1
  12. package/dist/{error → exception}/caused-exception.d.ts +1 -1
  13. package/dist/{error → exception}/developer-exception.d.ts +1 -1
  14. package/dist/{error → exception}/exception.d.ts +4 -3
  15. package/dist/{error → exception}/exception.js +4 -4
  16. package/dist/exception/index-types.d.ts +30 -0
  17. package/dist/exception/index.d.ts +6 -0
  18. package/dist/exception/index.js +22 -0
  19. package/dist/fqn/common-fqn-impl.d.ts +11 -0
  20. package/dist/fqn/common-fqn-impl.js +47 -0
  21. package/dist/fqn/index-types.d.ts +6 -0
  22. package/dist/fqn/index-types.js +2 -0
  23. package/dist/fqn/index.d.ts +2 -0
  24. package/dist/{callback → fqn}/index.js +1 -1
  25. package/dist/hook/common-hook-impl.d.ts +30 -0
  26. package/dist/hook/common-hook-impl.js +111 -0
  27. package/dist/hook/index-types.d.ts +56 -0
  28. package/dist/hook/index-types.js +2 -0
  29. package/dist/hook/index.d.ts +2 -0
  30. package/dist/hook/index.js +18 -0
  31. package/dist/index.d.ts +11 -5
  32. package/dist/index.js +19 -6
  33. package/dist/is/common-is-impl.d.ts +36 -15
  34. package/dist/is/common-is-impl.js +35 -10
  35. package/dist/is/index-types.d.ts +142 -20
  36. package/dist/leyyo/index-types.d.ts +4 -2
  37. package/dist/leyyo/leyyo-impl.d.ts +4 -2
  38. package/dist/leyyo/leyyo-impl.js +37 -29
  39. package/dist/literal/country-code.d.ts +8 -0
  40. package/dist/literal/country-code.js +17 -0
  41. package/dist/literal/environment.d.ts +8 -0
  42. package/dist/literal/environment.js +7 -0
  43. package/dist/literal/http-method.d.ts +8 -0
  44. package/dist/literal/http-method.js +7 -0
  45. package/dist/literal/http-place.d.ts +8 -0
  46. package/dist/literal/http-place.js +7 -0
  47. package/dist/literal/index-types.d.ts +6 -0
  48. package/dist/literal/index-types.js +2 -0
  49. package/dist/literal/index.d.ts +14 -0
  50. package/dist/literal/index.js +30 -0
  51. package/dist/literal/key-value.d.ts +4 -0
  52. package/dist/literal/key-value.js +7 -0
  53. package/dist/literal/language-code.d.ts +8 -0
  54. package/dist/literal/language-code.js +12 -0
  55. package/dist/literal/locale-code.d.ts +10 -0
  56. package/dist/literal/locale-code.js +17 -0
  57. package/dist/literal/primitive.d.ts +8 -0
  58. package/dist/literal/primitive.js +7 -0
  59. package/dist/literal/real-value.d.ts +8 -0
  60. package/dist/literal/real-value.js +7 -0
  61. package/dist/literal/severity.d.ts +8 -0
  62. package/dist/literal/severity.js +7 -0
  63. package/dist/literal/storage-type.d.ts +8 -0
  64. package/dist/literal/storage-type.js +7 -0
  65. package/dist/literal/weak-false.d.ts +8 -0
  66. package/dist/literal/weak-false.js +7 -0
  67. package/dist/literal/weak-true.d.ts +8 -0
  68. package/dist/literal/weak-true.js +7 -0
  69. package/dist/log/common-log-impl.d.ts +3 -2
  70. package/dist/log/common-log-impl.js +6 -6
  71. package/dist/log/index-types.d.ts +2 -55
  72. package/dist/log/index-types.js +0 -1
  73. package/dist/log/index.d.ts +1 -1
  74. package/dist/log/index.js +1 -1
  75. package/dist/log/logger-impl.d.ts +4 -3
  76. package/dist/log/logger-impl.js +7 -6
  77. package/dist/{assertion → shared}/assert.js +1 -0
  78. package/dist/{aliases.d.ts → shared/index-aliases.d.ts} +32 -4
  79. package/dist/shared/index-types.d.ts +141 -0
  80. package/dist/shared/index-types.js +3 -0
  81. package/dist/shared/index.d.ts +5 -0
  82. package/dist/shared/index.js +21 -0
  83. package/dist/storage/common-storage-impl.d.ts +3 -2
  84. package/dist/storage/common-storage-impl.js +3 -3
  85. package/dist/storage/index-types.d.ts +3 -18
  86. package/dist/storage/index.d.ts +0 -1
  87. package/dist/storage/index.js +0 -1
  88. package/dist/to/common-to-impl.d.ts +19 -19
  89. package/dist/to/common-to-impl.js +11 -11
  90. package/dist/to/index-types.d.ts +18 -48
  91. package/package.json +1 -1
  92. package/dist/callback/common-callback-impl.d.ts +0 -31
  93. package/dist/callback/common-callback-impl.js +0 -134
  94. package/dist/callback/index-types.d.ts +0 -75
  95. package/dist/callback/index.d.ts +0 -2
  96. package/dist/literals.d.ts +0 -98
  97. package/dist/literals.js +0 -77
  98. package/dist/{error → exception}/assertion-exception.js +0 -0
  99. package/dist/{error → exception}/caused-exception.js +0 -0
  100. package/dist/{error → exception}/developer-exception.js +0 -0
  101. package/dist/{callback → exception}/index-types.js +0 -0
  102. package/dist/{error → exception}/multiple-exception.d.ts +1 -1
  103. package/dist/{error → exception}/multiple-exception.js +0 -0
  104. package/dist/{assertion → shared}/assert.d.ts +1 -1
  105. /package/dist/{aliases.js → shared/index-aliases.js} +0 -0
  106. /package/dist/{constants.d.ts → shared/index-constants.d.ts} +0 -0
  107. /package/dist/{constants.js → shared/index-constants.js} +0 -0
  108. /package/dist/{storage → shared}/list.d.ts +0 -0
  109. /package/dist/{storage → shared}/list.js +0 -0
@@ -1,5 +1,5 @@
1
- import { CommonTo, CommonToSecure, TypeArrayOpt, TypeEnumOpt, TypeObjectOpt, TypeOpt } from "./index-types";
2
- import { Dict, KeyValue, OneOrMore } from "../aliases";
1
+ import { CommonTo, CommonToSecure } from "./index-types";
2
+ import { Dict, KeyValue, OneOrMore, ToTypeArrayOpt, ToTypeEnumOpt, ToTypeObjectOpt, ToTypeOpt } from "../shared";
3
3
  import { Leyyo } from "../leyyo";
4
4
  export declare class CommonToImpl implements CommonTo, CommonToSecure {
5
5
  private readonly _EXPECTED_ANY;
@@ -11,27 +11,27 @@ export declare class CommonToImpl implements CommonTo, CommonToSecure {
11
11
  private readonly _EXPECTED_NUMBER;
12
12
  private readonly _EXPECTED_STRING;
13
13
  private is;
14
- private callback;
14
+ private fqn;
15
15
  private assertion;
16
16
  private _enumInMap;
17
17
  private _enumInArray;
18
18
  private _enumInAlteration;
19
- runFn<T = unknown>(fn: Function, value: Function, opt?: TypeOpt): T;
20
- runSave<T = unknown>(fn: Function, value: unknown, opt?: TypeOpt): T;
21
- raiseInvalidValue<T = unknown>(value: unknown, expected: OneOrMore<string>, opt?: TypeOpt, params?: Dict): T;
22
- any(value: unknown, opt?: TypeOpt): unknown;
23
- array<T = unknown>(value: unknown, opt?: TypeArrayOpt): Array<T>;
24
- boolean(value: unknown, opt?: TypeOpt): boolean;
25
- clazz(value: unknown, opt?: TypeOpt): string;
26
- date(value: unknown, opt?: TypeOpt): Date;
27
- enumeration<T extends KeyValue = KeyValue>(value: unknown, opt?: TypeEnumOpt<T>): T;
28
- float(value: unknown, opt?: TypeOpt): number | null;
29
- func<T = Function>(value: unknown, opt?: TypeOpt): T | null;
30
- integer(value: unknown, opt?: TypeOpt): number | null;
31
- object<T = unknown>(value: unknown, opt?: TypeObjectOpt): Dict<T>;
32
- dict<T = unknown>(value: unknown, opt?: TypeObjectOpt): Dict<T>;
33
- string(value: unknown, opt?: TypeOpt): string;
34
- text(value: unknown, opt?: TypeOpt): string;
19
+ runFn<T = unknown>(fn: Function, value: Function, opt?: ToTypeOpt): T;
20
+ runSave<T = unknown>(fn: Function, value: unknown, opt?: ToTypeOpt): T;
21
+ raiseInvalidValue<T = unknown>(value: unknown, expected: OneOrMore<string>, opt?: ToTypeOpt, params?: Dict): T;
22
+ any(value: unknown, opt?: ToTypeOpt): unknown;
23
+ array<T = unknown>(value: unknown, opt?: ToTypeArrayOpt): Array<T>;
24
+ boolean(value: unknown, opt?: ToTypeOpt): boolean;
25
+ clazz(value: unknown, opt?: ToTypeOpt): string;
26
+ date(value: unknown, opt?: ToTypeOpt): Date;
27
+ enumeration<T extends KeyValue = KeyValue>(value: unknown, opt?: ToTypeEnumOpt<T>): T;
28
+ float(value: unknown, opt?: ToTypeOpt): number | null;
29
+ func<T = Function>(value: unknown, opt?: ToTypeOpt): T | null;
30
+ integer(value: unknown, opt?: ToTypeOpt): number | null;
31
+ object<T = unknown>(value: unknown, opt?: ToTypeObjectOpt): Dict<T>;
32
+ dict<T = unknown>(value: unknown, opt?: ToTypeObjectOpt): Dict<T>;
33
+ string(value: unknown, opt?: ToTypeOpt): string;
34
+ text(value: unknown, opt?: ToTypeOpt): string;
35
35
  $init(leyyo: Leyyo): void;
36
36
  get $back(): CommonTo;
37
37
  get $secure(): CommonToSecure;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommonToImpl = void 0;
4
- const literals_1 = require("../literals");
5
- const error_1 = require("../error");
4
+ const literal_1 = require("../literal");
5
+ const exception_1 = require("../exception");
6
6
  // noinspection JSUnusedGlobalSymbols
7
7
  class CommonToImpl {
8
8
  constructor() {
@@ -137,7 +137,7 @@ class CommonToImpl {
137
137
  return fn(value);
138
138
  }
139
139
  catch (e) {
140
- error_1.Exception.cast(e).raise(!(opt === null || opt === void 0 ? void 0 : opt.silent));
140
+ exception_1.Exception.cast(e).raise(!(opt === null || opt === void 0 ? void 0 : opt.silent));
141
141
  }
142
142
  return null;
143
143
  }
@@ -150,7 +150,7 @@ class CommonToImpl {
150
150
  indicator = 'type.invalid-value';
151
151
  }
152
152
  opt = Object.assign(Object.assign(Object.assign({}, opt), params), { expected, value });
153
- new error_1.DeveloperException(indicator, opt)
153
+ new exception_1.DeveloperException(indicator, opt)
154
154
  .with(this)
155
155
  .raise(!(opt === null || opt === void 0 ? void 0 : opt.silent));
156
156
  return null;
@@ -201,7 +201,7 @@ class CommonToImpl {
201
201
  result.push(valueFn(v, clonedOpt));
202
202
  }
203
203
  catch (e) {
204
- error_1.Exception.cast(e).raise(!opt.silent);
204
+ exception_1.Exception.cast(e).raise(!opt.silent);
205
205
  result.push(null);
206
206
  }
207
207
  });
@@ -226,10 +226,10 @@ class CommonToImpl {
226
226
  if (value === '') {
227
227
  return null;
228
228
  }
229
- if (literals_1.WeakTrueItems.includes(value)) {
229
+ if (literal_1.WeakTrueItems.includes(value)) {
230
230
  return true;
231
231
  }
232
- if (literals_1.WeakFalseItems.includes(value)) {
232
+ if (literal_1.WeakFalseItems.includes(value)) {
233
233
  return false;
234
234
  }
235
235
  return this.raiseInvalidValue(value, this._EXPECTED_BOOL, opt);
@@ -258,7 +258,7 @@ class CommonToImpl {
258
258
  return value;
259
259
  case 'object':
260
260
  case 'function':
261
- return this.callback.fqnName(value);
261
+ return this.fqn.name(value);
262
262
  }
263
263
  return this.raiseInvalidValue(value, this._EXPECTED_CLASS, opt);
264
264
  }
@@ -314,7 +314,7 @@ class CommonToImpl {
314
314
  mapType = 'array';
315
315
  }
316
316
  if (!mapType) {
317
- throw new error_1.DeveloperException('type.invalid-enum-items', { map: opt.map });
317
+ throw new exception_1.DeveloperException('type.invalid-enum-items', { map: opt.map });
318
318
  }
319
319
  let v;
320
320
  switch (typeof value) {
@@ -475,7 +475,7 @@ class CommonToImpl {
475
475
  result[keyOpt.fn(k, keyOpt)] = valueOpt.fn(v, valueOpt);
476
476
  }
477
477
  catch (e) {
478
- error_1.Exception.cast(e).raise(!opt.silent);
478
+ exception_1.Exception.cast(e).raise(!opt.silent);
479
479
  result[k] = null;
480
480
  }
481
481
  }
@@ -540,7 +540,7 @@ class CommonToImpl {
540
540
  // region secure
541
541
  $init(leyyo) {
542
542
  this.is = leyyo.is;
543
- this.callback = leyyo.callback;
543
+ this.fqn = leyyo.fqn;
544
544
  this.assertion = leyyo.assertion;
545
545
  }
546
546
  get $back() {
@@ -1,50 +1,20 @@
1
- import { Dict, KeyValue, OneOrMore, ShiftMain, ShiftSecure } from "../aliases";
2
- import { Leyyo } from "../leyyo";
3
- import { AssertionOpt } from "../assertion";
1
+ import { Dict, InitLike, KeyValue, OneOrMore, ShiftMain, ShiftSecure, ToTypeArrayOpt, ToTypeEnumOpt, ToTypeObjectOpt, ToTypeOpt } from "../shared";
4
2
  export interface CommonTo extends ShiftSecure<CommonToSecure> {
5
- runFn<T = unknown>(fn: Function, value: Function, opt?: TypeOpt): T;
6
- raiseInvalidValue<T = unknown>(value: unknown, expected: OneOrMore<string>, opt?: TypeOpt, params?: Dict): T;
7
- any(value: unknown, opt?: TypeOpt): unknown;
8
- array<T = unknown>(value: unknown, opt?: TypeArrayOpt): Array<T>;
9
- boolean(value: unknown, opt?: TypeOpt): boolean;
10
- clazz(value: unknown, opt?: TypeOpt): string;
11
- date(value: unknown, opt?: TypeOpt): Date;
12
- enumeration<T extends KeyValue = KeyValue>(value: unknown, opt?: TypeEnumOpt<T>): T;
13
- float(value: unknown, opt?: TypeOpt): number | null;
14
- func<T = Function>(value: unknown, opt?: TypeOpt): T | null;
15
- integer(value: unknown, opt?: TypeOpt): number | null;
16
- object<T = unknown>(value: unknown, opt?: TypeObjectOpt): Dict<T>;
17
- dict<T = unknown>(value: unknown, opt?: TypeObjectOpt): Dict<T>;
18
- string(value: unknown, opt?: TypeOpt): string;
19
- text(value: unknown, opt?: TypeOpt): string;
3
+ runFn<T = unknown>(fn: Function, value: Function, opt?: ToTypeOpt): T;
4
+ raiseInvalidValue<T = unknown>(value: unknown, expected: OneOrMore<string>, opt?: ToTypeOpt, params?: Dict): T;
5
+ any(value: unknown, opt?: ToTypeOpt): unknown;
6
+ array<T = unknown>(value: unknown, opt?: ToTypeArrayOpt): Array<T>;
7
+ boolean(value: unknown, opt?: ToTypeOpt): boolean;
8
+ clazz(value: unknown, opt?: ToTypeOpt): string;
9
+ date(value: unknown, opt?: ToTypeOpt): Date;
10
+ enumeration<T extends KeyValue = KeyValue>(value: unknown, opt?: ToTypeEnumOpt<T>): T;
11
+ float(value: unknown, opt?: ToTypeOpt): number | null;
12
+ func<T = Function>(value: unknown, opt?: ToTypeOpt): T | null;
13
+ integer(value: unknown, opt?: ToTypeOpt): number | null;
14
+ object<T = unknown>(value: unknown, opt?: ToTypeObjectOpt): Dict<T>;
15
+ dict<T = unknown>(value: unknown, opt?: ToTypeObjectOpt): Dict<T>;
16
+ string(value: unknown, opt?: ToTypeOpt): string;
17
+ text(value: unknown, opt?: ToTypeOpt): string;
18
+ }
19
+ export interface CommonToSecure extends ShiftMain<CommonTo>, InitLike {
20
20
  }
21
- export interface CommonToSecure extends ShiftMain<CommonTo> {
22
- $init(leyyo: Leyyo): void;
23
- }
24
- export interface TypeOpt extends AssertionOpt {
25
- silent?: true;
26
- children?: unknown;
27
- }
28
- export type TypeFnLambda<T = unknown, O extends TypeOpt = TypeOpt> = (value: unknown, opt?: O) => T;
29
- export interface TypeChildOpt<T = unknown> extends TypeOpt {
30
- fn?: TypeFnLambda<T>;
31
- }
32
- export interface TypeArrayChildOpt<V extends TypeChildOpt = TypeChildOpt> extends Dict<TypeChildOpt> {
33
- value?: V;
34
- }
35
- export interface TypeArrayOpt<V extends TypeChildOpt = TypeChildOpt> extends TypeOpt {
36
- children?: TypeArrayChildOpt<V>;
37
- }
38
- export interface TypeDictChildOpt<K extends TypeChildOpt = TypeChildOpt, V extends TypeChildOpt = TypeChildOpt> extends Record<string, TypeChildOpt> {
39
- key?: K;
40
- value?: V;
41
- }
42
- export interface TypeObjectOpt<K extends TypeChildOpt = TypeChildOpt, V extends TypeChildOpt = TypeChildOpt> extends TypeOpt {
43
- children?: TypeDictChildOpt<K, V>;
44
- }
45
- export interface TypeEnumOpt<E extends KeyValue = KeyValue> extends TypeOpt {
46
- map: EnumerationMap<E>;
47
- alt?: EnumerationAlt<E>;
48
- }
49
- export type EnumerationMap<E extends KeyValue = KeyValue> = Dict<E>;
50
- export type EnumerationAlt<E extends KeyValue = KeyValue> = Dict<E>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leyyo/common",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Common library",
5
5
  "keywords": [
6
6
  "common"
@@ -1,31 +0,0 @@
1
- import { Arr } from "../aliases";
2
- import { CallbackWhenDefinedLambda, CommonCallback, CommonCallbackDefined, CommonCallbackSecure } from "./index-types";
3
- import { Leyyo } from "../leyyo";
4
- export declare class CommonCallbackImpl implements CommonCallback, CommonCallbackSecure {
5
- private _waitingForCallbacks;
6
- private _attachedCallbacks;
7
- private _waitingForProviders;
8
- private _definedProviders;
9
- fqnName(value: any): string;
10
- /**
11
- * Default constructor
12
- *
13
- * Responsibilities
14
- * - Create repositories => ie: callbacks
15
- * - Trigger clear pending operation
16
- * */
17
- constructor();
18
- $init(leyyo: Leyyo): void;
19
- /**
20
- * Clear jobs in the queue which named as pending
21
- *
22
- * Because the expected callback may not be defined
23
- * */
24
- private _clearPending;
25
- get $secure(): CommonCallbackSecure;
26
- attachCallback(name: string, fn: Function): void;
27
- queueForCallback(name: string, ...args: Arr): boolean;
28
- get $back(): CommonCallback;
29
- whenProviderDefined<T extends CommonCallbackDefined = CommonCallbackDefined>(name: string, consumer: Function, callback: CallbackWhenDefinedLambda<T>): void;
30
- defineProvider<T extends CommonCallbackDefined = CommonCallbackDefined>(name: string, producer: Function, instance: T): void;
31
- }
@@ -1,134 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommonCallbackImpl = void 0;
4
- const constants_1 = require("../constants");
5
- const error_1 = require("../error");
6
- const internal_1 = require("../internal");
7
- class CommonCallbackImpl {
8
- fqnName(value) {
9
- switch (typeof value) {
10
- case "function":
11
- return value.name;
12
- case "object":
13
- return value.constructor.name;
14
- case "string":
15
- return value;
16
- default:
17
- return null;
18
- }
19
- }
20
- /**
21
- * Default constructor
22
- *
23
- * Responsibilities
24
- * - Create repositories => ie: callbacks
25
- * - Trigger clear pending operation
26
- * */
27
- constructor() {
28
- // clear after 1 minute
29
- setTimeout(() => this._clearPending(), 60000);
30
- }
31
- $init(leyyo) {
32
- this._waitingForCallbacks = leyyo.storage.newMap(`${internal_1.FQN_PCK}/waitingForCallbacks`);
33
- this._attachedCallbacks = leyyo.storage.newMap(`${internal_1.FQN_PCK}/attachedCallbacks`);
34
- this._waitingForProviders = leyyo.storage.newMap(`${internal_1.FQN_PCK}/waitingForProviders`);
35
- this._definedProviders = leyyo.storage.newMap(`${internal_1.FQN_PCK}/definedProviders`);
36
- // define itself temporarily for fqn name
37
- this.defineProvider(constants_1.LY_ATTACHED_FQN, CommonCallbackImpl, {
38
- proper: false,
39
- name: this.fqnName,
40
- });
41
- // when new fqn provider is defined, replace temporary name method
42
- this.whenProviderDefined(constants_1.LY_ATTACHED_FQN, CommonCallbackImpl, (ins) => {
43
- if (typeof ins.name === 'function') {
44
- this.fqnName = ins.name;
45
- }
46
- });
47
- }
48
- /**
49
- * Clear jobs in the queue which named as pending
50
- *
51
- * Because the expected callback may not be defined
52
- * */
53
- _clearPending() {
54
- for (const [name,] of this._waitingForCallbacks.entries()) {
55
- const rec = this._attachedCallbacks.get(name);
56
- if (rec && !rec.initialization) {
57
- continue;
58
- }
59
- this._waitingForCallbacks.delete(name);
60
- console.log(`callback.cleared.pending => {name: ${name}}`);
61
- }
62
- }
63
- get $secure() {
64
- return this;
65
- }
66
- attachCallback(name, fn) {
67
- if (!name || typeof name !== 'string') {
68
- throw new Error(`callback.invalid.name => {type: ${typeof name}}`);
69
- }
70
- // callback attached
71
- this._attachedCallbacks.set(name, { fn });
72
- // check waiting records, to be called
73
- if (this._waitingForCallbacks.has(name)) {
74
- this._waitingForCallbacks.get(name).forEach(item => {
75
- fn(...item);
76
- });
77
- this._waitingForCallbacks.delete(name);
78
- }
79
- }
80
- queueForCallback(name, ...args) {
81
- if (!name || typeof name !== 'string') {
82
- throw new Error(`callback.invalid.name => {type: ${typeof name}}`);
83
- }
84
- // callback already exists
85
- if (this._attachedCallbacks.has(name)) {
86
- const rec = this._attachedCallbacks.get(name);
87
- rec.fn(...args);
88
- return true;
89
- }
90
- // callback does not exist yet, so wait to be attached
91
- if (this._waitingForCallbacks.has(name)) {
92
- this._waitingForCallbacks.get(name).push(args);
93
- }
94
- else {
95
- this._waitingForCallbacks.set(name, [args]);
96
- }
97
- return false;
98
- }
99
- get $back() {
100
- return undefined;
101
- }
102
- whenProviderDefined(name, consumer, callback) {
103
- if (!name || typeof name !== 'string') {
104
- throw new error_1.DeveloperException(`callback.invalid.name`, { type: typeof name });
105
- }
106
- if (!this._waitingForProviders.has(name)) {
107
- this._waitingForProviders.set(name, []);
108
- }
109
- if (this._definedProviders.has(name)) {
110
- const ins = this._definedProviders.get(name);
111
- if (ins.producer !== consumer) {
112
- callback(ins);
113
- }
114
- }
115
- this._waitingForProviders.get(name).push({ consumer, callback });
116
- }
117
- defineProvider(name, producer, instance) {
118
- if (!name || typeof name !== 'string') {
119
- throw new error_1.DeveloperException(`callback.invalid.name`, { type: typeof name });
120
- }
121
- const ins = Object.assign(Object.assign({}, instance), { producer });
122
- this._definedProviders.set(name, ins);
123
- if (instance.proper) {
124
- if (this._waitingForProviders.has(name)) {
125
- this._waitingForProviders.get(name).forEach(item => {
126
- if (item.consumer !== producer) {
127
- item.callback(instance);
128
- }
129
- });
130
- }
131
- }
132
- }
133
- }
134
- exports.CommonCallbackImpl = CommonCallbackImpl;
@@ -1,75 +0,0 @@
1
- import { Arr, ShiftMain, ShiftSecure } from "../aliases";
2
- import { Leyyo } from "../leyyo";
3
- /**
4
- * Callback repository, it collects all jobs and fire them when callback is defined
5
- * */
6
- export interface CommonCallback extends ShiftSecure<CommonCallbackSecure> {
7
- /**
8
- * Attach a callback
9
- *
10
- * @param {string} name
11
- * @param {Function} fn
12
- *
13
- * Notes:
14
- * - name should be regular string
15
- * - After attached, it should call all waiting calls in the queue
16
- * */
17
- attachCallback(name: string, fn: Function): void;
18
- /**
19
- * Add a call into queue, which to be executed by appropriate callback
20
- *
21
- * @param {string} name
22
- * @param {Array<any>} args
23
- * @returns {boolean} - callback exists?
24
- *
25
- * Notes:
26
- * - name should be regular string
27
- * */
28
- queueForCallback(name: string, ...args: Arr): boolean;
29
- fqnName(value: any): string;
30
- /**
31
- * Informs when callback is changed
32
- *
33
- * @param {string} name
34
- * @param {Function} consumer
35
- * @param {CallbackWhenDefinedLambda} callback
36
- *
37
- * Notes:
38
- * - name should be regular string
39
- * - callback should be regular function
40
- * - name should not be already defined
41
- * */
42
- whenProviderDefined<T extends CommonCallbackDefined = CommonCallbackDefined>(name: string, consumer: Function, callback: CallbackWhenDefinedLambda<T>): void;
43
- /**
44
- * Defines a provider to replace temporary providers
45
- *
46
- * @param {string} name
47
- * @param {Function} producer
48
- * @param {Object} instance
49
- *
50
- * Notes:
51
- * - name should be regular string
52
- * */
53
- defineProvider<T extends CommonCallbackDefined = CommonCallbackDefined>(name: string, producer: Function, instance: T): void;
54
- }
55
- export interface CommonCallbackSecure extends ShiftMain<CommonCallback> {
56
- $init(leyyo: Leyyo): void;
57
- }
58
- export interface CallbackRec {
59
- initialization?: true;
60
- fn: Function;
61
- }
62
- export interface CommonCallbackDefinedInternal extends CommonCallbackDefined {
63
- producer: Function;
64
- }
65
- export interface CommonCallbackDefined {
66
- proper: boolean;
67
- }
68
- export interface CommonCallbackDefinedItem {
69
- consumer: Function;
70
- callback: CallbackWhenDefinedLambda;
71
- }
72
- export interface CommonFqnCb extends CommonCallbackDefined {
73
- name(value: any): string;
74
- }
75
- export type CallbackWhenDefinedLambda<T extends CommonCallbackDefined = CommonCallbackDefined> = (instance: T) => void;
@@ -1,2 +0,0 @@
1
- export * from './index-types';
2
- export * from './common-callback-impl';
@@ -1,98 +0,0 @@
1
- /**
2
- * Weak True items
3
- * */
4
- export declare const PrimitiveItems: readonly ["string", "number", "bigint", "boolean"];
5
- /**
6
- * Weak True
7
- * */
8
- export type Primitive = typeof PrimitiveItems[number];
9
- /**
10
- * Weak True items
11
- * */
12
- export declare const RealValueItems: readonly ["string", "number", "bigint", "boolean", "object", "function"];
13
- /**
14
- * Weak True
15
- * */
16
- export type RealValue = typeof RealValueItems[number];
17
- /**
18
- * Weak True items
19
- * */
20
- export declare const KeyValueItems: readonly ["string", "number"];
21
- /**
22
- * Weak True items
23
- * */
24
- export declare const WeakTrueItems: readonly ["1", "true", "t", "yes", "y", "on"];
25
- /**
26
- * Weak True
27
- * */
28
- export type WeakTrue = typeof WeakTrueItems[number];
29
- /**
30
- * Weak False items
31
- * */
32
- export declare const WeakFalseItems: readonly ["0", "-1", "false", "f", "no", "n", "off"];
33
- /**
34
- * Weak False
35
- * */
36
- export type WeakFalse = typeof WeakFalseItems[number];
37
- /**
38
- * Weak Boolean
39
- * */
40
- export type WeakBoolean = WeakTrue & WeakFalse;
41
- /**
42
- * Http Method items
43
- * */
44
- export declare const HttpMethodItems: readonly ["delete", "get", "head", "link", "options", "patch", "post", "purge", "put", "unlink"];
45
- /**
46
- * Http Method
47
- * */
48
- export type HttpMethod = typeof HttpMethodItems[number];
49
- /**
50
- * Http Place items
51
- * */
52
- export declare const HttpPlaceItems: readonly ["query", "body", "header", "path"];
53
- /**
54
- * Http Place
55
- * */
56
- export type HttpPlace = typeof HttpPlaceItems[number];
57
- /**
58
- * Severity items
59
- * */
60
- export declare const SeverityItems: readonly ["debug", "error", "fatal", "info", "log", "trace", "warn"];
61
- /**
62
- * Severity for log and errors
63
- * */
64
- export type Severity = typeof SeverityItems[number];
65
- /**
66
- * Environment items
67
- * */
68
- export declare const EnvironmentItems: readonly ["automation", "development", "local", "production", "staging", "test"];
69
- /**
70
- * Environment
71
- * */
72
- export type Environment = typeof EnvironmentItems[number];
73
- /**
74
- * Country code items
75
- * */
76
- export declare const CountryCodeItems: readonly ["AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CS", "CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "ST", "SV", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW"];
77
- /**
78
- * Country code
79
- * */
80
- export type CountryCode = typeof CountryCodeItems[number];
81
- /**
82
- * Language code items
83
- * */
84
- export declare const LanguageCodeItems: readonly ["af", "an", "ar", "as", "ast", "az", "be", "bg", "bn", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cv", "cy", "da", "de", "el", "en", "eo", "es", "et", "eu", "fa", "fi", "fj", "fo", "fr", "fur", "fy", "ga", "gd", "gl", "gu", "he", "hi", "hr", "hsb", "ht", "hu", "hy", "id", "is", "it", "iu", "ja", "ji", "ka", "kk", "km", "kn", "ko", "ks", "ky", "la", "lb", "lt", "lv", "mi", "mk", "ml", "mo", "mr", "ms", "mt", "my", "nb", "ne", "ng", "nl", "nn", "no", "nv", "oc", "om", "or", "pa", "pl", "pt", "qu", "rm", "ro", "ru", "sa", "sb", "sc", "sd", "sg", "si", "sk", "sl", "so", "sq", "sr", "sv", "sw", "sx", "sz", "ta", "te", "th", "tig", "tk", "tlh", "tn", "tr", "ts", "tt", "uk", "ur", "ve", "vi", "vo", "wa", "xh", "zh", "zu"];
85
- /**
86
- * Language codes
87
- * */
88
- export type LanguageCode = typeof LanguageCodeItems[number];
89
- /**
90
- * Locale code items
91
- * */
92
- export declare const LocaleCodeItems: readonly ["af", "an", "ar", "ar-ae", "ar-bh", "ar-dz", "ar-eg", "ar-iq", "ar-jo", "ar-kw", "ar-lb", "ar-ly", "ar-ma", "ar-om", "ar-qa", "ar-sa", "ar-sy", "ar-tn", "ar-ye", "as", "ast", "az", "be", "bg", "bn", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cv", "cy", "da", "de", "de-at", "de-ch", "de-de", "de-li", "de-lu", "el", "en", "en-au", "en-bz", "en-ca", "en-gb", "en-ie", "en-jm", "en-nz", "en-ph", "en-tt", "en-us", "en-za", "en-zw", "eo", "es", "es-ar", "es-bo", "es-cl", "es-co", "es-cr", "es-do", "es-ec", "es-es", "es-gt", "es-hn", "es-mx", "es-ni", "es-pa", "es-pe", "es-pr", "es-py", "es-sv", "es-uy", "es-ve", "et", "eu", "fa", "fa-ir", "fi", "fj", "fo", "fr", "fr-be", "fr-ca", "fr-ch", "fr-fr", "fr-lu", "fr-mc", "fur", "fy", "ga", "gd", "gd-ie", "gl", "gu", "he", "hi", "hr", "hsb", "ht", "hu", "hy", "id", "is", "it", "it-ch", "iu", "ja", "ji", "ka", "kk", "km", "kn", "ko", "ko-kp", "ko-kr", "ks", "ky", "la", "lb", "lt", "lv", "mi", "mk", "ml", "mo", "mr", "ms", "mt", "my", "nb", "ne", "ng", "nl", "nl-be", "nn", "no", "nv", "oc", "om", "or", "pa", "pa-in", "pa-pk", "pl", "pt", "pt-br", "qu", "rm", "ro", "ro-mo", "ru", "ru-mo", "sa", "sb", "sc", "sd", "sg", "si", "sk", "sl", "so", "sq", "sr", "sv", "sv-fi", "sv-sv", "sw", "sx", "sz", "ta", "te", "th", "tig", "tk", "tlh", "tn", "tr", "ts", "tt", "uk", "ur", "ve", "vi", "vo", "wa", "xh", "zh", "zh-cn", "zh-hk", "zh-sg", "zh-tw", "zu"];
93
- /**
94
- * Locale codes
95
- *
96
- * Pattern: [Language Code]-[Country Code]
97
- * */
98
- export type LocaleCode = typeof LocaleCodeItems[number];