phecda-server 6.0.2 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-WXFZZZRY.mjs → chunk-2CFYUXPM.mjs} +1 -1
- package/dist/{chunk-HDQAT2IM.mjs → chunk-3H3T54IC.mjs} +116 -87
- package/dist/{chunk-7SYPUIBY.js → chunk-DVTBLV6I.js} +60 -60
- package/dist/{chunk-UXD62LGG.mjs → chunk-G7TD2VB7.mjs} +10 -2
- package/dist/{chunk-F3W3NN7F.mjs → chunk-J7B24YSE.mjs} +1 -1
- package/dist/{chunk-XCND2QW3.js → chunk-JDV2XJYE.js} +25 -25
- package/dist/chunk-NL6QBQAR.js +266 -0
- package/dist/{chunk-GHFSIZUO.js → chunk-TVT62GIX.js} +11 -3
- package/dist/core-BlN0Spy9.d.ts +47 -0
- package/dist/core-P1CsH6jz.d.mts +47 -0
- package/dist/helper.js +3 -3
- package/dist/helper.mjs +2 -2
- package/dist/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +49 -43
- package/dist/index.mjs +15 -9
- package/dist/rpc/bullmq/index.d.mts +1 -1
- package/dist/rpc/bullmq/index.d.ts +1 -1
- package/dist/rpc/bullmq/index.js +12 -12
- package/dist/rpc/bullmq/index.mjs +2 -2
- package/dist/rpc/kafka/index.d.mts +1 -1
- package/dist/rpc/kafka/index.d.ts +1 -1
- package/dist/rpc/kafka/index.js +12 -12
- package/dist/rpc/kafka/index.mjs +2 -2
- package/dist/rpc/nats/index.d.mts +1 -1
- package/dist/rpc/nats/index.d.ts +1 -1
- package/dist/rpc/nats/index.js +11 -11
- package/dist/rpc/nats/index.mjs +2 -2
- package/dist/rpc/rabbitmq/index.d.mts +1 -1
- package/dist/rpc/rabbitmq/index.d.ts +1 -1
- package/dist/rpc/rabbitmq/index.js +13 -13
- package/dist/rpc/rabbitmq/index.mjs +2 -2
- package/dist/rpc/redis/index.d.mts +1 -1
- package/dist/rpc/redis/index.d.ts +1 -1
- package/dist/rpc/redis/index.js +11 -11
- package/dist/rpc/redis/index.mjs +2 -2
- package/dist/server/elysia/index.d.mts +1 -1
- package/dist/server/elysia/index.d.ts +1 -1
- package/dist/server/elysia/index.js +36 -36
- package/dist/server/elysia/index.mjs +3 -3
- package/dist/server/express/index.d.mts +1 -1
- package/dist/server/express/index.d.ts +1 -1
- package/dist/server/express/index.js +34 -34
- package/dist/server/express/index.mjs +2 -2
- package/dist/server/fastify/index.d.mts +1 -1
- package/dist/server/fastify/index.d.ts +1 -1
- package/dist/server/fastify/index.js +35 -35
- package/dist/server/fastify/index.mjs +3 -3
- package/dist/server/h3/index.d.mts +1 -1
- package/dist/server/h3/index.d.ts +1 -1
- package/dist/server/h3/index.js +34 -34
- package/dist/server/h3/index.mjs +2 -2
- package/dist/server/hono/index.d.mts +1 -1
- package/dist/server/hono/index.d.ts +1 -1
- package/dist/server/hono/index.js +33 -33
- package/dist/server/hono/index.mjs +2 -2
- package/dist/server/hyper-express/index.d.mts +1 -1
- package/dist/server/hyper-express/index.d.ts +1 -1
- package/dist/server/hyper-express/index.js +33 -33
- package/dist/server/hyper-express/index.mjs +2 -2
- package/dist/server/koa/index.d.mts +1 -1
- package/dist/server/koa/index.d.ts +1 -1
- package/dist/server/koa/index.js +34 -34
- package/dist/server/koa/index.mjs +2 -2
- package/dist/test.d.mts +1 -1
- package/dist/test.d.ts +1 -1
- package/dist/test.js +6 -6
- package/dist/test.mjs +2 -2
- package/package.json +2 -2
- package/dist/chunk-LYEZ6RGX.js +0 -237
- package/dist/core-2SNw8m2B.d.mts +0 -30
- package/dist/core-BmJJLUqj.d.ts +0 -30
package/dist/chunk-LYEZ6RGX.js
DELETED
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } 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; }
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var _chunkGHFSIZUOjs = require('./chunk-GHFSIZUO.js');
|
|
7
|
-
|
|
8
|
-
// src/meta.ts
|
|
9
|
-
var Meta = class {
|
|
10
|
-
static {
|
|
11
|
-
_chunkGHFSIZUOjs.__name.call(void 0, this, "Meta");
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
constructor(data, paramsType) {
|
|
16
|
-
this.data = data;
|
|
17
|
-
this.paramsType = paramsType;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
// src/core.ts
|
|
22
|
-
require('reflect-metadata');
|
|
23
|
-
var _events = require('events'); var _events2 = _interopRequireDefault(_events);
|
|
24
|
-
var _phecdacore = require('phecda-core');
|
|
25
|
-
var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug);
|
|
26
|
-
var debug = _debug2.default.call(void 0, "phecda-server(createPhecda)");
|
|
27
|
-
var emitter = new (0, _events2.default)();
|
|
28
|
-
async function createPhecda(models, opts = {}) {
|
|
29
|
-
const moduleMap = /* @__PURE__ */ new Map();
|
|
30
|
-
const meta = [];
|
|
31
|
-
const modelMap = /* @__PURE__ */ new WeakMap();
|
|
32
|
-
const modelSet = /* @__PURE__ */ new WeakSet();
|
|
33
|
-
const dependenceGraph = /* @__PURE__ */ new Map();
|
|
34
|
-
const { parseModule = /* @__PURE__ */ _chunkGHFSIZUOjs.__name.call(void 0, (module) => module, "parseModule"), parseMeta = /* @__PURE__ */ _chunkGHFSIZUOjs.__name.call(void 0, (meta2) => meta2, "parseMeta"), generators } = opts;
|
|
35
|
-
if (!_phecdacore.getInject.call(void 0, "watcher")) {
|
|
36
|
-
_phecdacore.setInject.call(void 0, "watcher", ({ eventName, instance, property, options }) => {
|
|
37
|
-
const fn = typeof instance[property] === "function" ? instance[property].bind(instance) : (v) => instance[property] = v;
|
|
38
|
-
if (_optionalChain([options, 'optionalAccess', _ => _.once])) emitter.once(eventName, fn);
|
|
39
|
-
else emitter.on(eventName, fn);
|
|
40
|
-
return () => {
|
|
41
|
-
emitter.off(eventName, fn);
|
|
42
|
-
};
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
async function del(tag) {
|
|
46
|
-
if (!moduleMap.has(tag)) return;
|
|
47
|
-
const module = moduleMap.get(tag);
|
|
48
|
-
debug(`unmount module "${String(tag)}"`);
|
|
49
|
-
await _phecdacore.invokeUnmount.call(void 0, module);
|
|
50
|
-
debug(`del module "${String(tag)}"`);
|
|
51
|
-
moduleMap.delete(tag);
|
|
52
|
-
modelMap.delete(module);
|
|
53
|
-
for (let i = meta.length - 1; i >= 0; i--) {
|
|
54
|
-
if (meta[i].data.tag === tag) meta.splice(i, 1);
|
|
55
|
-
}
|
|
56
|
-
return module;
|
|
57
|
-
}
|
|
58
|
-
_chunkGHFSIZUOjs.__name.call(void 0, del, "del");
|
|
59
|
-
async function destroy() {
|
|
60
|
-
debug("destroy all");
|
|
61
|
-
for (const [tag] of moduleMap) await del(tag);
|
|
62
|
-
}
|
|
63
|
-
_chunkGHFSIZUOjs.__name.call(void 0, destroy, "destroy");
|
|
64
|
-
async function add(Model) {
|
|
65
|
-
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
66
|
-
const oldInstance = await del(tag);
|
|
67
|
-
const { module: newModule } = await buildDepModule(Model);
|
|
68
|
-
if (oldInstance && dependenceGraph.has(tag)) {
|
|
69
|
-
debug(`replace module "${String(tag)}"`);
|
|
70
|
-
[
|
|
71
|
-
...dependenceGraph.get(tag)
|
|
72
|
-
].forEach((tag2) => {
|
|
73
|
-
const module = moduleMap.get(tag2);
|
|
74
|
-
for (const key in module) {
|
|
75
|
-
if (module[key] === oldInstance) module[key] = newModule;
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
_chunkGHFSIZUOjs.__name.call(void 0, add, "add");
|
|
81
|
-
async function buildDepModule(Model) {
|
|
82
|
-
const paramtypes = getParamTypes(Model);
|
|
83
|
-
let module;
|
|
84
|
-
const tag = _phecdacore.getTag.call(void 0, Model);
|
|
85
|
-
if (moduleMap.has(tag)) {
|
|
86
|
-
module = moduleMap.get(tag);
|
|
87
|
-
if (!module) throw new Error(`exist Circular-Dependency or Multiple modules with the same name/tag [tag] ${String(tag)}--[module] ${Model}`);
|
|
88
|
-
if (modelMap.get(module) !== Model && !modelSet.has(Model)) {
|
|
89
|
-
modelSet.add(Model);
|
|
90
|
-
if (module instanceof Model) _chunkGHFSIZUOjs.log.call(void 0, `Module taged ${String(tag)} has been overridden`);
|
|
91
|
-
else _chunkGHFSIZUOjs.log.call(void 0, `Synonym module: Module taged "${String(tag)}" has been loaded before, so phecda-server won't load Module "${Model.name}"`, "warn");
|
|
92
|
-
}
|
|
93
|
-
return {
|
|
94
|
-
module,
|
|
95
|
-
tag
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
moduleMap.set(tag, void 0);
|
|
99
|
-
debug(`instantiate module "${String(tag)}"`);
|
|
100
|
-
if (paramtypes) {
|
|
101
|
-
const paramtypesInstances = [];
|
|
102
|
-
for (const i in paramtypes) {
|
|
103
|
-
const { module: sub, tag: subTag } = await buildDepModule(paramtypes[i]);
|
|
104
|
-
paramtypesInstances[i] = sub;
|
|
105
|
-
if (!dependenceGraph.has(subTag)) dependenceGraph.set(subTag, /* @__PURE__ */ new Set());
|
|
106
|
-
dependenceGraph.get(subTag).add(tag);
|
|
107
|
-
}
|
|
108
|
-
module = parseModule(new Model(...paramtypesInstances));
|
|
109
|
-
} else {
|
|
110
|
-
module = parseModule(new Model());
|
|
111
|
-
}
|
|
112
|
-
meta.push(...getMetaFromInstance(module, tag, Model.name).map(parseMeta).filter((item) => !!item));
|
|
113
|
-
debug(`init module "${String(tag)}"`);
|
|
114
|
-
if (!_chunkGHFSIZUOjs.IS_ONLY_GENERATE) await _phecdacore.invokeInit.call(void 0, module);
|
|
115
|
-
debug(`add module "${String(tag)}"`);
|
|
116
|
-
moduleMap.set(tag, module);
|
|
117
|
-
modelMap.set(module, Model);
|
|
118
|
-
return {
|
|
119
|
-
module,
|
|
120
|
-
tag
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
_chunkGHFSIZUOjs.__name.call(void 0, buildDepModule, "buildDepModule");
|
|
124
|
-
for (const model of models) await buildDepModule(model);
|
|
125
|
-
async function generateCode() {
|
|
126
|
-
if (generators && _chunkGHFSIZUOjs.IS_HMR) {
|
|
127
|
-
return Promise.all(generators.map((generator) => {
|
|
128
|
-
debug(`generate "${generator.name}" code to ${generator.path}`);
|
|
129
|
-
return generator.output(meta);
|
|
130
|
-
}));
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
_chunkGHFSIZUOjs.__name.call(void 0, generateCode, "generateCode");
|
|
134
|
-
generateCode().then(() => {
|
|
135
|
-
if (_chunkGHFSIZUOjs.IS_ONLY_GENERATE) process.exit(4);
|
|
136
|
-
});
|
|
137
|
-
if (_chunkGHFSIZUOjs.IS_HMR) {
|
|
138
|
-
if (!globalThis.__PS_HMR__) globalThis.__PS_HMR__ = [];
|
|
139
|
-
_optionalChain([globalThis, 'access', _2 => _2.__PS_HMR__, 'optionalAccess', _3 => _3.push, 'call', _4 => _4(async (files) => {
|
|
140
|
-
debug("reload files ");
|
|
141
|
-
for (const file of files) {
|
|
142
|
-
const models2 = await Promise.resolve().then(() => _interopRequireWildcard(require(file)));
|
|
143
|
-
for (const i in models2) {
|
|
144
|
-
if (_phecdacore.isPhecda.call(void 0, models2[i])) await add(models2[i]);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
generateCode();
|
|
148
|
-
})]);
|
|
149
|
-
}
|
|
150
|
-
return {
|
|
151
|
-
moduleMap,
|
|
152
|
-
modelMap,
|
|
153
|
-
meta,
|
|
154
|
-
add,
|
|
155
|
-
del,
|
|
156
|
-
destroy
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
_chunkGHFSIZUOjs.__name.call(void 0, createPhecda, "createPhecda");
|
|
160
|
-
var Factory = createPhecda;
|
|
161
|
-
function getMetaFromInstance(instance, tag, name) {
|
|
162
|
-
const propertyKeys = _phecdacore.getMetaKey.call(void 0, instance).filter((item) => typeof item === "string");
|
|
163
|
-
const baseMeta = _phecdacore.getMergedMeta.call(void 0, instance, void 0);
|
|
164
|
-
const ctxs = baseMeta.ctxs;
|
|
165
|
-
return propertyKeys.filter((i) => typeof instance[i] === "function").map((i) => {
|
|
166
|
-
const meta = _phecdacore.getMergedMeta.call(void 0, instance, i);
|
|
167
|
-
const metaData = {
|
|
168
|
-
...meta,
|
|
169
|
-
name,
|
|
170
|
-
tag,
|
|
171
|
-
func: i
|
|
172
|
-
};
|
|
173
|
-
if (baseMeta.controller) {
|
|
174
|
-
if (typeof tag !== "string") _chunkGHFSIZUOjs.log.call(void 0, `can't use Tag with ${typeof tag} on controller "${instance.constructor.name}",instead with "${tag = String(tag)}"`, "error");
|
|
175
|
-
metaData.controller = baseMeta.controller;
|
|
176
|
-
metaData[baseMeta.controller] = {
|
|
177
|
-
...baseMeta[baseMeta.controller],
|
|
178
|
-
...meta[baseMeta.controller]
|
|
179
|
-
};
|
|
180
|
-
const params = _phecdacore.getMetaParams.call(void 0, instance, i).map((item) => _phecdacore.getMergedMeta.call(void 0, instance, i, item));
|
|
181
|
-
params.forEach((item, index) => {
|
|
182
|
-
if (!item.pipe) item.pipe = meta.pipe || baseMeta.pipe;
|
|
183
|
-
if (!item.define) item.define = {};
|
|
184
|
-
item.index = index;
|
|
185
|
-
});
|
|
186
|
-
metaData.ctxs = ctxs;
|
|
187
|
-
metaData.params = params;
|
|
188
|
-
metaData.filter = meta.filter || baseMeta.filter;
|
|
189
|
-
metaData.define = {
|
|
190
|
-
...baseMeta.define,
|
|
191
|
-
...meta.define
|
|
192
|
-
};
|
|
193
|
-
for (const item of [
|
|
194
|
-
"plugins",
|
|
195
|
-
"guards",
|
|
196
|
-
"interceptors"
|
|
197
|
-
]) {
|
|
198
|
-
const set = new Set(baseMeta[item]);
|
|
199
|
-
if (meta[item]) {
|
|
200
|
-
meta[item].forEach((part) => {
|
|
201
|
-
set.delete(part);
|
|
202
|
-
set.add(part);
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
metaData[item] = [
|
|
206
|
-
...set
|
|
207
|
-
];
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
return new Meta(deepFreeze(metaData), getParamTypes(instance, i) || []);
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
_chunkGHFSIZUOjs.__name.call(void 0, getMetaFromInstance, "getMetaFromInstance");
|
|
214
|
-
function deepFreeze(object) {
|
|
215
|
-
Object.freeze(object);
|
|
216
|
-
Object.getOwnPropertyNames(object).forEach((prop) => {
|
|
217
|
-
if (object[prop] !== null && (typeof object[prop] === "object" || typeof object[prop] === "function") && !Object.isFrozen(object[prop])) deepFreeze(object[prop]);
|
|
218
|
-
});
|
|
219
|
-
return object;
|
|
220
|
-
}
|
|
221
|
-
_chunkGHFSIZUOjs.__name.call(void 0, deepFreeze, "deepFreeze");
|
|
222
|
-
function getParamTypes(Model, key) {
|
|
223
|
-
return Reflect.getMetadata("design:paramtypes", Model, key);
|
|
224
|
-
}
|
|
225
|
-
_chunkGHFSIZUOjs.__name.call(void 0, getParamTypes, "getParamTypes");
|
|
226
|
-
function isObject(o) {
|
|
227
|
-
return Object.prototype.toString.call(o) === "[object Object]";
|
|
228
|
-
}
|
|
229
|
-
_chunkGHFSIZUOjs.__name.call(void 0, isObject, "isObject");
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
exports.Meta = Meta; exports.emitter = emitter; exports.createPhecda = createPhecda; exports.Factory = Factory; exports.isObject = isObject;
|
package/dist/core-2SNw8m2B.d.mts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Construct } from 'phecda-core';
|
|
2
|
-
import { b as MetaData, M as Meta, E as Emitter } from './meta-KtfiBIde.mjs';
|
|
3
|
-
|
|
4
|
-
declare abstract class Generator {
|
|
5
|
-
private _path;
|
|
6
|
-
constructor(path?: string);
|
|
7
|
-
abstract name: string;
|
|
8
|
-
get path(): string;
|
|
9
|
-
abstract generateCode(meta: MetaData[]): string;
|
|
10
|
-
output(meta: Meta[]): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
declare const emitter: Emitter;
|
|
14
|
-
interface Options {
|
|
15
|
-
parseModule?: (module: any) => any;
|
|
16
|
-
parseMeta?: (meta: Meta) => Meta | null | undefined;
|
|
17
|
-
generators?: Generator[];
|
|
18
|
-
}
|
|
19
|
-
declare function createPhecda(models: Construct[], opts?: Options): Promise<{
|
|
20
|
-
moduleMap: Map<PropertyKey, any>;
|
|
21
|
-
modelMap: WeakMap<any, Construct>;
|
|
22
|
-
meta: Meta[];
|
|
23
|
-
add: (Model: Construct) => Promise<void>;
|
|
24
|
-
del: (tag: PropertyKey) => Promise<any>;
|
|
25
|
-
destroy: () => Promise<void>;
|
|
26
|
-
}>;
|
|
27
|
-
declare const Factory: typeof createPhecda;
|
|
28
|
-
declare function isObject(o: any): boolean;
|
|
29
|
-
|
|
30
|
-
export { Factory as F, Generator as G, type Options as O, createPhecda as c, emitter as e, isObject as i };
|
package/dist/core-BmJJLUqj.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Construct } from 'phecda-core';
|
|
2
|
-
import { b as MetaData, M as Meta, E as Emitter } from './meta-KtfiBIde.js';
|
|
3
|
-
|
|
4
|
-
declare abstract class Generator {
|
|
5
|
-
private _path;
|
|
6
|
-
constructor(path?: string);
|
|
7
|
-
abstract name: string;
|
|
8
|
-
get path(): string;
|
|
9
|
-
abstract generateCode(meta: MetaData[]): string;
|
|
10
|
-
output(meta: Meta[]): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
declare const emitter: Emitter;
|
|
14
|
-
interface Options {
|
|
15
|
-
parseModule?: (module: any) => any;
|
|
16
|
-
parseMeta?: (meta: Meta) => Meta | null | undefined;
|
|
17
|
-
generators?: Generator[];
|
|
18
|
-
}
|
|
19
|
-
declare function createPhecda(models: Construct[], opts?: Options): Promise<{
|
|
20
|
-
moduleMap: Map<PropertyKey, any>;
|
|
21
|
-
modelMap: WeakMap<any, Construct>;
|
|
22
|
-
meta: Meta[];
|
|
23
|
-
add: (Model: Construct) => Promise<void>;
|
|
24
|
-
del: (tag: PropertyKey) => Promise<any>;
|
|
25
|
-
destroy: () => Promise<void>;
|
|
26
|
-
}>;
|
|
27
|
-
declare const Factory: typeof createPhecda;
|
|
28
|
-
declare function isObject(o: any): boolean;
|
|
29
|
-
|
|
30
|
-
export { Factory as F, Generator as G, type Options as O, createPhecda as c, emitter as e, isObject as i };
|