@akanjs/server 0.0.97 → 0.0.99

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/src/module.cjs ADDED
@@ -0,0 +1,255 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var __decorateClass = (decorators, target, key, kind) => {
19
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
20
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
21
+ if (decorator = decorators[i])
22
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
23
+ if (kind && result)
24
+ __defProp(target, key, result);
25
+ return result;
26
+ };
27
+ var module_exports = {};
28
+ __export(module_exports, {
29
+ batchModuleOf: () => batchModuleOf,
30
+ databaseModuleOf: () => databaseModuleOf,
31
+ scalarModuleOf: () => scalarModuleOf,
32
+ scalarModulesOf: () => scalarModulesOf,
33
+ serviceModuleOf: () => serviceModuleOf,
34
+ useGlobals: () => useGlobals
35
+ });
36
+ module.exports = __toCommonJS(module_exports);
37
+ var import_common = require("@akanjs/common");
38
+ var import_constant = require("@akanjs/constant");
39
+ var import_document = require("@akanjs/document");
40
+ var import_service = require("@akanjs/service");
41
+ var import_signal = require("@akanjs/signal");
42
+ var import_bull = require("@nestjs/bull");
43
+ var import_common2 = require("@nestjs/common");
44
+ var import_mongoose = require("@nestjs/mongoose");
45
+ var import_controller = require("./controller");
46
+ var import_processor = require("./processor");
47
+ var import_resolver = require("./resolver");
48
+ var import_schema = require("./schema");
49
+ var import_websocket = require("./websocket");
50
+ const hasWebsocket = (signal) => (0, import_signal.getGqlMetas)(signal).some((gqlMeta) => ["Message", "Pubsub"].includes(gqlMeta.type));
51
+ const hasProcessor = (signal) => (0, import_signal.getGqlMetas)(signal).some((gqlMeta) => gqlMeta.type === "Process");
52
+ const filterSrvs = (srvs) => Object.fromEntries(Object.entries(srvs).filter(([_, srv]) => !!srv));
53
+ const databaseModuleOf = ({
54
+ constant,
55
+ database,
56
+ signal,
57
+ service,
58
+ uses = {},
59
+ useAsyncs = {},
60
+ providers = [],
61
+ extended
62
+ }, allSrvs) => {
63
+ if (!(0, import_service.isServiceEnabled)(service))
64
+ return null;
65
+ const [modelName, className] = [(0, import_common.lowerlize)(constant.refName), (0, import_common.capitalize)(constant.refName)];
66
+ const mongoToken = (0, import_mongoose.getModelToken)(className);
67
+ let DatabaseModule = class {
68
+ };
69
+ DatabaseModule = __decorateClass([
70
+ (0, import_common2.Global)(),
71
+ (0, import_common2.Module)({
72
+ imports: [
73
+ import_mongoose.MongooseModule.forFeature([
74
+ {
75
+ name: className,
76
+ schema: extended ? (0, import_schema.addSchema)(database.Model, database.Doc, database.Input, database.Middleware) : (0, import_schema.schemaOf)(database.Model, database.Doc, database.Middleware)
77
+ }
78
+ ]),
79
+ ...hasProcessor(signal) ? [
80
+ import_bull.BullModule.registerQueue({
81
+ name: modelName,
82
+ defaultJobOptions: { removeOnComplete: true, removeOnFail: true }
83
+ })
84
+ ] : []
85
+ ],
86
+ providers: [
87
+ (0, import_service.serviceOf)(service),
88
+ (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)),
89
+ ...hasProcessor(signal) ? [
90
+ (0, import_processor.processorOf)(signal, filterSrvs(allSrvs)),
91
+ { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [(0, import_bull.getQueueToken)(modelName)] }
92
+ ] : [],
93
+ ...hasWebsocket(signal) ? [(0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }] : [],
94
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
95
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
96
+ {
97
+ provide: `${modelName}Model`,
98
+ useFactory: (model, redis, meili) => {
99
+ return (0, import_document.databaseModelOf)(database, model, redis, meili);
100
+ },
101
+ inject: [mongoToken, "REDIS_CLIENT", "MEILI_CLIENT"]
102
+ },
103
+ ...providers
104
+ ],
105
+ controllers: [(0, import_controller.controllerOf)(signal, filterSrvs(allSrvs))],
106
+ exports: [service]
107
+ })
108
+ ], DatabaseModule);
109
+ return DatabaseModule;
110
+ };
111
+ const serviceModuleOf = ({ signal, service, uses = {}, useAsyncs = {}, providers = [] }, allSrvs) => {
112
+ if (!(0, import_service.isServiceEnabled)(service))
113
+ return null;
114
+ const sigMeta = (0, import_signal.getSigMeta)(signal);
115
+ const [modelName, className] = [(0, import_common.lowerlize)(sigMeta.refName), (0, import_common.capitalize)(sigMeta.refName)];
116
+ let ServiceModule = class {
117
+ };
118
+ ServiceModule = __decorateClass([
119
+ (0, import_common2.Global)(),
120
+ (0, import_common2.Module)({
121
+ imports: [
122
+ ...hasProcessor(signal) ? [
123
+ import_bull.BullModule.registerQueue({
124
+ name: modelName,
125
+ defaultJobOptions: { removeOnComplete: true, removeOnFail: true }
126
+ })
127
+ ] : []
128
+ ],
129
+ providers: [
130
+ (0, import_service.serviceOf)(service),
131
+ (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)),
132
+ ...hasWebsocket(signal) ? [(0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }] : [],
133
+ ...hasProcessor(signal) ? [
134
+ (0, import_processor.processorOf)(signal, filterSrvs(allSrvs)),
135
+ { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [(0, import_bull.getQueueToken)(modelName)] }
136
+ ] : [],
137
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
138
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
139
+ ...providers
140
+ ],
141
+ controllers: [(0, import_controller.controllerOf)(signal, filterSrvs(allSrvs))],
142
+ exports: [service]
143
+ })
144
+ ], ServiceModule);
145
+ return ServiceModule;
146
+ };
147
+ const scalarModuleOf = ({ signals, uses = {}, useAsyncs = {}, providers = [], enabled = true }, allSrvs) => {
148
+ if (!enabled)
149
+ return null;
150
+ let ScalarModule = class {
151
+ };
152
+ ScalarModule = __decorateClass([
153
+ (0, import_common2.Global)(),
154
+ (0, import_common2.Module)({
155
+ imports: [],
156
+ providers: [
157
+ ...signals.map((signal) => (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs))),
158
+ ...signals.filter(hasWebsocket).map((signal) => [
159
+ (0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)),
160
+ { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }
161
+ ]).flat(),
162
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
163
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
164
+ ...providers
165
+ ],
166
+ controllers: signals.map((signal) => (0, import_controller.controllerOf)(signal, filterSrvs(allSrvs)))
167
+ })
168
+ ], ScalarModule);
169
+ return ScalarModule;
170
+ };
171
+ const scalarModulesOf = ({ constants }, allSrvs) => {
172
+ const signals = constants.filter((modelRef) => {
173
+ const childRefs = (0, import_constant.getChildClassRefs)(modelRef);
174
+ return childRefs.some((childRef) => {
175
+ const classMeta = (0, import_constant.getClassMeta)(childRef);
176
+ return ["full", "light"].includes(classMeta.type);
177
+ });
178
+ }).map((modelRef) => {
179
+ let ScalarSignal = class extends (0, import_signal.LogSignal)({}) {
180
+ };
181
+ ScalarSignal = __decorateClass([
182
+ (0, import_signal.Signal)(() => modelRef)
183
+ ], ScalarSignal);
184
+ return ScalarSignal;
185
+ });
186
+ let ScalarModule = class {
187
+ };
188
+ ScalarModule = __decorateClass([
189
+ (0, import_common2.Global)(),
190
+ (0, import_common2.Module)({
191
+ imports: [],
192
+ providers: [...signals.map((signal) => (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)))]
193
+ // controllers: signals.map((signal) => controllerOf(signal, filterSrvs(allSrvs))),
194
+ })
195
+ ], ScalarModule);
196
+ return ScalarModule;
197
+ };
198
+ const batchModuleOf = ({
199
+ service,
200
+ uses = {},
201
+ useAsyncs = {},
202
+ providers = []
203
+ }) => {
204
+ if (!(0, import_service.isServiceEnabled)(service))
205
+ return null;
206
+ let BatchModule = class {
207
+ };
208
+ BatchModule = __decorateClass([
209
+ (0, import_common2.Global)(),
210
+ (0, import_common2.Module)({
211
+ imports: [],
212
+ providers: [
213
+ (0, import_service.serviceOf)(service),
214
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
215
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
216
+ ...providers
217
+ ],
218
+ exports: [service]
219
+ })
220
+ ], BatchModule);
221
+ return BatchModule;
222
+ };
223
+ const useGlobals = ({ uses, useAsyncs, injects }) => {
224
+ let GlobalsModule = class {
225
+ };
226
+ GlobalsModule = __decorateClass([
227
+ (0, import_common2.Global)(),
228
+ (0, import_common2.Module)({
229
+ imports: [],
230
+ providers: [
231
+ ...Object.entries(uses ?? {}).map(([key, useValue]) => ({
232
+ provide: (0, import_common.capitalize)(key),
233
+ useValue
234
+ })),
235
+ ...Object.entries(useAsyncs ?? {}).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
236
+ ...Object.entries(injects ?? {}).map(([key, inject]) => ({ provide: (0, import_common.capitalize)(key), useClass: inject }))
237
+ ],
238
+ exports: [
239
+ ...Object.keys(uses ?? {}).map((key) => (0, import_common.capitalize)(key)),
240
+ ...Object.keys(useAsyncs ?? {}).map((key) => (0, import_common.capitalize)(key)),
241
+ ...Object.keys(injects ?? {}).map((key) => (0, import_common.capitalize)(key))
242
+ ]
243
+ })
244
+ ], GlobalsModule);
245
+ return GlobalsModule;
246
+ };
247
+ // Annotate the CommonJS export names for ESM import in node:
248
+ 0 && (module.exports = {
249
+ batchModuleOf,
250
+ databaseModuleOf,
251
+ scalarModuleOf,
252
+ scalarModulesOf,
253
+ serviceModuleOf,
254
+ useGlobals
255
+ });
package/src/module.js CHANGED
@@ -1,20 +1,5 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
3
  var __decorateClass = (decorators, target, key, kind) => {
19
4
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
20
5
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -24,31 +9,21 @@ var __decorateClass = (decorators, target, key, kind) => {
24
9
  __defProp(target, key, result);
25
10
  return result;
26
11
  };
27
- var module_exports = {};
28
- __export(module_exports, {
29
- batchModuleOf: () => batchModuleOf,
30
- databaseModuleOf: () => databaseModuleOf,
31
- scalarModuleOf: () => scalarModuleOf,
32
- scalarModulesOf: () => scalarModulesOf,
33
- serviceModuleOf: () => serviceModuleOf,
34
- useGlobals: () => useGlobals
35
- });
36
- module.exports = __toCommonJS(module_exports);
37
- var import_common = require("@akanjs/common");
38
- var import_constant = require("@akanjs/constant");
39
- var import_document = require("@akanjs/document");
40
- var import_service = require("@akanjs/service");
41
- var import_signal = require("@akanjs/signal");
42
- var import_bull = require("@nestjs/bull");
43
- var import_common2 = require("@nestjs/common");
44
- var import_mongoose = require("@nestjs/mongoose");
45
- var import_controller = require("./controller");
46
- var import_processor = require("./processor");
47
- var import_resolver = require("./resolver");
48
- var import_schema = require("./schema");
49
- var import_websocket = require("./websocket");
50
- const hasWebsocket = (signal) => (0, import_signal.getGqlMetas)(signal).some((gqlMeta) => ["Message", "Pubsub"].includes(gqlMeta.type));
51
- const hasProcessor = (signal) => (0, import_signal.getGqlMetas)(signal).some((gqlMeta) => gqlMeta.type === "Process");
12
+ import { capitalize, lowerlize } from "@akanjs/common";
13
+ import { getChildClassRefs, getClassMeta } from "@akanjs/constant";
14
+ import { databaseModelOf } from "@akanjs/document";
15
+ import { isServiceEnabled, serviceOf } from "@akanjs/service";
16
+ import { getGqlMetas, getSigMeta, LogSignal, Signal } from "@akanjs/signal";
17
+ import { BullModule, getQueueToken } from "@nestjs/bull";
18
+ import { Global, Module } from "@nestjs/common";
19
+ import { getModelToken, MongooseModule } from "@nestjs/mongoose";
20
+ import { controllerOf } from "./controller";
21
+ import { processorOf } from "./processor";
22
+ import { resolverOf } from "./resolver";
23
+ import { addSchema, schemaOf } from "./schema";
24
+ import { websocketOf, websocketServerOf } from "./websocket";
25
+ const hasWebsocket = (signal) => getGqlMetas(signal).some((gqlMeta) => ["Message", "Pubsub"].includes(gqlMeta.type));
26
+ const hasProcessor = (signal) => getGqlMetas(signal).some((gqlMeta) => gqlMeta.type === "Process");
52
27
  const filterSrvs = (srvs) => Object.fromEntries(Object.entries(srvs).filter(([_, srv]) => !!srv));
53
28
  const databaseModuleOf = ({
54
29
  constant,
@@ -60,85 +35,85 @@ const databaseModuleOf = ({
60
35
  providers = [],
61
36
  extended
62
37
  }, allSrvs) => {
63
- if (!(0, import_service.isServiceEnabled)(service))
38
+ if (!isServiceEnabled(service))
64
39
  return null;
65
- const [modelName, className] = [(0, import_common.lowerlize)(constant.refName), (0, import_common.capitalize)(constant.refName)];
66
- const mongoToken = (0, import_mongoose.getModelToken)(className);
40
+ const [modelName, className] = [lowerlize(constant.refName), capitalize(constant.refName)];
41
+ const mongoToken = getModelToken(className);
67
42
  let DatabaseModule = class {
68
43
  };
69
44
  DatabaseModule = __decorateClass([
70
- (0, import_common2.Global)(),
71
- (0, import_common2.Module)({
45
+ Global(),
46
+ Module({
72
47
  imports: [
73
- import_mongoose.MongooseModule.forFeature([
48
+ MongooseModule.forFeature([
74
49
  {
75
50
  name: className,
76
- schema: extended ? (0, import_schema.addSchema)(database.Model, database.Doc, database.Input, database.Middleware) : (0, import_schema.schemaOf)(database.Model, database.Doc, database.Middleware)
51
+ schema: extended ? addSchema(database.Model, database.Doc, database.Input, database.Middleware) : schemaOf(database.Model, database.Doc, database.Middleware)
77
52
  }
78
53
  ]),
79
54
  ...hasProcessor(signal) ? [
80
- import_bull.BullModule.registerQueue({
55
+ BullModule.registerQueue({
81
56
  name: modelName,
82
57
  defaultJobOptions: { removeOnComplete: true, removeOnFail: true }
83
58
  })
84
59
  ] : []
85
60
  ],
86
61
  providers: [
87
- (0, import_service.serviceOf)(service),
88
- (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)),
62
+ serviceOf(service),
63
+ resolverOf(signal, filterSrvs(allSrvs)),
89
64
  ...hasProcessor(signal) ? [
90
- (0, import_processor.processorOf)(signal, filterSrvs(allSrvs)),
91
- { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [(0, import_bull.getQueueToken)(modelName)] }
65
+ processorOf(signal, filterSrvs(allSrvs)),
66
+ { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [getQueueToken(modelName)] }
92
67
  ] : [],
93
- ...hasWebsocket(signal) ? [(0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }] : [],
94
- ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
95
- ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
68
+ ...hasWebsocket(signal) ? [websocketOf(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: websocketServerOf(signal) }] : [],
69
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: capitalize(key), useValue })),
70
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: capitalize(key), useFactory })),
96
71
  {
97
72
  provide: `${modelName}Model`,
98
73
  useFactory: (model, redis, meili) => {
99
- return (0, import_document.databaseModelOf)(database, model, redis, meili);
74
+ return databaseModelOf(database, model, redis, meili);
100
75
  },
101
76
  inject: [mongoToken, "REDIS_CLIENT", "MEILI_CLIENT"]
102
77
  },
103
78
  ...providers
104
79
  ],
105
- controllers: [(0, import_controller.controllerOf)(signal, filterSrvs(allSrvs))],
80
+ controllers: [controllerOf(signal, filterSrvs(allSrvs))],
106
81
  exports: [service]
107
82
  })
108
83
  ], DatabaseModule);
109
84
  return DatabaseModule;
110
85
  };
111
86
  const serviceModuleOf = ({ signal, service, uses = {}, useAsyncs = {}, providers = [] }, allSrvs) => {
112
- if (!(0, import_service.isServiceEnabled)(service))
87
+ if (!isServiceEnabled(service))
113
88
  return null;
114
- const sigMeta = (0, import_signal.getSigMeta)(signal);
115
- const [modelName, className] = [(0, import_common.lowerlize)(sigMeta.refName), (0, import_common.capitalize)(sigMeta.refName)];
89
+ const sigMeta = getSigMeta(signal);
90
+ const [modelName, className] = [lowerlize(sigMeta.refName), capitalize(sigMeta.refName)];
116
91
  let ServiceModule = class {
117
92
  };
118
93
  ServiceModule = __decorateClass([
119
- (0, import_common2.Global)(),
120
- (0, import_common2.Module)({
94
+ Global(),
95
+ Module({
121
96
  imports: [
122
97
  ...hasProcessor(signal) ? [
123
- import_bull.BullModule.registerQueue({
98
+ BullModule.registerQueue({
124
99
  name: modelName,
125
100
  defaultJobOptions: { removeOnComplete: true, removeOnFail: true }
126
101
  })
127
102
  ] : []
128
103
  ],
129
104
  providers: [
130
- (0, import_service.serviceOf)(service),
131
- (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)),
132
- ...hasWebsocket(signal) ? [(0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }] : [],
105
+ serviceOf(service),
106
+ resolverOf(signal, filterSrvs(allSrvs)),
107
+ ...hasWebsocket(signal) ? [websocketOf(signal, filterSrvs(allSrvs)), { provide: "Websocket", useClass: websocketServerOf(signal) }] : [],
133
108
  ...hasProcessor(signal) ? [
134
- (0, import_processor.processorOf)(signal, filterSrvs(allSrvs)),
135
- { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [(0, import_bull.getQueueToken)(modelName)] }
109
+ processorOf(signal, filterSrvs(allSrvs)),
110
+ { provide: `${className}Queue`, useFactory: (queue) => queue, inject: [getQueueToken(modelName)] }
136
111
  ] : [],
137
- ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
138
- ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
112
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: capitalize(key), useValue })),
113
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: capitalize(key), useFactory })),
139
114
  ...providers
140
115
  ],
141
- controllers: [(0, import_controller.controllerOf)(signal, filterSrvs(allSrvs))],
116
+ controllers: [controllerOf(signal, filterSrvs(allSrvs))],
142
117
  exports: [service]
143
118
  })
144
119
  ], ServiceModule);
@@ -150,46 +125,46 @@ const scalarModuleOf = ({ signals, uses = {}, useAsyncs = {}, providers = [], en
150
125
  let ScalarModule = class {
151
126
  };
152
127
  ScalarModule = __decorateClass([
153
- (0, import_common2.Global)(),
154
- (0, import_common2.Module)({
128
+ Global(),
129
+ Module({
155
130
  imports: [],
156
131
  providers: [
157
- ...signals.map((signal) => (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs))),
132
+ ...signals.map((signal) => resolverOf(signal, filterSrvs(allSrvs))),
158
133
  ...signals.filter(hasWebsocket).map((signal) => [
159
- (0, import_websocket.websocketOf)(signal, filterSrvs(allSrvs)),
160
- { provide: "Websocket", useClass: (0, import_websocket.websocketServerOf)(signal) }
134
+ websocketOf(signal, filterSrvs(allSrvs)),
135
+ { provide: "Websocket", useClass: websocketServerOf(signal) }
161
136
  ]).flat(),
162
- ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
163
- ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
137
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: capitalize(key), useValue })),
138
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: capitalize(key), useFactory })),
164
139
  ...providers
165
140
  ],
166
- controllers: signals.map((signal) => (0, import_controller.controllerOf)(signal, filterSrvs(allSrvs)))
141
+ controllers: signals.map((signal) => controllerOf(signal, filterSrvs(allSrvs)))
167
142
  })
168
143
  ], ScalarModule);
169
144
  return ScalarModule;
170
145
  };
171
146
  const scalarModulesOf = ({ constants }, allSrvs) => {
172
147
  const signals = constants.filter((modelRef) => {
173
- const childRefs = (0, import_constant.getChildClassRefs)(modelRef);
148
+ const childRefs = getChildClassRefs(modelRef);
174
149
  return childRefs.some((childRef) => {
175
- const classMeta = (0, import_constant.getClassMeta)(childRef);
150
+ const classMeta = getClassMeta(childRef);
176
151
  return ["full", "light"].includes(classMeta.type);
177
152
  });
178
153
  }).map((modelRef) => {
179
- let ScalarSignal = class extends (0, import_signal.LogSignal)({}) {
154
+ let ScalarSignal = class extends LogSignal({}) {
180
155
  };
181
156
  ScalarSignal = __decorateClass([
182
- (0, import_signal.Signal)(() => modelRef)
157
+ Signal(() => modelRef)
183
158
  ], ScalarSignal);
184
159
  return ScalarSignal;
185
160
  });
186
161
  let ScalarModule = class {
187
162
  };
188
163
  ScalarModule = __decorateClass([
189
- (0, import_common2.Global)(),
190
- (0, import_common2.Module)({
164
+ Global(),
165
+ Module({
191
166
  imports: [],
192
- providers: [...signals.map((signal) => (0, import_resolver.resolverOf)(signal, filterSrvs(allSrvs)))]
167
+ providers: [...signals.map((signal) => resolverOf(signal, filterSrvs(allSrvs)))]
193
168
  // controllers: signals.map((signal) => controllerOf(signal, filterSrvs(allSrvs))),
194
169
  })
195
170
  ], ScalarModule);
@@ -201,18 +176,18 @@ const batchModuleOf = ({
201
176
  useAsyncs = {},
202
177
  providers = []
203
178
  }) => {
204
- if (!(0, import_service.isServiceEnabled)(service))
179
+ if (!isServiceEnabled(service))
205
180
  return null;
206
181
  let BatchModule = class {
207
182
  };
208
183
  BatchModule = __decorateClass([
209
- (0, import_common2.Global)(),
210
- (0, import_common2.Module)({
184
+ Global(),
185
+ Module({
211
186
  imports: [],
212
187
  providers: [
213
- (0, import_service.serviceOf)(service),
214
- ...Object.entries(uses).map(([key, useValue]) => ({ provide: (0, import_common.capitalize)(key), useValue })),
215
- ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
188
+ serviceOf(service),
189
+ ...Object.entries(uses).map(([key, useValue]) => ({ provide: capitalize(key), useValue })),
190
+ ...Object.entries(useAsyncs).map(([key, useFactory]) => ({ provide: capitalize(key), useFactory })),
216
191
  ...providers
217
192
  ],
218
193
  exports: [service]
@@ -224,32 +199,31 @@ const useGlobals = ({ uses, useAsyncs, injects }) => {
224
199
  let GlobalsModule = class {
225
200
  };
226
201
  GlobalsModule = __decorateClass([
227
- (0, import_common2.Global)(),
228
- (0, import_common2.Module)({
202
+ Global(),
203
+ Module({
229
204
  imports: [],
230
205
  providers: [
231
206
  ...Object.entries(uses ?? {}).map(([key, useValue]) => ({
232
- provide: (0, import_common.capitalize)(key),
207
+ provide: capitalize(key),
233
208
  useValue
234
209
  })),
235
- ...Object.entries(useAsyncs ?? {}).map(([key, useFactory]) => ({ provide: (0, import_common.capitalize)(key), useFactory })),
236
- ...Object.entries(injects ?? {}).map(([key, inject]) => ({ provide: (0, import_common.capitalize)(key), useClass: inject }))
210
+ ...Object.entries(useAsyncs ?? {}).map(([key, useFactory]) => ({ provide: capitalize(key), useFactory })),
211
+ ...Object.entries(injects ?? {}).map(([key, inject]) => ({ provide: capitalize(key), useClass: inject }))
237
212
  ],
238
213
  exports: [
239
- ...Object.keys(uses ?? {}).map((key) => (0, import_common.capitalize)(key)),
240
- ...Object.keys(useAsyncs ?? {}).map((key) => (0, import_common.capitalize)(key)),
241
- ...Object.keys(injects ?? {}).map((key) => (0, import_common.capitalize)(key))
214
+ ...Object.keys(uses ?? {}).map((key) => capitalize(key)),
215
+ ...Object.keys(useAsyncs ?? {}).map((key) => capitalize(key)),
216
+ ...Object.keys(injects ?? {}).map((key) => capitalize(key))
242
217
  ]
243
218
  })
244
219
  ], GlobalsModule);
245
220
  return GlobalsModule;
246
221
  };
247
- // Annotate the CommonJS export names for ESM import in node:
248
- 0 && (module.exports = {
222
+ export {
249
223
  batchModuleOf,
250
224
  databaseModuleOf,
251
225
  scalarModuleOf,
252
226
  scalarModulesOf,
253
227
  serviceModuleOf,
254
228
  useGlobals
255
- });
229
+ };
@@ -0,0 +1,92 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var processor_exports = {};
19
+ __export(processor_exports, {
20
+ processorOf: () => processorOf,
21
+ queueOf: () => queueOf
22
+ });
23
+ module.exports = __toCommonJS(processor_exports);
24
+ var import_common = require("@akanjs/common");
25
+ var import_service = require("@akanjs/service");
26
+ var import_signal = require("@akanjs/signal");
27
+ var import_bull = require("@nestjs/bull");
28
+ var import_common2 = require("@nestjs/common");
29
+ const convertProcessFunction = (gqlMeta, argMetas, internalArgMetas, fn) => {
30
+ return async function(job, done) {
31
+ const args = [];
32
+ argMetas.forEach((argMeta) => {
33
+ if (argMeta.type === "Msg")
34
+ args[argMeta.idx] = (0, import_signal.deserializeArg)(argMeta, job.data[argMeta.idx]);
35
+ else
36
+ throw new Error(`Invalid ArgMeta Type ${argMeta.type}`);
37
+ });
38
+ internalArgMetas.forEach((internalArgMeta) => {
39
+ if (internalArgMeta.type === "Job")
40
+ args[internalArgMeta.idx] = job;
41
+ else
42
+ throw new Error(`Invalid InternalArgMeta Type ${internalArgMeta.type}`);
43
+ });
44
+ this.logger?.log(`Process-${gqlMeta.key} started`);
45
+ const result = await fn.apply(this, args);
46
+ this.logger?.log(`Process-${gqlMeta.key} finished`);
47
+ done(null, result);
48
+ };
49
+ };
50
+ const processorOf = (sigRef, allSrvs) => {
51
+ const sigMeta = (0, import_signal.getSigMeta)(sigRef);
52
+ const serverMode = process.env.SERVER_MODE ?? "federation";
53
+ const gqlMetas = (0, import_signal.getGqlMetas)(sigRef).filter((gqlMeta) => gqlMeta.type === "Process").filter(
54
+ (gqlMeta) => gqlMeta.signalOption.serverType === "all" || serverMode === "all" || gqlMeta.signalOption.serverType === serverMode
55
+ );
56
+ class QueueProcessor {
57
+ }
58
+ Object.keys(allSrvs).forEach((srv) => {
59
+ if (!(0, import_service.isServiceEnabled)(allSrvs[srv]))
60
+ return;
61
+ (0, import_common2.Inject)(allSrvs[srv])(QueueProcessor.prototype, (0, import_common.lowerlize)(srv));
62
+ });
63
+ for (const gqlMeta of gqlMetas) {
64
+ const [argMetas, internalArgMetas] = (0, import_signal.getArgMetas)(sigRef, gqlMeta.key);
65
+ const descriptor = { ...Object.getOwnPropertyDescriptor(sigRef.prototype, gqlMeta.key) ?? {} };
66
+ descriptor.value = convertProcessFunction(
67
+ gqlMeta,
68
+ argMetas,
69
+ internalArgMetas,
70
+ descriptor.value
71
+ );
72
+ Object.defineProperty(QueueProcessor.prototype, gqlMeta.key, descriptor);
73
+ (0, import_bull.Process)(gqlMeta.key)(QueueProcessor.prototype, gqlMeta.key, descriptor);
74
+ }
75
+ (0, import_bull.Processor)(sigMeta.refName)(QueueProcessor);
76
+ return QueueProcessor;
77
+ };
78
+ const queueOf = (sigRef, queue) => {
79
+ const sigMeta = (0, import_signal.getSigMeta)(sigRef);
80
+ const gqlMetas = (0, import_signal.getGqlMetas)(sigRef).filter((gqlMeta) => gqlMeta.type === "Process");
81
+ for (const gqlMeta of gqlMetas) {
82
+ if (queue[gqlMeta.key])
83
+ throw new Error(`Queue already has ${gqlMeta.key} in ${sigMeta.refName}`);
84
+ queue[gqlMeta.key] = (...args) => queue.add(gqlMeta.key, args);
85
+ }
86
+ return queue;
87
+ };
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ processorOf,
91
+ queueOf
92
+ });