phecda-server 7.0.0-alpha.8 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/assets/schema.json +12 -9
- package/bin/cli.mjs +96 -37
- package/dist/chunk-5SUY5UVC.js +258 -0
- package/dist/chunk-5SUY5UVC.js.map +1 -0
- package/dist/chunk-6JAHCTOT.mjs +334 -0
- package/dist/chunk-6JAHCTOT.mjs.map +1 -0
- package/dist/{chunk-BBNJVYVX.js → chunk-EDAWJVJ4.js} +42 -25
- package/dist/chunk-EDAWJVJ4.js.map +1 -0
- package/dist/{chunk-7EMAZGYO.js → chunk-H7OCHDZT.js} +65 -95
- package/dist/chunk-H7OCHDZT.js.map +1 -0
- package/dist/{chunk-QJIAXSLZ.js → chunk-KRUOHWFR.js} +79 -68
- package/dist/chunk-KRUOHWFR.js.map +1 -0
- package/dist/chunk-KUGU3UGO.js +334 -0
- package/dist/chunk-KUGU3UGO.js.map +1 -0
- package/dist/{chunk-SGMQZRP6.mjs → chunk-LBH4RXQQ.mjs} +12 -42
- package/dist/chunk-LBH4RXQQ.mjs.map +1 -0
- package/dist/{chunk-YKP4ODZA.mjs → chunk-MDPW6WGF.mjs} +32 -6
- package/dist/chunk-MDPW6WGF.mjs.map +1 -0
- package/dist/{chunk-VSGYTGHY.js → chunk-RLFCI3RG.js} +31 -5
- package/dist/chunk-RLFCI3RG.js.map +1 -0
- package/dist/{chunk-7NWDKK7D.mjs → chunk-TTHYUNOT.mjs} +18 -1
- package/dist/chunk-TTHYUNOT.mjs.map +1 -0
- package/dist/chunk-VDOICQ2U.mjs +258 -0
- package/dist/chunk-VDOICQ2U.mjs.map +1 -0
- package/dist/{chunk-B45BN7LY.mjs → chunk-WTJKTICN.mjs} +65 -54
- package/dist/chunk-WTJKTICN.mjs.map +1 -0
- package/dist/{core-BGEsBtTG.d.ts → core-BOo3uGFX.d.ts} +5 -4
- package/dist/{core-BcKywWLd.d.mts → core-CF45G79J.d.mts} +5 -4
- package/dist/core-DbqWh47p.d.mts +50 -0
- package/dist/core-Rq7BhPHE.d.ts +50 -0
- package/dist/helper.d.mts +7 -8
- package/dist/helper.d.ts +7 -8
- package/dist/helper.js +5 -3
- package/dist/helper.js.map +1 -0
- package/dist/helper.mjs +9 -7
- package/dist/helper.mjs.map +1 -0
- package/dist/http/elysia/index.d.mts +4 -4
- package/dist/http/elysia/index.d.ts +4 -4
- package/dist/http/elysia/index.js +43 -45
- package/dist/http/elysia/index.js.map +1 -0
- package/dist/http/elysia/index.mjs +6 -8
- package/dist/http/elysia/index.mjs.map +1 -0
- package/dist/http/express/index.d.mts +3 -3
- package/dist/http/express/index.d.ts +3 -3
- package/dist/http/express/index.js +40 -42
- package/dist/http/express/index.js.map +1 -0
- package/dist/http/express/index.mjs +6 -8
- package/dist/http/express/index.mjs.map +1 -0
- package/dist/http/fastify/index.d.mts +3 -3
- package/dist/http/fastify/index.d.ts +3 -3
- package/dist/http/fastify/index.js +41 -43
- package/dist/http/fastify/index.js.map +1 -0
- package/dist/http/fastify/index.mjs +6 -8
- package/dist/http/fastify/index.mjs.map +1 -0
- package/dist/http/h3/index.d.mts +3 -3
- package/dist/http/h3/index.d.ts +3 -3
- package/dist/http/h3/index.js +41 -43
- package/dist/http/h3/index.js.map +1 -0
- package/dist/http/h3/index.mjs +5 -7
- package/dist/http/h3/index.mjs.map +1 -0
- package/dist/http/hono/index.d.mts +3 -3
- package/dist/http/hono/index.d.ts +3 -3
- package/dist/http/hono/index.js +37 -39
- package/dist/http/hono/index.js.map +1 -0
- package/dist/http/hono/index.mjs +5 -7
- package/dist/http/hono/index.mjs.map +1 -0
- package/dist/http/hyper-express/index.d.mts +3 -3
- package/dist/http/hyper-express/index.d.ts +3 -3
- package/dist/http/hyper-express/index.js +38 -40
- package/dist/http/hyper-express/index.js.map +1 -0
- package/dist/http/hyper-express/index.mjs +5 -7
- package/dist/http/hyper-express/index.mjs.map +1 -0
- package/dist/http/koa/index.d.mts +3 -3
- package/dist/http/koa/index.d.ts +3 -3
- package/dist/http/koa/index.js +40 -42
- package/dist/http/koa/index.js.map +1 -0
- package/dist/http/koa/index.mjs +6 -8
- package/dist/http/koa/index.mjs.map +1 -0
- package/dist/index.d.mts +76 -12
- package/dist/index.d.ts +76 -12
- package/dist/index.js +103 -49
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +68 -14
- package/dist/index.mjs.map +1 -0
- package/dist/{meta-B_HW7cWh.d.ts → meta-BoS1E-Nz.d.mts} +6 -24
- package/dist/{meta-B_HW7cWh.d.mts → meta-BoS1E-Nz.d.ts} +6 -24
- package/dist/rpc/bullmq/index.d.mts +4 -6
- package/dist/rpc/bullmq/index.d.ts +4 -6
- package/dist/rpc/bullmq/index.js +13 -80
- package/dist/rpc/bullmq/index.js.map +1 -0
- package/dist/rpc/bullmq/index.mjs +6 -73
- package/dist/rpc/bullmq/index.mjs.map +1 -0
- package/dist/rpc/electron/index.d.mts +13 -0
- package/dist/rpc/electron/index.d.ts +13 -0
- package/dist/rpc/electron/index.js +73 -0
- package/dist/rpc/electron/index.js.map +1 -0
- package/dist/rpc/electron/index.mjs +73 -0
- package/dist/rpc/electron/index.mjs.map +1 -0
- package/dist/rpc/kafka/index.d.mts +4 -9
- package/dist/rpc/kafka/index.d.ts +4 -9
- package/dist/rpc/kafka/index.js +12 -90
- package/dist/rpc/kafka/index.js.map +1 -0
- package/dist/rpc/kafka/index.mjs +5 -83
- package/dist/rpc/kafka/index.mjs.map +1 -0
- package/dist/rpc/nats/index.d.mts +4 -6
- package/dist/rpc/nats/index.d.ts +4 -6
- package/dist/rpc/nats/index.js +13 -72
- package/dist/rpc/nats/index.js.map +1 -0
- package/dist/rpc/nats/index.mjs +5 -64
- package/dist/rpc/nats/index.mjs.map +1 -0
- package/dist/rpc/rabbitmq/index.d.mts +4 -6
- package/dist/rpc/rabbitmq/index.d.ts +4 -6
- package/dist/rpc/rabbitmq/index.js +14 -79
- package/dist/rpc/rabbitmq/index.js.map +1 -0
- package/dist/rpc/rabbitmq/index.mjs +6 -71
- package/dist/rpc/rabbitmq/index.mjs.map +1 -0
- package/dist/rpc/redis/index.d.mts +4 -9
- package/dist/rpc/redis/index.d.ts +4 -9
- package/dist/rpc/redis/index.js +12 -78
- package/dist/rpc/redis/index.js.map +1 -0
- package/dist/rpc/redis/index.mjs +6 -72
- package/dist/rpc/redis/index.mjs.map +1 -0
- package/dist/rpc/web-ext/index.d.mts +2 -0
- package/dist/rpc/web-ext/index.d.ts +2 -0
- package/dist/rpc/web-ext/index.js +1 -0
- package/dist/rpc/web-ext/index.js.map +1 -0
- package/dist/rpc/web-ext/index.mjs +1 -0
- package/dist/rpc/web-ext/index.mjs.map +1 -0
- package/dist/rpc/ws/index.d.mts +14 -0
- package/dist/rpc/ws/index.d.ts +14 -0
- package/dist/rpc/ws/index.js +74 -0
- package/dist/rpc/ws/index.js.map +1 -0
- package/dist/rpc/ws/index.mjs +74 -0
- package/dist/rpc/ws/index.mjs.map +1 -0
- package/dist/test.d.mts +8 -4
- package/dist/test.d.ts +8 -4
- package/dist/test.js +7 -6
- package/dist/test.js.map +1 -0
- package/dist/test.mjs +3 -2
- package/dist/test.mjs.map +1 -0
- package/dist/types-CInz3bD0.d.ts +14 -0
- package/dist/types-E-rqlg3-.d.mts +14 -0
- package/dist/{types-C2SQ9U9V.d.mts → types-SCJZFCYt.d.mts} +1 -1
- package/dist/{types-PFPIQWVF.d.ts → types-xruyYmyu.d.ts} +1 -1
- package/package.json +24 -8
- package/register/export.mjs +30 -0
- package/register/index.mjs +20 -12
- package/register/loader.mjs +94 -116
- package/register/utils.mjs +36 -6
- package/assets/ps.json +0 -24
- package/assets/tsconfig.json +0 -21
- package/dist/types-CYF0vha6.d.ts +0 -19
- package/dist/types-DEQb_e59.d.mts +0 -19
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
var _chunkRLFCI3RGjs = require('./chunk-RLFCI3RG.js');
|
|
7
8
|
|
|
8
9
|
// src/meta.ts
|
|
9
10
|
var Meta = class {
|
|
10
11
|
static {
|
|
11
|
-
|
|
12
|
+
_chunkRLFCI3RGjs.__name.call(void 0, this, "Meta");
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
|
|
@@ -37,11 +38,11 @@ function defaultServerInject() {
|
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
_chunkRLFCI3RGjs.__name.call(void 0, defaultServerInject, "defaultServerInject");
|
|
41
42
|
var phecdaNamespace = /* @__PURE__ */ new Map();
|
|
42
43
|
var ServerPhecda = (_class = class {
|
|
43
44
|
static {
|
|
44
|
-
|
|
45
|
+
_chunkRLFCI3RGjs.__name.call(void 0, this, "ServerPhecda");
|
|
45
46
|
}
|
|
46
47
|
__init() {this.moduleMap = /* @__PURE__ */ new Map()}
|
|
47
48
|
__init2() {this.meta = []}
|
|
@@ -51,9 +52,9 @@ var ServerPhecda = (_class = class {
|
|
|
51
52
|
|
|
52
53
|
|
|
53
54
|
|
|
54
|
-
constructor(options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);
|
|
55
|
+
constructor(options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);
|
|
55
56
|
defaultServerInject();
|
|
56
|
-
const { namespace = "default", parseModule = /* @__PURE__ */
|
|
57
|
+
const { namespace = "default", parseModule = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, (module) => module, "parseModule"), parseMeta = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, (meta) => meta, "parseMeta"), generators = [] } = options;
|
|
57
58
|
phecdaNamespace.set(namespace, this);
|
|
58
59
|
this.parseMeta = parseMeta;
|
|
59
60
|
this.parseModule = parseModule;
|
|
@@ -61,63 +62,30 @@ var ServerPhecda = (_class = class {
|
|
|
61
62
|
}
|
|
62
63
|
async start(models) {
|
|
63
64
|
for (const model of models) await this.buildDepModule(model);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}));
|
|
65
|
+
this.hmr();
|
|
66
|
+
this.generateCode().then(() => {
|
|
67
|
+
if (_chunkRLFCI3RGjs.IS_ONLY_GENERATE) {
|
|
68
|
+
_chunkRLFCI3RGjs.log.call(void 0, "Only generate code");
|
|
69
|
+
process.exit(_chunkRLFCI3RGjs.PS_EXIT_CODE.EXIT);
|
|
70
70
|
}
|
|
71
|
-
}, "generateCode");
|
|
72
|
-
generateCode().then(() => {
|
|
73
|
-
if (_chunkVSGYTGHYjs.IS_ONLY_GENERATE) process.exit(4);
|
|
74
71
|
});
|
|
75
|
-
if (_chunkVSGYTGHYjs.IS_DEV) {
|
|
76
|
-
if (!globalThis.__PS_HMR__) globalThis.__PS_HMR__ = [];
|
|
77
|
-
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async (files) => {
|
|
78
|
-
debug("reload files ");
|
|
79
|
-
for (const file of files) {
|
|
80
|
-
const models2 = await Promise.resolve().then(() => _interopRequireWildcard(require(file)));
|
|
81
|
-
for (const i in models2) {
|
|
82
|
-
if (_phecdacore.isPhecda.call(void 0, models2[i])) await this.add(models2[i]);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
generateCode();
|
|
86
|
-
})]);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async add(Model) {
|
|
90
|
-
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
91
|
-
const oldInstance = await this.del(tag);
|
|
92
|
-
const { module: newModule } = await this.buildDepModule(Model);
|
|
93
|
-
if (oldInstance && this.dependenceGraph.has(tag)) {
|
|
94
|
-
debug(`replace module "${String(tag)}"`);
|
|
95
|
-
[
|
|
96
|
-
...this.dependenceGraph.get(tag)
|
|
97
|
-
].forEach((tag2) => {
|
|
98
|
-
const module = this.moduleMap.get(tag2);
|
|
99
|
-
for (const key in module) {
|
|
100
|
-
if (module[key] === oldInstance) module[key] = newModule;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
72
|
}
|
|
105
|
-
async
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
73
|
+
__init6() {this.generateCode = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, async () => {
|
|
74
|
+
return Promise.all(this.generators.map((generator) => {
|
|
75
|
+
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
76
|
+
return generator.output(this.meta);
|
|
77
|
+
}));
|
|
78
|
+
}, "generateCode")}
|
|
79
|
+
hmr() {
|
|
80
|
+
_chunkRLFCI3RGjs.HMR.call(void 0, async (oldModels, newModels) => {
|
|
81
|
+
debug("reload models ");
|
|
82
|
+
await this.replace(oldModels, newModels);
|
|
83
|
+
this.generateCode();
|
|
84
|
+
});
|
|
117
85
|
}
|
|
118
86
|
async destroy() {
|
|
119
87
|
debug("destroy all");
|
|
120
|
-
|
|
88
|
+
this.replace(Object.values(this.modelMap), []);
|
|
121
89
|
}
|
|
122
90
|
createProxyModule(tag) {
|
|
123
91
|
const that = this;
|
|
@@ -133,6 +101,9 @@ var ServerPhecda = (_class = class {
|
|
|
133
101
|
has(_target, prop) {
|
|
134
102
|
return Reflect.has(that.moduleMap.get(tag), prop);
|
|
135
103
|
},
|
|
104
|
+
ownKeys() {
|
|
105
|
+
return Reflect.ownKeys(that.moduleMap.get(tag));
|
|
106
|
+
},
|
|
136
107
|
getPrototypeOf() {
|
|
137
108
|
return Reflect.getPrototypeOf(that.moduleMap.get(tag));
|
|
138
109
|
},
|
|
@@ -148,7 +119,7 @@ var ServerPhecda = (_class = class {
|
|
|
148
119
|
if (this.moduleMap.has(tag)) {
|
|
149
120
|
module = this.moduleMap.get(tag);
|
|
150
121
|
if (!module) {
|
|
151
|
-
|
|
122
|
+
_chunkRLFCI3RGjs.log.call(void 0, `Exist Circular-Dependency or Multiple modules with the same tag [${String(tag)}]`, "warn");
|
|
152
123
|
return {
|
|
153
124
|
module: this.createProxyModule(tag),
|
|
154
125
|
tag
|
|
@@ -156,8 +127,8 @@ var ServerPhecda = (_class = class {
|
|
|
156
127
|
}
|
|
157
128
|
if (this.modelMap.get(module) !== Model && !this.modelSet.has(Model)) {
|
|
158
129
|
this.modelSet.add(Model);
|
|
159
|
-
if (module instanceof Model)
|
|
160
|
-
else
|
|
130
|
+
if (module instanceof Model) _chunkRLFCI3RGjs.log.call(void 0, `Module taged ${String(tag)} has been overridden`);
|
|
131
|
+
else _chunkRLFCI3RGjs.log.call(void 0, `Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
161
132
|
}
|
|
162
133
|
return {
|
|
163
134
|
module,
|
|
@@ -180,7 +151,7 @@ var ServerPhecda = (_class = class {
|
|
|
180
151
|
}
|
|
181
152
|
this.meta.push(...getMetaFromInstance(module, tag, Model.name).map(this.parseMeta).filter((item) => !!item));
|
|
182
153
|
debug(`init module "${String(tag)}"`);
|
|
183
|
-
if (!
|
|
154
|
+
if (!_chunkRLFCI3RGjs.IS_ONLY_GENERATE) await _phecdacore.invokeInit.call(void 0, module);
|
|
184
155
|
debug(`add module "${String(tag)}"`);
|
|
185
156
|
this.moduleMap.set(tag, module);
|
|
186
157
|
this.modelMap.set(module, Model);
|
|
@@ -189,6 +160,42 @@ var ServerPhecda = (_class = class {
|
|
|
189
160
|
tag
|
|
190
161
|
};
|
|
191
162
|
}
|
|
163
|
+
async replace(oldModels, newModels) {
|
|
164
|
+
const oldModules = (await Promise.all(oldModels.map(async (model) => {
|
|
165
|
+
const tag = _phecdacore.getTag.call(void 0, model);
|
|
166
|
+
if (!this.has(tag)) return;
|
|
167
|
+
const module = this.moduleMap.get(tag);
|
|
168
|
+
debug(`unmount module "${String(tag)}"`);
|
|
169
|
+
await _phecdacore.invokeUnmount.call(void 0, module);
|
|
170
|
+
debug(`del module "${String(tag)}"`);
|
|
171
|
+
this.moduleMap.delete(tag);
|
|
172
|
+
this.modelMap.delete(module);
|
|
173
|
+
for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
174
|
+
if (this.meta[i].data.tag === tag) this.meta.splice(i, 1);
|
|
175
|
+
}
|
|
176
|
+
return module;
|
|
177
|
+
}))).filter((item) => item);
|
|
178
|
+
for (const model of newModels) {
|
|
179
|
+
debug(`mount module: ${model.name}`);
|
|
180
|
+
await this.buildDepModule(model);
|
|
181
|
+
}
|
|
182
|
+
debug("replace old modules");
|
|
183
|
+
for (const module of oldModules) {
|
|
184
|
+
const tag = _phecdacore.getTag.call(void 0, module);
|
|
185
|
+
if (this.dependenceGraph.has(tag)) {
|
|
186
|
+
[
|
|
187
|
+
...this.dependenceGraph.get(tag)
|
|
188
|
+
].forEach((depTag) => {
|
|
189
|
+
const depModule = this.moduleMap.get(depTag);
|
|
190
|
+
if (depModule) {
|
|
191
|
+
for (const key in depModule) {
|
|
192
|
+
if (depModule[key] === module) depModule[key] = this.moduleMap.get(tag);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
192
199
|
has(modelOrTag) {
|
|
193
200
|
return this.moduleMap.has(typeof modelOrTag === "function" ? _phecdacore.getTag.call(void 0, modelOrTag) : modelOrTag);
|
|
194
201
|
}
|
|
@@ -197,13 +204,16 @@ var ServerPhecda = (_class = class {
|
|
|
197
204
|
if (!this.has(tag)) throw new Error(`module "${tag.toString()}" doesn't exist`);
|
|
198
205
|
return this.moduleMap.get(tag);
|
|
199
206
|
}
|
|
207
|
+
getModel(tag) {
|
|
208
|
+
return this.modelMap.get(this.get(tag));
|
|
209
|
+
}
|
|
200
210
|
}, _class);
|
|
201
211
|
async function Factory(models, opts = {}) {
|
|
202
212
|
const phecda = new ServerPhecda(opts);
|
|
203
213
|
await phecda.start(models);
|
|
204
214
|
return phecda;
|
|
205
215
|
}
|
|
206
|
-
|
|
216
|
+
_chunkRLFCI3RGjs.__name.call(void 0, Factory, "Factory");
|
|
207
217
|
function useS(nsOrModel, namespace) {
|
|
208
218
|
if (!nsOrModel) {
|
|
209
219
|
namespace = "default";
|
|
@@ -216,7 +226,7 @@ function useS(nsOrModel, namespace) {
|
|
|
216
226
|
if (nsOrModel && typeof nsOrModel !== "string") return serverPhecda.get(nsOrModel);
|
|
217
227
|
else return serverPhecda;
|
|
218
228
|
}
|
|
219
|
-
|
|
229
|
+
_chunkRLFCI3RGjs.__name.call(void 0, useS, "useS");
|
|
220
230
|
function getMetaFromInstance(instance, tag, name) {
|
|
221
231
|
const propertyKeys = _phecdacore.getMetaKey.call(void 0, instance).filter((item) => typeof item === "string");
|
|
222
232
|
const baseMeta = _phecdacore.getMergedMeta.call(void 0, instance, void 0);
|
|
@@ -230,7 +240,7 @@ function getMetaFromInstance(instance, tag, name) {
|
|
|
230
240
|
func: i
|
|
231
241
|
};
|
|
232
242
|
if (baseMeta.controller) {
|
|
233
|
-
if (typeof tag !== "string")
|
|
243
|
+
if (typeof tag !== "string") _chunkRLFCI3RGjs.log.call(void 0, `can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
234
244
|
metaData.controller = baseMeta.controller;
|
|
235
245
|
metaData[baseMeta.controller] = {
|
|
236
246
|
...baseMeta[baseMeta.controller],
|
|
@@ -268,7 +278,7 @@ function getMetaFromInstance(instance, tag, name) {
|
|
|
268
278
|
return new Meta(deepFreeze(metaData), getParamTypes(instance, i) || []);
|
|
269
279
|
});
|
|
270
280
|
}
|
|
271
|
-
|
|
281
|
+
_chunkRLFCI3RGjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
272
282
|
function deepFreeze(object) {
|
|
273
283
|
Object.freeze(object);
|
|
274
284
|
Object.getOwnPropertyNames(object).forEach((prop) => {
|
|
@@ -276,13 +286,13 @@ function deepFreeze(object) {
|
|
|
276
286
|
});
|
|
277
287
|
return object;
|
|
278
288
|
}
|
|
279
|
-
|
|
289
|
+
_chunkRLFCI3RGjs.__name.call(void 0, deepFreeze, "deepFreeze");
|
|
280
290
|
function getParamTypes(Model, key) {
|
|
281
291
|
const paramTypes = Reflect.getMetadata("design:paramtypes", Model, key);
|
|
282
292
|
if (typeof paramTypes === "function") return paramTypes();
|
|
283
293
|
else return paramTypes;
|
|
284
294
|
}
|
|
285
|
-
|
|
295
|
+
_chunkRLFCI3RGjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
286
296
|
|
|
287
297
|
|
|
288
298
|
|
|
@@ -293,3 +303,4 @@ _chunkVSGYTGHYjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
|
293
303
|
|
|
294
304
|
|
|
295
305
|
exports.Meta = Meta; exports.emitter = emitter; exports.defaultServerInject = defaultServerInject; exports.phecdaNamespace = phecdaNamespace; exports.ServerPhecda = ServerPhecda; exports.Factory = Factory; exports.useS = useS;
|
|
306
|
+
//# sourceMappingURL=chunk-KRUOHWFR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\myproject\\phecda\\packages\\server\\dist\\chunk-KRUOHWFR.js"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AACA,IAAI,KAAK,EAAE,MAAM;AACjB,EAAE,OAAO;AACT,IAAI,qCAAM,IAAK,EAAE,MAAM,CAAC;AACxB,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE;AAChC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI;AACpB,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU;AAChC,EAAE;AACF,CAAC;AACD;AACA;AACA,4BAAyB;AACzB,gFAAiC;AACjC,yCAA+H;AAC/H,4EAAyB;AACzB,IAAI,MAAM,EAAE,6BAAK,wBAAyB,CAAC;AAC3C,IAAI,QAAQ,EAAE,IAAI,qBAAY,CAAC,CAAC;AAChC,SAAS,mBAAmB,CAAC,EAAE;AAC/B,EAAE,GAAG,CAAC,CAAC,mCAAS,SAAU,CAAC,EAAE;AAC7B,IAAI,mCAAS,SAAU,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG;AACzE,MAAM,MAAM,GAAG,EAAE,OAAO,QAAQ,CAAC,QAAQ,EAAE,IAAI,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC7H,MAAM,GAAG,iBAAC,OAAO,2BAAE,MAAI,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;AACpD,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;AACpC,MAAM,OAAO,CAAC,EAAE,GAAG;AACnB,QAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;AAClC,MAAM,CAAC;AACP,IAAI,CAAC,CAAC;AACN,EAAE;AACF;AACA,qCAAM,mBAAoB,EAAE,qBAAqB,CAAC;AAClD,IAAI,gBAAgB,kBAAkB,IAAI,GAAG,CAAC,CAAC;AAC/C,IAAI,aAAa,YAAE,MAAM;AACzB,EAAE,OAAO;AACT,IAAI,qCAAM,IAAK,EAAE,cAAc,CAAC;AAChC,EAAE;AACF,iBAAE,UAAU,kBAAkB,IAAI,GAAG,CAAC,EAAC;AACvC,kBAAE,KAAK,EAAE,CAAC,EAAC;AACX,kBAAE,SAAS,kBAAkB,IAAI,OAAO,CAAC,EAAC;AAC1C,kBAAE,SAAS,kBAAkB,IAAI,OAAO,CAAC,EAAC;AAC1C,kBAAE,gBAAgB,kBAAkB,IAAI,GAAG,CAAC,EAAC;AAC7C,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,mBAAmB,CAAC,CAAC;AACzB,IAAI,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,kBAAkB,qCAAM,CAAE,MAAM,EAAE,GAAG,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU,kBAAkB,qCAAM,CAAE,IAAI,EAAE,GAAG,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO;AACxM,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;AACxC,IAAI,IAAI,CAAC,UAAU,EAAE,SAAS;AAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW;AAClC,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU;AAChC,EAAE;AACF,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE;AACtB,IAAI,IAAI,CAAC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAChE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG;AACnC,MAAM,GAAG,CAAC,iCAAgB,EAAE;AAC5B,QAAQ,kCAAG,oBAAqB,CAAC;AACjC,QAAQ,OAAO,CAAC,IAAI,CAAC,6BAAY,CAAC,IAAI,CAAC;AACvC,MAAM;AACN,IAAI,CAAC,CAAC;AACN,EAAE;AACF,kBAAE,aAAa,kBAAkB,qCAAM,MAAO,CAAC,EAAE,GAAG;AACpD,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG;AAC1D,MAAM,KAAK,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\myproject\\phecda\\packages\\server\\dist\\chunk-KRUOHWFR.js","sourcesContent":[null]}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkRLFCI3RGjs = require('./chunk-RLFCI3RG.js');
|
|
8
|
+
|
|
9
|
+
// src/meta.ts
|
|
10
|
+
var Meta = class {
|
|
11
|
+
static {
|
|
12
|
+
_chunkRLFCI3RGjs.__name.call(void 0, this, "Meta");
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
constructor(data, paramsType) {
|
|
17
|
+
this.data = data;
|
|
18
|
+
this.paramsType = paramsType;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// src/core.ts
|
|
23
|
+
require('reflect-metadata');
|
|
24
|
+
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
25
|
+
var _phecdacore = require('phecda-core');
|
|
26
|
+
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
27
|
+
var debug = _debug2.default.call(void 0, "phecda-server(Factory)");
|
|
28
|
+
var emitter = new (0, _events2.default)();
|
|
29
|
+
function defaultServerInject() {
|
|
30
|
+
if (!_phecdacore.getInject.call(void 0, "watcher")) {
|
|
31
|
+
_phecdacore.setInject.call(void 0, "watcher", ({ eventName, instance, property, options }) => {
|
|
32
|
+
const fn = typeof instance[property] === "function" ? instance[property].bind(instance) : (v) => instance[property] = v;
|
|
33
|
+
if (_optionalChain([options, 'optionalAccess', _ => _.once])) emitter.once(eventName, fn);
|
|
34
|
+
else emitter.on(eventName, fn);
|
|
35
|
+
return () => {
|
|
36
|
+
emitter.off(eventName, fn);
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
_chunkRLFCI3RGjs.__name.call(void 0, defaultServerInject, "defaultServerInject");
|
|
42
|
+
var phecdaNamespace = /* @__PURE__ */ new Map();
|
|
43
|
+
var ServerPhecda = (_class = class {
|
|
44
|
+
static {
|
|
45
|
+
_chunkRLFCI3RGjs.__name.call(void 0, this, "ServerPhecda");
|
|
46
|
+
}
|
|
47
|
+
__init() {this.moduleMap = /* @__PURE__ */ new Map()}
|
|
48
|
+
__init2() {this.meta = []}
|
|
49
|
+
__init3() {this.modelMap = /* @__PURE__ */ new WeakMap()}
|
|
50
|
+
__init4() {this.modelSet = /* @__PURE__ */ new WeakSet()}
|
|
51
|
+
__init5() {this.dependenceGraph = /* @__PURE__ */ new Map()}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
constructor(options) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this);_class.prototype.__init4.call(this);_class.prototype.__init5.call(this);_class.prototype.__init6.call(this);
|
|
56
|
+
defaultServerInject();
|
|
57
|
+
const { namespace = "default", parseModule = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, (module) => module, "parseModule"), parseMeta = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, (meta) => meta, "parseMeta"), generators = [] } = options;
|
|
58
|
+
phecdaNamespace.set(namespace, this);
|
|
59
|
+
this.parseMeta = parseMeta;
|
|
60
|
+
this.parseModule = parseModule;
|
|
61
|
+
this.generators = generators;
|
|
62
|
+
}
|
|
63
|
+
async start(models) {
|
|
64
|
+
for (const model of models) await this.buildDepModule(model);
|
|
65
|
+
this.hmr();
|
|
66
|
+
this.generateCode().then(() => {
|
|
67
|
+
if (_chunkRLFCI3RGjs.IS_ONLY_GENERATE) {
|
|
68
|
+
_chunkRLFCI3RGjs.log.call(void 0, "Only generate code");
|
|
69
|
+
process.exit(_chunkRLFCI3RGjs.PS_EXIT_CODE.EXIT);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
__init6() {this.generateCode = /* @__PURE__ */ _chunkRLFCI3RGjs.__name.call(void 0, async () => {
|
|
74
|
+
return Promise.all(this.generators.map((generator) => {
|
|
75
|
+
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
76
|
+
return generator.output(this.meta);
|
|
77
|
+
}));
|
|
78
|
+
}, "generateCode")}
|
|
79
|
+
hmr() {
|
|
80
|
+
_chunkRLFCI3RGjs.HMR.call(void 0, async (oldModels, newModels) => {
|
|
81
|
+
debug("reload models ");
|
|
82
|
+
await this.replace(oldModels, newModels);
|
|
83
|
+
this.generateCode();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// async add(Model: Construct) {
|
|
87
|
+
// const tag = getTag(Model)
|
|
88
|
+
// const oldInstance = await this.del(tag)
|
|
89
|
+
// const { module: newModule } = await this.buildDepModule(Model)
|
|
90
|
+
// if (oldInstance && this.dependenceGraph.has(tag)) {
|
|
91
|
+
// debug(`replace module "${String(tag)}"`);
|
|
92
|
+
// [...this.dependenceGraph.get(tag)!].forEach((tag) => {
|
|
93
|
+
// const module = this.moduleMap.get(tag)
|
|
94
|
+
// for (const key in module) {
|
|
95
|
+
// if (module[key] === oldInstance)
|
|
96
|
+
// module[key] = newModule
|
|
97
|
+
// }
|
|
98
|
+
// })
|
|
99
|
+
// }
|
|
100
|
+
// }
|
|
101
|
+
// async del(modelOrTag: Construct | PropertyKey) {
|
|
102
|
+
// const tag = typeof modelOrTag === 'function' ? getTag(modelOrTag) : modelOrTag
|
|
103
|
+
// if (!this.moduleMap.has(tag))
|
|
104
|
+
// return
|
|
105
|
+
// const module = this.moduleMap.get(tag)
|
|
106
|
+
// debug(`unmount module "${String(tag)}"`)
|
|
107
|
+
// await invokeUnmount(module)
|
|
108
|
+
// debug(`del module "${String(tag)}"`)
|
|
109
|
+
// this.moduleMap.delete(tag)
|
|
110
|
+
// this.modelMap.delete(module)
|
|
111
|
+
// for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
112
|
+
// if (this.meta[i].data.tag === tag)
|
|
113
|
+
// this.meta.splice(i, 1)
|
|
114
|
+
// }
|
|
115
|
+
// return module
|
|
116
|
+
// }
|
|
117
|
+
async destroy() {
|
|
118
|
+
debug("destroy all");
|
|
119
|
+
this.replace(Object.values(this.modelMap), []);
|
|
120
|
+
}
|
|
121
|
+
createProxyModule(tag) {
|
|
122
|
+
const that = this;
|
|
123
|
+
return new Proxy({}, {
|
|
124
|
+
get(_target, prop) {
|
|
125
|
+
const module = that.moduleMap.get(tag);
|
|
126
|
+
return Reflect.get(module, prop, module);
|
|
127
|
+
},
|
|
128
|
+
set(_target, prop, newValue) {
|
|
129
|
+
const module = that.moduleMap.get(tag);
|
|
130
|
+
return Reflect.set(module, prop, newValue, module);
|
|
131
|
+
},
|
|
132
|
+
has(_target, prop) {
|
|
133
|
+
return Reflect.has(that.moduleMap.get(tag), prop);
|
|
134
|
+
},
|
|
135
|
+
ownKeys() {
|
|
136
|
+
return Reflect.ownKeys(that.moduleMap.get(tag));
|
|
137
|
+
},
|
|
138
|
+
getPrototypeOf() {
|
|
139
|
+
return Reflect.getPrototypeOf(that.moduleMap.get(tag));
|
|
140
|
+
},
|
|
141
|
+
getOwnPropertyDescriptor(_target, prop) {
|
|
142
|
+
return Reflect.getOwnPropertyDescriptor(that.moduleMap.get(tag), prop);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
async buildDepModule(Model) {
|
|
147
|
+
const paramtypes = getParamTypes(Model);
|
|
148
|
+
let module;
|
|
149
|
+
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
150
|
+
if (this.moduleMap.has(tag)) {
|
|
151
|
+
module = this.moduleMap.get(tag);
|
|
152
|
+
if (!module) {
|
|
153
|
+
_chunkRLFCI3RGjs.log.call(void 0, `Exist Circular-Dependency or Multiple modules with the same tag [${String(tag)}]`, "warn");
|
|
154
|
+
return {
|
|
155
|
+
module: this.createProxyModule(tag),
|
|
156
|
+
tag
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (this.modelMap.get(module) !== Model && !this.modelSet.has(Model)) {
|
|
160
|
+
this.modelSet.add(Model);
|
|
161
|
+
if (module instanceof Model) _chunkRLFCI3RGjs.log.call(void 0, `Module taged ${String(tag)} has been overridden`);
|
|
162
|
+
else _chunkRLFCI3RGjs.log.call(void 0, `Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
module,
|
|
166
|
+
tag
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
this.moduleMap.set(tag, void 0);
|
|
170
|
+
debug(`instantiate module "${String(tag)}"`);
|
|
171
|
+
if (paramtypes) {
|
|
172
|
+
const paramtypesInstances = [];
|
|
173
|
+
for (const i in paramtypes) {
|
|
174
|
+
const { module: sub, tag: subTag } = await this.buildDepModule(paramtypes[i]);
|
|
175
|
+
paramtypesInstances[i] = sub;
|
|
176
|
+
if (!this.dependenceGraph.has(subTag)) this.dependenceGraph.set(subTag, /* @__PURE__ */ new Set());
|
|
177
|
+
this.dependenceGraph.get(subTag).add(tag);
|
|
178
|
+
}
|
|
179
|
+
module = this.parseModule(new Model(...paramtypesInstances));
|
|
180
|
+
} else {
|
|
181
|
+
module = this.parseModule(new Model());
|
|
182
|
+
}
|
|
183
|
+
this.meta.push(...getMetaFromInstance(module, tag, Model.name).map(this.parseMeta).filter((item) => !!item));
|
|
184
|
+
debug(`init module "${String(tag)}"`);
|
|
185
|
+
if (!_chunkRLFCI3RGjs.IS_ONLY_GENERATE) await _phecdacore.invokeInit.call(void 0, module);
|
|
186
|
+
debug(`add module "${String(tag)}"`);
|
|
187
|
+
this.moduleMap.set(tag, module);
|
|
188
|
+
this.modelMap.set(module, Model);
|
|
189
|
+
return {
|
|
190
|
+
module,
|
|
191
|
+
tag
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async replace(oldModels, newModels) {
|
|
195
|
+
const oldModules = (await Promise.all(oldModels.map(async (model) => {
|
|
196
|
+
const tag = _phecdacore.getTag.call(void 0, model);
|
|
197
|
+
if (!this.has(tag)) return;
|
|
198
|
+
const module = this.moduleMap.get(tag);
|
|
199
|
+
debug(`unmount module "${String(tag)}"`);
|
|
200
|
+
await _phecdacore.invokeUnmount.call(void 0, module);
|
|
201
|
+
debug(`del module "${String(tag)}"`);
|
|
202
|
+
this.moduleMap.delete(tag);
|
|
203
|
+
this.modelMap.delete(module);
|
|
204
|
+
for (let i = this.meta.length - 1; i >= 0; i--) {
|
|
205
|
+
if (this.meta[i].data.tag === tag) this.meta.splice(i, 1);
|
|
206
|
+
}
|
|
207
|
+
return module;
|
|
208
|
+
}))).filter((item) => item);
|
|
209
|
+
for (const model of newModels) {
|
|
210
|
+
debug(`mount module: ${model.name}`);
|
|
211
|
+
await this.buildDepModule(model);
|
|
212
|
+
}
|
|
213
|
+
debug("replace old modules");
|
|
214
|
+
for (const module of oldModules) {
|
|
215
|
+
const tag = _phecdacore.getTag.call(void 0, module);
|
|
216
|
+
if (this.dependenceGraph.has(tag)) {
|
|
217
|
+
[
|
|
218
|
+
...this.dependenceGraph.get(tag)
|
|
219
|
+
].forEach((depTag) => {
|
|
220
|
+
const depModule = this.moduleMap.get(depTag);
|
|
221
|
+
if (depModule) {
|
|
222
|
+
for (const key in depModule) {
|
|
223
|
+
if (depModule[key] === module) depModule[key] = this.moduleMap.get(tag);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
has(modelOrTag) {
|
|
231
|
+
return this.moduleMap.has(typeof modelOrTag === "function" ? _phecdacore.getTag.call(void 0, modelOrTag) : modelOrTag);
|
|
232
|
+
}
|
|
233
|
+
get(modelOrTag) {
|
|
234
|
+
const tag = typeof modelOrTag === "function" ? _phecdacore.getTag.call(void 0, modelOrTag) : modelOrTag;
|
|
235
|
+
if (!this.has(tag)) throw new Error(`module "${tag.toString()}" doesn't exist`);
|
|
236
|
+
return this.moduleMap.get(tag);
|
|
237
|
+
}
|
|
238
|
+
}, _class);
|
|
239
|
+
async function Factory(models, opts = {}) {
|
|
240
|
+
const phecda = new ServerPhecda(opts);
|
|
241
|
+
await phecda.start(models);
|
|
242
|
+
return phecda;
|
|
243
|
+
}
|
|
244
|
+
_chunkRLFCI3RGjs.__name.call(void 0, Factory, "Factory");
|
|
245
|
+
function useS(nsOrModel, namespace) {
|
|
246
|
+
if (!nsOrModel) {
|
|
247
|
+
namespace = "default";
|
|
248
|
+
} else {
|
|
249
|
+
if (typeof nsOrModel === "string") namespace = nsOrModel;
|
|
250
|
+
else if (!namespace) namespace = "default";
|
|
251
|
+
}
|
|
252
|
+
if (!phecdaNamespace.has(namespace)) throw new Error(`namespace "${namespace}" doesn't exist`);
|
|
253
|
+
const serverPhecda = phecdaNamespace.get(namespace);
|
|
254
|
+
if (nsOrModel && typeof nsOrModel !== "string") return serverPhecda.get(nsOrModel);
|
|
255
|
+
else return serverPhecda;
|
|
256
|
+
}
|
|
257
|
+
_chunkRLFCI3RGjs.__name.call(void 0, useS, "useS");
|
|
258
|
+
function getMetaFromInstance(instance, tag, name) {
|
|
259
|
+
const propertyKeys = _phecdacore.getMetaKey.call(void 0, instance).filter((item) => typeof item === "string");
|
|
260
|
+
const baseMeta = _phecdacore.getMergedMeta.call(void 0, instance, void 0);
|
|
261
|
+
const ctxs = baseMeta.ctxs;
|
|
262
|
+
return propertyKeys.filter((i) => typeof instance[i] === "function").map((i) => {
|
|
263
|
+
const meta = _phecdacore.getMergedMeta.call(void 0, instance, i);
|
|
264
|
+
const metaData = {
|
|
265
|
+
...meta,
|
|
266
|
+
name,
|
|
267
|
+
tag,
|
|
268
|
+
func: i
|
|
269
|
+
};
|
|
270
|
+
if (baseMeta.controller) {
|
|
271
|
+
if (typeof tag !== "string") _chunkRLFCI3RGjs.log.call(void 0, `can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
272
|
+
metaData.controller = baseMeta.controller;
|
|
273
|
+
metaData[baseMeta.controller] = {
|
|
274
|
+
...baseMeta[baseMeta.controller],
|
|
275
|
+
...meta[baseMeta.controller]
|
|
276
|
+
};
|
|
277
|
+
const params = _phecdacore.getMetaParams.call(void 0, instance, i).map((item) => _phecdacore.getMergedMeta.call(void 0, instance, i, item));
|
|
278
|
+
params.forEach((item, index) => {
|
|
279
|
+
if (!item.pipe) item.pipe = meta.pipe || baseMeta.pipe;
|
|
280
|
+
if (!item.define) item.define = {};
|
|
281
|
+
item.index = index;
|
|
282
|
+
});
|
|
283
|
+
metaData.ctxs = ctxs;
|
|
284
|
+
metaData.params = params;
|
|
285
|
+
metaData.filter = meta.filter || baseMeta.filter;
|
|
286
|
+
metaData.define = {
|
|
287
|
+
...baseMeta.define,
|
|
288
|
+
...meta.define
|
|
289
|
+
};
|
|
290
|
+
for (const item of [
|
|
291
|
+
"addons",
|
|
292
|
+
"guards"
|
|
293
|
+
]) {
|
|
294
|
+
const set = new Set(baseMeta[item]);
|
|
295
|
+
if (meta[item]) {
|
|
296
|
+
meta[item].forEach((part) => {
|
|
297
|
+
set.delete(part);
|
|
298
|
+
set.add(part);
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
metaData[item] = [
|
|
302
|
+
...set
|
|
303
|
+
];
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return new Meta(deepFreeze(metaData), getParamTypes(instance, i) || []);
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
_chunkRLFCI3RGjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
310
|
+
function deepFreeze(object) {
|
|
311
|
+
Object.freeze(object);
|
|
312
|
+
Object.getOwnPropertyNames(object).forEach((prop) => {
|
|
313
|
+
if (object[prop] !== null && (typeof object[prop] === "object" || typeof object[prop] === "function") && !Object.isFrozen(object[prop])) deepFreeze(object[prop]);
|
|
314
|
+
});
|
|
315
|
+
return object;
|
|
316
|
+
}
|
|
317
|
+
_chunkRLFCI3RGjs.__name.call(void 0, deepFreeze, "deepFreeze");
|
|
318
|
+
function getParamTypes(Model, key) {
|
|
319
|
+
const paramTypes = Reflect.getMetadata("design:paramtypes", Model, key);
|
|
320
|
+
if (typeof paramTypes === "function") return paramTypes();
|
|
321
|
+
else return paramTypes;
|
|
322
|
+
}
|
|
323
|
+
_chunkRLFCI3RGjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
|
|
333
|
+
exports.Meta = Meta; exports.emitter = emitter; exports.defaultServerInject = defaultServerInject; exports.phecdaNamespace = phecdaNamespace; exports.ServerPhecda = ServerPhecda; exports.Factory = Factory; exports.useS = useS;
|
|
334
|
+
//# sourceMappingURL=chunk-KUGU3UGO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\myproject\\phecda\\packages\\server\\dist\\chunk-KUGU3UGO.js"],"names":[],"mappings":"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C,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,UAAA;AACA,UAAA;AACA,YAAA;AACA,cAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,MAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACA,QAAA;AACA,QAAA;AACA,UAAA;AACA,QAAA;AACA,MAAA;AACA,IAAA;AACA,IAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,IAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"D:\\myproject\\phecda\\packages\\server\\dist\\chunk-KUGU3UGO.js","sourcesContent":[null]}
|