@leyyo/common 1.3.3 → 1.3.5
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/README.md +57 -391
- package/dist/class/list.d.ts +1 -1
- package/dist/class/logger.instance.d.ts +1 -1
- package/dist/class/logger.instance.js +7 -8
- package/dist/class/logger.instance.js.map +1 -1
- package/dist/common/array.fn.js +20 -12
- package/dist/common/array.fn.js.map +1 -1
- package/dist/common/deploy.fn.d.ts +1 -1
- package/dist/common/deploy.fn.js +6 -5
- package/dist/common/deploy.fn.js.map +1 -1
- package/dist/common/enum.fn.d.ts +10 -25
- package/dist/common/enum.fn.js +50 -108
- package/dist/common/enum.fn.js.map +1 -1
- package/dist/common/error.fn.d.ts +27 -18
- package/dist/common/error.fn.js +97 -96
- package/dist/common/error.fn.js.map +1 -1
- package/dist/common/event.fn.d.ts +1 -1
- package/dist/common/event.fn.js +7 -6
- package/dist/common/event.fn.js.map +1 -1
- package/dist/common/exporter.fn.d.ts +1 -1
- package/dist/common/fqn.fn.d.ts +6 -2
- package/dist/common/fqn.fn.js +104 -11
- package/dist/common/fqn.fn.js.map +1 -1
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.js +2 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/inert.fn.d.ts +69 -0
- package/dist/common/inert.fn.js +368 -0
- package/dist/common/inert.fn.js.map +1 -0
- package/dist/common/lifecycle.fn.d.ts +3 -3
- package/dist/common/lifecycle.fn.js +24 -23
- package/dist/common/lifecycle.fn.js.map +1 -1
- package/dist/common/list.fn.js +22 -12
- package/dist/common/list.fn.js.map +1 -1
- package/dist/common/loader.fn.d.ts +1 -1
- package/dist/common/loader.fn.js.map +1 -1
- package/dist/common/log.fn.d.ts +3 -3
- package/dist/common/log.fn.js +9 -9
- package/dist/common/log.fn.js.map +1 -1
- package/dist/common/map.fn.js +20 -12
- package/dist/common/map.fn.js.map +1 -1
- package/dist/common/name.fn.d.ts +5 -0
- package/dist/common/name.fn.js +69 -0
- package/dist/common/name.fn.js.map +1 -0
- package/dist/common/opt.fn.d.ts +1 -1
- package/dist/common/opt.fn.js +1 -1
- package/dist/common/opt.fn.js.map +1 -1
- package/dist/common/set.fn.js +20 -12
- package/dist/common/set.fn.js.map +1 -1
- package/dist/common/test.fn.js.map +1 -1
- package/dist/const/index.d.ts +4 -0
- package/dist/const/index.js +13 -9
- package/dist/const/index.js.map +1 -1
- package/dist/enum/log-level.js +0 -2
- package/dist/enum/log-level.js.map +1 -1
- package/dist/error/caused.error.d.ts +1 -1
- package/dist/error/developer.error.d.ts +1 -1
- package/dist/error/developer.error.js.map +1 -1
- package/dist/error/http.error.d.ts +1 -1
- package/dist/error/http.error.js.map +1 -1
- package/dist/error/leyyo.error.d.ts +6 -28
- package/dist/error/leyyo.error.js +11 -76
- package/dist/error/leyyo.error.js.map +1 -1
- package/dist/error/multiple.error.d.ts +1 -1
- package/dist/error/multiple.error.js.map +1 -1
- package/dist/function/delay.js.map +1 -1
- package/dist/function/empty.fn.d.ts +1 -1
- package/dist/function/empty.fn.js +2 -1
- package/dist/function/empty.fn.js.map +1 -1
- package/dist/function/error-obj.d.ts +1 -1
- package/dist/function/error-text.d.ts +4 -1
- package/dist/function/error-text.js +28 -3
- package/dist/function/error-text.js.map +1 -1
- package/dist/function/extended-type.d.ts +1 -1
- package/dist/function/extended-type.js +1 -1
- package/dist/function/extended-type.js.map +1 -1
- package/dist/function/is.d.ts +2 -1
- package/dist/function/is.js +7 -3
- package/dist/function/is.js.map +1 -1
- package/dist/function/one-or-more.d.ts +1 -1
- package/dist/function/secure-clone.d.ts +1 -1
- package/dist/function/secure-json.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.foretell.d.ts +1 -0
- package/dist/index.foretell.js +92 -0
- package/dist/index.foretell.js.map +1 -0
- package/dist/index.js +6 -12
- package/dist/index.js.map +1 -1
- package/dist/index.loader.d.ts +1 -0
- package/dist/{loader.js → index.loader.js} +2 -53
- package/dist/index.loader.js.map +1 -0
- package/dist/init/index.d.ts +1 -0
- package/dist/init/index.js +23 -0
- package/dist/init/index.js.map +1 -0
- package/dist/{index.types.d.ts → type/index.d.ts} +80 -39
- package/dist/{index.types.js → type/index.js} +1 -1
- package/dist/type/index.js.map +1 -0
- package/package.json +1 -1
- package/dist/index.types.js.map +0 -1
- package/dist/loader.d.ts +0 -2
- package/dist/loader.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { InertBuildOpt, InertItem, InertOpt } from "../type";
|
|
2
|
+
export declare function buildInert<L extends InertItem<T>, T>(options: InertBuildOpt<L, T>): void;
|
|
3
|
+
/**
|
|
4
|
+
* Define an inert as eager
|
|
5
|
+
*
|
|
6
|
+
* @param {string} cluster - cluster name
|
|
7
|
+
* @param {any} target - target of cluster
|
|
8
|
+
* @param {InertOpt} options - options
|
|
9
|
+
* */
|
|
10
|
+
export declare function registerInert<L extends InertItem<T>, T>(cluster: string, options: InertOpt<T>): void;
|
|
11
|
+
/**
|
|
12
|
+
* Define an inert as lazy (with path)
|
|
13
|
+
*
|
|
14
|
+
* @param {string} cluster - cluster name
|
|
15
|
+
* @param {InertOpt} opt - inert lazy options
|
|
16
|
+
* */
|
|
17
|
+
export declare function defineInertLazy<L extends InertItem<T>, T = unknown>(cluster: string, opt: InertOpt<T>): void;
|
|
18
|
+
/**
|
|
19
|
+
* Check inert defined as lazy, by name
|
|
20
|
+
* Note:
|
|
21
|
+
* - Inert's mode will be shifted lazy to eager after loaded
|
|
22
|
+
*
|
|
23
|
+
* @param {string} cluster - cluster name
|
|
24
|
+
* @param {string} name - target name
|
|
25
|
+
* @return {boolean}
|
|
26
|
+
* */
|
|
27
|
+
export declare function isInertLazy(cluster: string, name: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check inert failed or conflicted, by name
|
|
30
|
+
*
|
|
31
|
+
* @param {string} cluster - cluster name
|
|
32
|
+
* @param {string} name - target name
|
|
33
|
+
* @return {boolean}
|
|
34
|
+
* */
|
|
35
|
+
export declare function isInertInvalid(cluster: string, name: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Check inert defined as eager, by name
|
|
38
|
+
*
|
|
39
|
+
* @param {string} cluster - cluster name
|
|
40
|
+
* @param {string} name - target name
|
|
41
|
+
* @return {boolean}
|
|
42
|
+
* */
|
|
43
|
+
export declare function isInertEager(cluster: string, name: string): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Check inert defined or not, by name
|
|
46
|
+
*
|
|
47
|
+
* @param {string} cluster - cluster name
|
|
48
|
+
* @param {string} name - target name
|
|
49
|
+
* @return {boolean}
|
|
50
|
+
* */
|
|
51
|
+
export declare function hasInert(cluster: string, name: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Get inert by name
|
|
54
|
+
*
|
|
55
|
+
* @param {string} cluster - cluster name
|
|
56
|
+
* @param {string} name - target name
|
|
57
|
+
* @return {InertItem}
|
|
58
|
+
* */
|
|
59
|
+
export declare function getInert<L extends InertItem<T>, T>(cluster: string, name: string): L;
|
|
60
|
+
/**
|
|
61
|
+
* Load lazy inert by name
|
|
62
|
+
* Note:
|
|
63
|
+
* - Target must be exported as `foretell`
|
|
64
|
+
*
|
|
65
|
+
* @param {string} cluster - cluster name
|
|
66
|
+
* @param {string} name - target name
|
|
67
|
+
* @return {Promise<InertItem>}
|
|
68
|
+
* */
|
|
69
|
+
export declare function loadInert<L extends InertItem<T>, T>(cluster: string, name: string): Promise<L>;
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// noinspection JSUnusedGlobalSymbols
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.buildInert = buildInert;
|
|
14
|
+
exports.registerInert = registerInert;
|
|
15
|
+
exports.defineInertLazy = defineInertLazy;
|
|
16
|
+
exports.isInertLazy = isInertLazy;
|
|
17
|
+
exports.isInertInvalid = isInertInvalid;
|
|
18
|
+
exports.isInertEager = isInertEager;
|
|
19
|
+
exports.hasInert = hasInert;
|
|
20
|
+
exports.getInert = getInert;
|
|
21
|
+
exports.loadInert = loadInert;
|
|
22
|
+
const function_1 = require("../function");
|
|
23
|
+
const internal_1 = require("../internal");
|
|
24
|
+
const error_1 = require("../error");
|
|
25
|
+
const set_fn_1 = require("./set.fn");
|
|
26
|
+
const map_fn_1 = require("./map.fn");
|
|
27
|
+
const test_fn_1 = require("./test.fn");
|
|
28
|
+
const fqn_fn_1 = require("./fqn.fn");
|
|
29
|
+
const name_fn_1 = require("./name.fn");
|
|
30
|
+
// region properties
|
|
31
|
+
const where = `${internal_1.FQN}.LazyFn`;
|
|
32
|
+
const _repo = (0, map_fn_1.newRepoMap)(`${where}.repo`);
|
|
33
|
+
// endregion properties
|
|
34
|
+
// region private
|
|
35
|
+
function _getRepo(cluster) {
|
|
36
|
+
return _repo.get(cluster);
|
|
37
|
+
}
|
|
38
|
+
function _inFqnStage(cluster, item) {
|
|
39
|
+
item.full = (0, fqn_fn_1.getFqn)(item.target);
|
|
40
|
+
if (!item.full.includes('.')) {
|
|
41
|
+
if ((0, function_1.isText)(item.fqn)) {
|
|
42
|
+
item.full = (0, fqn_fn_1.setFqn)(item.target, item.fqn);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const { pendingFqn } = _getRepo(cluster);
|
|
46
|
+
pendingFqn.set(item.name, item);
|
|
47
|
+
item.stage = 'fqn-waiting';
|
|
48
|
+
(0, fqn_fn_1.onFqnSet)(item.target, f => _afterFqnSet(cluster, f));
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
function _afterFqnSet(cluster, full) {
|
|
55
|
+
if (!(0, function_1.isText)(full)) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const { pendingFqn, stampLambda } = _getRepo(cluster);
|
|
59
|
+
const item = pendingFqn.get(full.split('.').pop());
|
|
60
|
+
if (item) {
|
|
61
|
+
pendingFqn.delete(item.name);
|
|
62
|
+
item.full = full;
|
|
63
|
+
item.stage = 'persistent';
|
|
64
|
+
_relateIt(cluster, item);
|
|
65
|
+
if (stampLambda) {
|
|
66
|
+
stampLambda(item);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
new error_1.DeveloperError(`Inert could not be found after come back, [${full}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where).log();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function _relateIt(cluster, item) {
|
|
74
|
+
let ignore;
|
|
75
|
+
const { fullNames, basicNames, aliases } = _getRepo(cluster);
|
|
76
|
+
if (item.full) {
|
|
77
|
+
ignore = false;
|
|
78
|
+
if (fullNames.has(item.full)) {
|
|
79
|
+
const anotherItem = fullNames.get(item.full);
|
|
80
|
+
if (anotherItem.target !== item.target) {
|
|
81
|
+
ignore = true;
|
|
82
|
+
new error_1.DeveloperError(`Duplicated full name [${item.full}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where).log();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!ignore) {
|
|
86
|
+
fullNames.set(item.full, item);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
ignore = false;
|
|
90
|
+
if (basicNames.has(item.name)) {
|
|
91
|
+
const anotherItem = basicNames.get(item.name);
|
|
92
|
+
if (anotherItem.target !== item.target) {
|
|
93
|
+
ignore = true;
|
|
94
|
+
new error_1.DeveloperError(`Duplicated basic name [${item.name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where).log();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!ignore) {
|
|
98
|
+
basicNames.set(item.name, item);
|
|
99
|
+
}
|
|
100
|
+
if ((0, function_1.isFilledArr)(item.aliases)) {
|
|
101
|
+
item.aliases.forEach(alias => {
|
|
102
|
+
var _a;
|
|
103
|
+
ignore = false;
|
|
104
|
+
if (aliases.has(alias)) {
|
|
105
|
+
const anotherName = aliases.get(alias);
|
|
106
|
+
if (![item.name, item.full].includes(anotherName)) {
|
|
107
|
+
ignore = true;
|
|
108
|
+
new error_1.DeveloperError(`Duplicated alias [${item.name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where).log();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (!ignore) {
|
|
112
|
+
aliases.set(alias, (_a = item.full) !== null && _a !== void 0 ? _a : item.name);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// endregion private
|
|
118
|
+
// noinspection JSUnusedGlobalSymbols
|
|
119
|
+
function buildInert(options) {
|
|
120
|
+
if (!(0, function_1.isObj)(options)) {
|
|
121
|
+
throw new error_1.DeveloperError('Invalid build options', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
122
|
+
}
|
|
123
|
+
if (!(0, function_1.isText)(options.cluster)) {
|
|
124
|
+
throw new error_1.DeveloperError('Invalid cluster name', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
125
|
+
}
|
|
126
|
+
if (typeof options.validateLambda !== 'function') {
|
|
127
|
+
throw new error_1.DeveloperError('Invalid validate lambda', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
128
|
+
}
|
|
129
|
+
if (typeof options.getNameLambda !== 'function') {
|
|
130
|
+
throw new error_1.DeveloperError('Invalid get name lambda', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
131
|
+
}
|
|
132
|
+
if (options.setNameLambda && typeof options.setNameLambda !== 'function') {
|
|
133
|
+
throw new error_1.DeveloperError('Invalid set name lambda', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
134
|
+
}
|
|
135
|
+
if (options.stampLambda && typeof options.stampLambda !== 'function') {
|
|
136
|
+
throw new error_1.DeveloperError('Invalid stamp lambda', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
137
|
+
}
|
|
138
|
+
if (options.nextLoadLambda && typeof options.nextLoadLambda !== 'function') {
|
|
139
|
+
throw new error_1.DeveloperError('Invalid next load lambda', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
140
|
+
}
|
|
141
|
+
if (options.anonymousName && !(0, function_1.isText)(options.anonymousName)) {
|
|
142
|
+
throw new error_1.DeveloperError('Invalid anonymous name', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
143
|
+
}
|
|
144
|
+
if (_repo.has(options.cluster)) {
|
|
145
|
+
throw new error_1.DeveloperError(`Duplicated cluster [${options.cluster}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
146
|
+
}
|
|
147
|
+
const repoItem = Object.assign(Object.assign({}, options), { uniqueLoaded: (0, set_fn_1.newRepoSet)(`${where}.${options.cluster}.uniqueLoaded`), fullNames: (0, map_fn_1.newRepoMap)(`${where}.${options.cluster}.fullNames`), basicNames: (0, map_fn_1.newRepoMap)(`${where}.${options.cluster}.basicNames`), aliases: (0, map_fn_1.newRepoMap)(`${where}.${options.cluster}.aliases`), pendingFqn: (0, map_fn_1.newRepoMap)(`${where}.${options.cluster}.pendingFqn`), pendingLazy: (0, map_fn_1.newRepoMap)(`${where}.${options.cluster}.pendingLazy`) });
|
|
148
|
+
_repo.set(options.cluster, repoItem);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Define an inert as eager
|
|
152
|
+
*
|
|
153
|
+
* @param {string} cluster - cluster name
|
|
154
|
+
* @param {any} target - target of cluster
|
|
155
|
+
* @param {InertOpt} options - options
|
|
156
|
+
* */
|
|
157
|
+
function registerInert(cluster, options) {
|
|
158
|
+
const { uniqueLoaded, validateLambda, getNameLambda, setNameLambda, anonymousName, stampLambda } = _getRepo(cluster);
|
|
159
|
+
if (!(0, function_1.isFilledObj)(options)) {
|
|
160
|
+
throw new error_1.DeveloperError('Invalid inert options', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
161
|
+
}
|
|
162
|
+
// target
|
|
163
|
+
if (validateLambda(options.target)) {
|
|
164
|
+
if (options.lazyTarget) {
|
|
165
|
+
delete options.lazyTarget;
|
|
166
|
+
}
|
|
167
|
+
// already defined
|
|
168
|
+
if (uniqueLoaded.has(options.target)) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
let basicName = getNameLambda(options.target);
|
|
172
|
+
if (!basicName) {
|
|
173
|
+
if ((0, function_1.isText)(options.name)) {
|
|
174
|
+
basicName = options.name;
|
|
175
|
+
if (setNameLambda) {
|
|
176
|
+
setNameLambda(options.target, options.name);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else if (anonymousName) {
|
|
180
|
+
basicName = (0, name_fn_1.setAnonymousName)(options.target, anonymousName);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (!basicName) {
|
|
184
|
+
throw new error_1.DeveloperError('Empty name', (0, test_fn_1.testCase)(internal_1.FQN, 220), where);
|
|
185
|
+
}
|
|
186
|
+
const item = Object.assign(Object.assign({}, options), { name: basicName, stage: undefined, mode: 'eager' });
|
|
187
|
+
if (_inFqnStage(cluster, item)) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
item.stage = 'persistent';
|
|
191
|
+
_relateIt(cluster, item);
|
|
192
|
+
if (stampLambda) {
|
|
193
|
+
stampLambda(item);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// lazy target
|
|
197
|
+
else if (options.lazyTarget instanceof Promise) {
|
|
198
|
+
if (!(0, function_1.isText)(options.name)) {
|
|
199
|
+
throw new error_1.DeveloperError('Invalid inert name', (0, test_fn_1.testCase)(internal_1.FQN, 'XXX'), where);
|
|
200
|
+
}
|
|
201
|
+
// it's already pending to be loaded
|
|
202
|
+
const { pendingLazy } = _getRepo(cluster);
|
|
203
|
+
if (pendingLazy.has(options.name)) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const item = Object.assign(Object.assign({}, options), { stage: 'loading-waiting', mode: 'lazy' });
|
|
207
|
+
pendingLazy.set(options.name, item);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
throw new error_1.DeveloperError(`Invalid target or lazy target [${options.name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 224), where);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Define an inert as lazy (with path)
|
|
215
|
+
*
|
|
216
|
+
* @param {string} cluster - cluster name
|
|
217
|
+
* @param {InertOpt} opt - inert lazy options
|
|
218
|
+
* */
|
|
219
|
+
function defineInertLazy(cluster, opt) {
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Check inert defined as lazy, by name
|
|
223
|
+
* Note:
|
|
224
|
+
* - Inert's mode will be shifted lazy to eager after loaded
|
|
225
|
+
*
|
|
226
|
+
* @param {string} cluster - cluster name
|
|
227
|
+
* @param {string} name - target name
|
|
228
|
+
* @return {boolean}
|
|
229
|
+
* */
|
|
230
|
+
function isInertLazy(cluster, name) {
|
|
231
|
+
var _a;
|
|
232
|
+
return ((_a = getInert(cluster, name)) === null || _a === void 0 ? void 0 : _a.mode) === 'lazy';
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check inert failed or conflicted, by name
|
|
236
|
+
*
|
|
237
|
+
* @param {string} cluster - cluster name
|
|
238
|
+
* @param {string} name - target name
|
|
239
|
+
* @return {boolean}
|
|
240
|
+
* */
|
|
241
|
+
function isInertInvalid(cluster, name) {
|
|
242
|
+
var _a;
|
|
243
|
+
return ['failed', 'conflicted'].includes((_a = getInert(cluster, name)) === null || _a === void 0 ? void 0 : _a.mode);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Check inert defined as eager, by name
|
|
247
|
+
*
|
|
248
|
+
* @param {string} cluster - cluster name
|
|
249
|
+
* @param {string} name - target name
|
|
250
|
+
* @return {boolean}
|
|
251
|
+
* */
|
|
252
|
+
function isInertEager(cluster, name) {
|
|
253
|
+
var _a;
|
|
254
|
+
return ((_a = getInert(cluster, name)) === null || _a === void 0 ? void 0 : _a.mode) === 'eager';
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Check inert defined or not, by name
|
|
258
|
+
*
|
|
259
|
+
* @param {string} cluster - cluster name
|
|
260
|
+
* @param {string} name - target name
|
|
261
|
+
* @return {boolean}
|
|
262
|
+
* */
|
|
263
|
+
function hasInert(cluster, name) {
|
|
264
|
+
return !!getInert(cluster, name);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get inert by name
|
|
268
|
+
*
|
|
269
|
+
* @param {string} cluster - cluster name
|
|
270
|
+
* @param {string} name - target name
|
|
271
|
+
* @return {InertItem}
|
|
272
|
+
* */
|
|
273
|
+
function getInert(cluster, name) {
|
|
274
|
+
if (!(0, function_1.isText)(name)) {
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
const { fullNames, basicNames, pendingFqn, pendingLazy, aliases } = _getRepo(cluster);
|
|
278
|
+
if (name.includes('.')) {
|
|
279
|
+
if (fullNames.has(name)) {
|
|
280
|
+
return fullNames.get(name);
|
|
281
|
+
}
|
|
282
|
+
return getInert(cluster, name.split('.').pop());
|
|
283
|
+
}
|
|
284
|
+
// no dot
|
|
285
|
+
if (pendingFqn.has(name)) {
|
|
286
|
+
return pendingFqn.get(name);
|
|
287
|
+
}
|
|
288
|
+
if (pendingLazy.has(name)) {
|
|
289
|
+
return pendingLazy.get(name);
|
|
290
|
+
}
|
|
291
|
+
if (aliases.has(name)) {
|
|
292
|
+
return getInert(cluster, aliases.get(name));
|
|
293
|
+
}
|
|
294
|
+
return basicNames.get(name);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Load lazy inert by name
|
|
298
|
+
* Note:
|
|
299
|
+
* - Target must be exported as `foretell`
|
|
300
|
+
*
|
|
301
|
+
* @param {string} cluster - cluster name
|
|
302
|
+
* @param {string} name - target name
|
|
303
|
+
* @return {Promise<InertItem>}
|
|
304
|
+
* */
|
|
305
|
+
function loadInert(cluster, name) {
|
|
306
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
307
|
+
if (!(0, function_1.isText)(name)) {
|
|
308
|
+
throw new error_1.DeveloperError(`Invalid lazy name`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where);
|
|
309
|
+
}
|
|
310
|
+
const { validateLambda, pendingLazy, stampLambda, uniqueLoaded, getNameLambda, setNameLambda, nextLoadLambda } = _getRepo(cluster);
|
|
311
|
+
const item = getInert(cluster, name);
|
|
312
|
+
if (!item) {
|
|
313
|
+
throw new error_1.DeveloperError(`Lazy was not defined [${name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where);
|
|
314
|
+
}
|
|
315
|
+
// It was already loaded
|
|
316
|
+
if (item.mode === 'eager') {
|
|
317
|
+
return item;
|
|
318
|
+
}
|
|
319
|
+
try {
|
|
320
|
+
item.target = yield item.lazyTarget;
|
|
321
|
+
if (validateLambda(item.target)) {
|
|
322
|
+
item.mode = 'eager';
|
|
323
|
+
delete item.lazyTarget;
|
|
324
|
+
// remove from pending
|
|
325
|
+
if (pendingLazy.has(name)) {
|
|
326
|
+
pendingLazy.delete(name);
|
|
327
|
+
}
|
|
328
|
+
if (nextLoadLambda) {
|
|
329
|
+
yield nextLoadLambda(item);
|
|
330
|
+
}
|
|
331
|
+
// already loaded
|
|
332
|
+
if (uniqueLoaded.has(item.target)) {
|
|
333
|
+
return item;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
item.mode = 'conflicted';
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
catch (e) {
|
|
341
|
+
item.mode = 'failed';
|
|
342
|
+
new error_1.DeveloperError(`Callback inert during loading lazy class [${name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 227), where).log(e);
|
|
343
|
+
}
|
|
344
|
+
// file could not be loaded
|
|
345
|
+
if (!item.target) {
|
|
346
|
+
return undefined;
|
|
347
|
+
}
|
|
348
|
+
const realName = getNameLambda(item.target);
|
|
349
|
+
if (item.name !== realName) {
|
|
350
|
+
if (!realName && setNameLambda) {
|
|
351
|
+
setNameLambda(item.target, item.name);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
new error_1.DeveloperError(`Conflict in names [${item.name} vs ${realName}]`, (0, test_fn_1.testCase)(internal_1.FQN, 'ZZZ'), where).log();
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (_inFqnStage(cluster, item)) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
item.stage = 'persistent';
|
|
361
|
+
_relateIt(cluster, item);
|
|
362
|
+
if (stampLambda) {
|
|
363
|
+
stampLambda(item);
|
|
364
|
+
}
|
|
365
|
+
return item;
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=inert.fn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inert.fn.js","sourceRoot":"","sources":["../../src/common/inert.fn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fnc, LifecycleSortLambda, LifecycleStage } from "../
|
|
1
|
+
import { Fnc, LifecycleSortLambda, LifecycleStage } from "../type";
|
|
2
2
|
/**
|
|
3
3
|
* Add lifecycle by stage
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@ import { Fnc, LifecycleSortLambda, LifecycleStage } from "../index.types";
|
|
|
6
6
|
* @param {string} name - your callback name
|
|
7
7
|
* @param {function} callback - it will be called on {@link runLifecycleStage}
|
|
8
8
|
* */
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function addLifecycleStage(stage: LifecycleStage, name: string, callback: Fnc): void;
|
|
10
10
|
/**
|
|
11
11
|
* Run lifecycle by stage
|
|
12
12
|
*
|
|
@@ -21,4 +21,4 @@ export declare function runLifecycleStage(stage: LifecycleStage, ...params: Arra
|
|
|
21
21
|
* @param {LifecycleStage} stage
|
|
22
22
|
* @param {LifecycleSortLambda} lambda - function that sorts map items
|
|
23
23
|
* */
|
|
24
|
-
export declare function
|
|
24
|
+
export declare function setLifecycleOrderLambda(stage: LifecycleStage, lambda: LifecycleSortLambda): void;
|
|
@@ -10,16 +10,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
});
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.
|
|
13
|
+
exports.addLifecycleStage = addLifecycleStage;
|
|
14
14
|
exports.runLifecycleStage = runLifecycleStage;
|
|
15
|
-
exports.
|
|
15
|
+
exports.setLifecycleOrderLambda = setLifecycleOrderLambda;
|
|
16
16
|
const internal_1 = require("../internal");
|
|
17
17
|
const function_1 = require("../function");
|
|
18
18
|
const error_1 = require("../error");
|
|
19
19
|
const map_fn_1 = require("./map.fn");
|
|
20
|
+
const test_fn_1 = require("./test.fn");
|
|
20
21
|
// region properties
|
|
21
22
|
const where = `${internal_1.FQN}.LifecycleFn`;
|
|
22
|
-
const
|
|
23
|
+
const _stages = (0, map_fn_1.newRepoMap)(`${where}.stages`);
|
|
23
24
|
let lifecycleSortLambda;
|
|
24
25
|
// endregion properties
|
|
25
26
|
/**
|
|
@@ -28,7 +29,7 @@ let lifecycleSortLambda;
|
|
|
28
29
|
* @param {LifecycleStage} stage - stage
|
|
29
30
|
* */
|
|
30
31
|
const init = (stage) => {
|
|
31
|
-
|
|
32
|
+
_stages.set(stage, new Map());
|
|
32
33
|
};
|
|
33
34
|
/**
|
|
34
35
|
* Add lifecycle by stage
|
|
@@ -37,20 +38,20 @@ const init = (stage) => {
|
|
|
37
38
|
* @param {string} name - your callback name
|
|
38
39
|
* @param {function} callback - it will be called on {@link runLifecycleStage}
|
|
39
40
|
* */
|
|
40
|
-
function
|
|
41
|
+
function addLifecycleStage(stage, name, callback) {
|
|
41
42
|
if (!(0, function_1.isText)(stage)) {
|
|
42
|
-
throw new error_1.DeveloperError('Invalid lifecycle stage',
|
|
43
|
+
throw new error_1.DeveloperError('Invalid lifecycle stage', (0, test_fn_1.testCase)(internal_1.FQN, 100), where);
|
|
43
44
|
}
|
|
44
|
-
if (!
|
|
45
|
-
throw new error_1.DeveloperError(
|
|
45
|
+
if (!_stages.has(stage)) {
|
|
46
|
+
throw new error_1.DeveloperError(`Lifecycle stage could not be found [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 101), where);
|
|
46
47
|
}
|
|
47
48
|
if (!(0, function_1.isText)(name)) {
|
|
48
|
-
throw new error_1.DeveloperError(
|
|
49
|
+
throw new error_1.DeveloperError(`Invalid lifecycle name [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 102), where);
|
|
49
50
|
}
|
|
50
51
|
if (typeof callback !== 'function') {
|
|
51
|
-
throw new error_1.DeveloperError(
|
|
52
|
+
throw new error_1.DeveloperError(`Invalid lifecycle callback [${stage}/${name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 103), where);
|
|
52
53
|
}
|
|
53
|
-
const item =
|
|
54
|
+
const item = _stages.get(stage);
|
|
54
55
|
if (!item.has(name)) {
|
|
55
56
|
item.set(name, []);
|
|
56
57
|
}
|
|
@@ -66,23 +67,23 @@ function addLifecycle(stage, name, callback) {
|
|
|
66
67
|
function runLifecycleStage(stage, ...params) {
|
|
67
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
68
69
|
if (!(0, function_1.isText)(stage)) {
|
|
69
|
-
throw new error_1.DeveloperError('Invalid lifecycle stage',
|
|
70
|
+
throw new error_1.DeveloperError('Invalid lifecycle stage', (0, test_fn_1.testCase)(internal_1.FQN, 104), where);
|
|
70
71
|
}
|
|
71
|
-
if (!
|
|
72
|
-
throw new error_1.DeveloperError(
|
|
72
|
+
if (!_stages.has(stage)) {
|
|
73
|
+
throw new error_1.DeveloperError(`Lifecycle stage could not be found [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 105), where);
|
|
73
74
|
}
|
|
74
75
|
let count = 0;
|
|
75
|
-
const item =
|
|
76
|
+
const item = _stages.get(stage);
|
|
76
77
|
if (item.size < 1) {
|
|
77
78
|
return count;
|
|
78
79
|
}
|
|
79
80
|
let sorted;
|
|
80
81
|
if (lifecycleSortLambda) {
|
|
81
82
|
try {
|
|
82
|
-
sorted = lifecycleSortLambda(
|
|
83
|
+
sorted = lifecycleSortLambda(_stages.get(stage));
|
|
83
84
|
}
|
|
84
85
|
catch (e) {
|
|
85
|
-
new error_1.DeveloperError(`
|
|
86
|
+
new error_1.DeveloperError(`Callback error during lifecycle order lambda [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 106), where).log(e);
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
if (!sorted) {
|
|
@@ -98,7 +99,7 @@ function runLifecycleStage(stage, ...params) {
|
|
|
98
99
|
count++;
|
|
99
100
|
}
|
|
100
101
|
catch (e) {
|
|
101
|
-
new error_1.DeveloperError(`
|
|
102
|
+
new error_1.DeveloperError(`Callback error during lifecycle callback [${stage}/${name}]`, (0, test_fn_1.testCase)(internal_1.FQN, 107), where).log(e);
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
}
|
|
@@ -111,15 +112,15 @@ function runLifecycleStage(stage, ...params) {
|
|
|
111
112
|
* @param {LifecycleStage} stage
|
|
112
113
|
* @param {LifecycleSortLambda} lambda - function that sorts map items
|
|
113
114
|
* */
|
|
114
|
-
function
|
|
115
|
+
function setLifecycleOrderLambda(stage, lambda) {
|
|
115
116
|
if (!(0, function_1.isText)(stage)) {
|
|
116
|
-
throw new error_1.DeveloperError('Invalid lifecycle stage',
|
|
117
|
+
throw new error_1.DeveloperError('Invalid lifecycle stage', (0, test_fn_1.testCase)(internal_1.FQN, 108), where);
|
|
117
118
|
}
|
|
118
|
-
if (!
|
|
119
|
-
throw new error_1.DeveloperError(
|
|
119
|
+
if (!_stages.has(stage)) {
|
|
120
|
+
throw new error_1.DeveloperError(`Lifecycle stage could not be found [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 109), where);
|
|
120
121
|
}
|
|
121
122
|
if (typeof lambda !== 'function') {
|
|
122
|
-
throw new error_1.DeveloperError(
|
|
123
|
+
throw new error_1.DeveloperError(`Invalid lifecycle callback [${stage}]`, (0, test_fn_1.testCase)(internal_1.FQN, 110), where);
|
|
123
124
|
}
|
|
124
125
|
lifecycleSortLambda = lambda;
|
|
125
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.fn.js","sourceRoot":"","sources":["../../src/common/lifecycle.fn.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"lifecycle.fn.js","sourceRoot":"","sources":["../../src/common/lifecycle.fn.ts"],"names":[],"mappings":"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"}
|