@acmekit/modules-sdk 2.13.1
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/acmekit-app.d.ts +96 -0
- package/dist/acmekit-app.d.ts.map +1 -0
- package/dist/acmekit-app.js +437 -0
- package/dist/acmekit-app.js.map +1 -0
- package/dist/acmekit-module.d.ts +149 -0
- package/dist/acmekit-module.d.ts.map +1 -0
- package/dist/acmekit-module.js +541 -0
- package/dist/acmekit-module.js.map +1 -0
- package/dist/definitions.d.ts +7 -0
- package/dist/definitions.d.ts.map +1 -0
- package/dist/definitions.js +313 -0
- package/dist/definitions.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/link.d.ts +54 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +444 -0
- package/dist/link.js.map +1 -0
- package/dist/loaders/index.d.ts +4 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +20 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/loaders/module-loader.d.ts +10 -0
- package/dist/loaders/module-loader.d.ts.map +1 -0
- package/dist/loaders/module-loader.js +56 -0
- package/dist/loaders/module-loader.js.map +1 -0
- package/dist/loaders/module-provider-loader.d.ts +8 -0
- package/dist/loaders/module-provider-loader.d.ts.map +1 -0
- package/dist/loaders/module-provider-loader.js +56 -0
- package/dist/loaders/module-provider-loader.js.map +1 -0
- package/dist/loaders/register-modules.d.ts +10 -0
- package/dist/loaders/register-modules.d.ts.map +1 -0
- package/dist/loaders/register-modules.js +102 -0
- package/dist/loaders/register-modules.js.map +1 -0
- package/dist/loaders/utils/index.d.ts +2 -0
- package/dist/loaders/utils/index.d.ts.map +1 -0
- package/dist/loaders/utils/index.js +18 -0
- package/dist/loaders/utils/index.js.map +1 -0
- package/dist/loaders/utils/load-internal.d.ts +53 -0
- package/dist/loaders/utils/load-internal.d.ts.map +1 -0
- package/dist/loaders/utils/load-internal.js +519 -0
- package/dist/loaders/utils/load-internal.js.map +1 -0
- package/dist/remote-query/index.d.ts +3 -0
- package/dist/remote-query/index.d.ts.map +1 -0
- package/dist/remote-query/index.js +19 -0
- package/dist/remote-query/index.js.map +1 -0
- package/dist/remote-query/parse-filters.d.ts +15 -0
- package/dist/remote-query/parse-filters.d.ts.map +1 -0
- package/dist/remote-query/parse-filters.js +178 -0
- package/dist/remote-query/parse-filters.js.map +1 -0
- package/dist/remote-query/query.d.ts +58 -0
- package/dist/remote-query/query.d.ts.map +1 -0
- package/dist/remote-query/query.js +254 -0
- package/dist/remote-query/query.js.map +1 -0
- package/dist/remote-query/remote-query.d.ts +43 -0
- package/dist/remote-query/remote-query.d.ts.map +1 -0
- package/dist/remote-query/remote-query.js +297 -0
- package/dist/remote-query/remote-query.js.map +1 -0
- package/dist/remote-query/to-remote-query.d.ts +29 -0
- package/dist/remote-query/to-remote-query.d.ts.map +1 -0
- package/dist/remote-query/to-remote-query.js +110 -0
- package/dist/remote-query/to-remote-query.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/convert-data-to-link-definition.d.ts +3 -0
- package/dist/utils/convert-data-to-link-definition.d.ts.map +1 -0
- package/dist/utils/convert-data-to-link-definition.js +28 -0
- package/dist/utils/convert-data-to-link-definition.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/linking-error.d.ts +14 -0
- package/dist/utils/linking-error.d.ts.map +1 -0
- package/dist/utils/linking-error.js +18 -0
- package/dist/utils/linking-error.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveModuleExports = resolveModuleExports;
|
|
4
|
+
exports.loadInternalModule = loadInternalModule;
|
|
5
|
+
exports.loadModuleMigrations = loadModuleMigrations;
|
|
6
|
+
exports.loadResources = loadResources;
|
|
7
|
+
const utils_1 = require("@acmekit/utils");
|
|
8
|
+
const awilix_1 = require("@acmekit/deps/awilix");
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const promises_1 = require("fs/promises");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
async function resolveModuleExports({ resolution, }) {
|
|
13
|
+
let resolvedModuleExports;
|
|
14
|
+
try {
|
|
15
|
+
if (resolution.moduleExports) {
|
|
16
|
+
// TODO:
|
|
17
|
+
// If we want to benefit from the auto load mechanism, even if the module exports is provided, we need to ask for the module path
|
|
18
|
+
resolvedModuleExports = resolution.moduleExports;
|
|
19
|
+
resolvedModuleExports.discoveryPath = resolution.resolutionPath;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const module = await (0, utils_1.dynamicImport)(resolution.resolutionPath);
|
|
23
|
+
if ("discoveryPath" in module) {
|
|
24
|
+
const reExportedLoadedModule = await (0, utils_1.dynamicImport)(module.discoveryPath);
|
|
25
|
+
const discoveryPath = module.discoveryPath;
|
|
26
|
+
resolvedModuleExports =
|
|
27
|
+
reExportedLoadedModule.default ?? reExportedLoadedModule;
|
|
28
|
+
resolvedModuleExports.discoveryPath = discoveryPath;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
resolvedModuleExports =
|
|
32
|
+
module.default ?? module;
|
|
33
|
+
resolvedModuleExports.discoveryPath =
|
|
34
|
+
resolution.resolutionPath;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return resolvedModuleExports;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
if (resolution.definition.isRequired &&
|
|
41
|
+
resolution.definition.defaultPackage) {
|
|
42
|
+
return {
|
|
43
|
+
error: new Error(`Make sure you have installed the default package: ${resolution.definition.defaultPackage}`),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { error };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function loadInternalProvider(args, providers) {
|
|
50
|
+
const { container, resolution, logger, migrationOnly, schemaOnly } = args;
|
|
51
|
+
const errors = [];
|
|
52
|
+
for (const provider of providers) {
|
|
53
|
+
const providerRes = provider.resolve;
|
|
54
|
+
const canLoadProvider = providerRes && ((0, utils_1.isString)(providerRes) || !providerRes?.services);
|
|
55
|
+
if (!canLoadProvider) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const res = await loadInternalModule({
|
|
59
|
+
container,
|
|
60
|
+
resolution: {
|
|
61
|
+
...resolution,
|
|
62
|
+
moduleExports: !(0, utils_1.isString)(providerRes) ? providerRes : undefined,
|
|
63
|
+
definition: {
|
|
64
|
+
...resolution.definition,
|
|
65
|
+
key: provider.id,
|
|
66
|
+
},
|
|
67
|
+
resolutionPath: (0, utils_1.isString)(provider.resolve)
|
|
68
|
+
? require.resolve(provider.resolve, {
|
|
69
|
+
paths: [process.cwd()],
|
|
70
|
+
})
|
|
71
|
+
: false,
|
|
72
|
+
},
|
|
73
|
+
logger,
|
|
74
|
+
migrationOnly,
|
|
75
|
+
schemaOnly,
|
|
76
|
+
loadingProviders: true,
|
|
77
|
+
});
|
|
78
|
+
if (res) {
|
|
79
|
+
errors.push(res);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const errorMessages = errors.map((e) => e.error?.message).join("\n");
|
|
83
|
+
return errors.length
|
|
84
|
+
? {
|
|
85
|
+
error: {
|
|
86
|
+
name: "ModuleProviderError",
|
|
87
|
+
message: `Errors while loading module providers for module ${resolution.definition.key}:\n${errorMessages}`,
|
|
88
|
+
stack: errors.map((e) => e.error?.stack).join("\n"),
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
: undefined;
|
|
92
|
+
}
|
|
93
|
+
async function loadInternalModule(args) {
|
|
94
|
+
const { container, resolution, logger, migrationOnly, loaderOnly, loadingProviders, schemaOnly, } = args;
|
|
95
|
+
const keyName = !loaderOnly
|
|
96
|
+
? resolution.definition.key
|
|
97
|
+
: resolution.definition.key + "__loaderOnly";
|
|
98
|
+
const loadedModule = await resolveModuleExports({ resolution });
|
|
99
|
+
if ("error" in loadedModule) {
|
|
100
|
+
return loadedModule;
|
|
101
|
+
}
|
|
102
|
+
let moduleResources = {};
|
|
103
|
+
if (loadedModule.discoveryPath) {
|
|
104
|
+
moduleResources = await loadResources({
|
|
105
|
+
container,
|
|
106
|
+
moduleResolution: resolution,
|
|
107
|
+
discoveryPath: loadedModule.discoveryPath,
|
|
108
|
+
logger,
|
|
109
|
+
loadedModuleLoaders: loadedModule?.loaders,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const loadedModule_ = loadedModule;
|
|
113
|
+
if (!loadingProviders &&
|
|
114
|
+
!loadedModule_?.service &&
|
|
115
|
+
!moduleResources.moduleService) {
|
|
116
|
+
container.register({
|
|
117
|
+
[keyName]: (0, awilix_1.asValue)(undefined),
|
|
118
|
+
});
|
|
119
|
+
return {
|
|
120
|
+
error: new Error(`No service found in module ${resolution?.definition?.label}. Make sure your module exports a service.`),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
const localContainer = (0, utils_1.createAcmeKitContainer)();
|
|
124
|
+
const dependencies = resolution?.dependencies ?? [];
|
|
125
|
+
dependencies.push(utils_1.ContainerRegistrationKeys.MANAGER, utils_1.ContainerRegistrationKeys.CONFIG_MODULE, utils_1.ContainerRegistrationKeys.LOGGER, utils_1.ContainerRegistrationKeys.PG_CONNECTION, utils_1.Modules.EVENT_BUS, utils_1.Modules.CACHING);
|
|
126
|
+
for (const dependency of dependencies) {
|
|
127
|
+
localContainer.register(dependency, (0, awilix_1.asFunction)(() => {
|
|
128
|
+
return container.resolve(dependency, { allowUnregistered: true });
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
if (resolution.definition.__passSharedContainer) {
|
|
132
|
+
localContainer.register("sharedContainer", (0, awilix_1.asFunction)(() => {
|
|
133
|
+
return container;
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
// if module has providers, load them
|
|
137
|
+
let providerOptions = undefined;
|
|
138
|
+
if (!loadingProviders) {
|
|
139
|
+
const providers = resolution?.options?.providers ?? [];
|
|
140
|
+
const res = await loadInternalProvider({
|
|
141
|
+
...args,
|
|
142
|
+
container: localContainer,
|
|
143
|
+
}, providers);
|
|
144
|
+
if (res?.error) {
|
|
145
|
+
return res;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
providerOptions = (resolution?.options?.providers).find((p) => p.id === resolution.definition.key)?.options;
|
|
150
|
+
}
|
|
151
|
+
// Partial module load: register only __joinerConfig
|
|
152
|
+
// - migrationOnly: needed for migration planning + loader execution
|
|
153
|
+
// - schemaOnly: needed for GraphQL schema + type generation
|
|
154
|
+
if ((schemaOnly || migrationOnly) && !loadingProviders) {
|
|
155
|
+
const moduleService_ = moduleResources.moduleService ?? loadedModule_.service;
|
|
156
|
+
// Partially loaded module, only register the service __joinerConfig function to be able to resolve it later
|
|
157
|
+
const moduleService = {
|
|
158
|
+
__joinerConfig: moduleService_.prototype.__joinerConfig,
|
|
159
|
+
};
|
|
160
|
+
container.register({
|
|
161
|
+
[keyName]: (0, awilix_1.asValue)(moduleService),
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
if (schemaOnly) {
|
|
166
|
+
// in schema only mode, we only need to register the service __joinerConfig function to be able to resolve it later
|
|
167
|
+
// For providers in schema-only mode, skip without registration
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const loaders = moduleResources.loaders ?? loadedModule?.loaders ?? [];
|
|
171
|
+
const error = await runLoaders(loaders, {
|
|
172
|
+
container,
|
|
173
|
+
localContainer,
|
|
174
|
+
logger,
|
|
175
|
+
resolution,
|
|
176
|
+
loaderOnly,
|
|
177
|
+
keyName,
|
|
178
|
+
providerOptions,
|
|
179
|
+
});
|
|
180
|
+
if (error) {
|
|
181
|
+
return error;
|
|
182
|
+
}
|
|
183
|
+
if (loadingProviders) {
|
|
184
|
+
const loadedProvider_ = loadedModule;
|
|
185
|
+
let moduleProviderServices = moduleResources.moduleService
|
|
186
|
+
? [moduleResources.moduleService]
|
|
187
|
+
: loadedProvider_.services ?? loadedProvider_;
|
|
188
|
+
if (!moduleProviderServices) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
for (const moduleProviderService of moduleProviderServices) {
|
|
192
|
+
const modProvider_ = moduleProviderService;
|
|
193
|
+
const originalIdentifier = modProvider_.identifier;
|
|
194
|
+
const providerId = keyName;
|
|
195
|
+
if (!originalIdentifier) {
|
|
196
|
+
const providerResolutionName = modProvider_.DISPLAY_NAME ?? resolution.resolutionPath;
|
|
197
|
+
throw new Error(`Module provider ${providerResolutionName} does not have a static "identifier" property on its service class.`);
|
|
198
|
+
}
|
|
199
|
+
const alreadyRegisteredProvider = container.hasRegistration((0, utils_1.getProviderRegistrationKey)({
|
|
200
|
+
providerId,
|
|
201
|
+
providerIdentifier: originalIdentifier,
|
|
202
|
+
}));
|
|
203
|
+
if (alreadyRegisteredProvider) {
|
|
204
|
+
throw new Error(`Module provider ${originalIdentifier} has already been registered. Please provide a different "id" in the provider options.`);
|
|
205
|
+
}
|
|
206
|
+
modProvider_.__type = utils_1.AcmeKitModuleProviderType;
|
|
207
|
+
const registrationKey = (0, utils_1.getProviderRegistrationKey)({
|
|
208
|
+
providerId,
|
|
209
|
+
providerIdentifier: originalIdentifier,
|
|
210
|
+
});
|
|
211
|
+
container.register({
|
|
212
|
+
[registrationKey]: (0, awilix_1.asFunction)(() => {
|
|
213
|
+
;
|
|
214
|
+
moduleProviderService.__type = utils_1.AcmeKitModuleType;
|
|
215
|
+
return new moduleProviderService(localContainer.cradle, resolution.options, resolution.moduleDeclaration);
|
|
216
|
+
}).singleton(),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
const moduleService = moduleResources.moduleService ?? loadedModule_.service;
|
|
222
|
+
container.register({
|
|
223
|
+
[keyName]: (0, awilix_1.asFunction)((cradle) => {
|
|
224
|
+
;
|
|
225
|
+
moduleService.__type = utils_1.AcmeKitModuleType;
|
|
226
|
+
return new moduleService(localContainer.cradle, resolution.options, resolution.moduleDeclaration);
|
|
227
|
+
}).singleton(),
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
if (loaderOnly) {
|
|
231
|
+
// The expectation is only to run the loader as standalone, so we do not need to register the service and we need to cleanup all services
|
|
232
|
+
const service = container.resolve(keyName);
|
|
233
|
+
await service.__hooks?.onApplicationPrepareShutdown?.();
|
|
234
|
+
await service.__hooks?.onApplicationShutdown?.();
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
async function loadModuleMigrations(container, resolution, moduleExports) {
|
|
238
|
+
const runMigrationsFn = [];
|
|
239
|
+
const revertMigrationFn = [];
|
|
240
|
+
const generateMigrationFn = [];
|
|
241
|
+
try {
|
|
242
|
+
const mainLoadedModule = await resolveModuleExports({
|
|
243
|
+
resolution: { ...resolution, moduleExports },
|
|
244
|
+
});
|
|
245
|
+
if ("error" in mainLoadedModule) {
|
|
246
|
+
throw mainLoadedModule.error;
|
|
247
|
+
}
|
|
248
|
+
const loadedServices = [mainLoadedModule];
|
|
249
|
+
if (Array.isArray(resolution?.options?.providers)) {
|
|
250
|
+
for (const provider of resolution.options.providers) {
|
|
251
|
+
const providerRes = provider.resolve;
|
|
252
|
+
const canLoadProvider = providerRes && ((0, utils_1.isString)(providerRes) || !providerRes?.services);
|
|
253
|
+
if (!canLoadProvider) {
|
|
254
|
+
continue;
|
|
255
|
+
}
|
|
256
|
+
const loadedProvider = await resolveModuleExports({
|
|
257
|
+
resolution: {
|
|
258
|
+
...resolution,
|
|
259
|
+
moduleExports: !(0, utils_1.isString)(providerRes) ? providerRes : undefined,
|
|
260
|
+
definition: {
|
|
261
|
+
...resolution.definition,
|
|
262
|
+
key: provider.id,
|
|
263
|
+
},
|
|
264
|
+
resolutionPath: (0, utils_1.isString)(provider.resolve)
|
|
265
|
+
? require.resolve(provider.resolve, { paths: [process.cwd()] })
|
|
266
|
+
: false,
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
if ("error" in loadedProvider) {
|
|
270
|
+
throw loadedProvider.error;
|
|
271
|
+
}
|
|
272
|
+
loadedServices.push(loadedProvider);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const migrationScripts = [];
|
|
276
|
+
for (const loadedModule of loadedServices) {
|
|
277
|
+
let runMigrationsCustom = loadedModule.runMigrations;
|
|
278
|
+
let revertMigrationCustom = loadedModule.revertMigration;
|
|
279
|
+
let generateMigrationCustom = loadedModule.generateMigration;
|
|
280
|
+
runMigrationsCustom && runMigrationsFn.push(runMigrationsCustom);
|
|
281
|
+
revertMigrationCustom && revertMigrationFn.push(revertMigrationCustom);
|
|
282
|
+
generateMigrationCustom &&
|
|
283
|
+
generateMigrationFn.push(generateMigrationCustom);
|
|
284
|
+
if (!runMigrationsCustom || !revertMigrationCustom) {
|
|
285
|
+
const moduleResources = await loadResources({
|
|
286
|
+
container,
|
|
287
|
+
moduleResolution: resolution,
|
|
288
|
+
discoveryPath: loadedModule.discoveryPath,
|
|
289
|
+
loadedModuleLoaders: loadedModule?.loaders,
|
|
290
|
+
});
|
|
291
|
+
migrationScripts.push({
|
|
292
|
+
moduleName: resolution.definition.key,
|
|
293
|
+
models: moduleResources.models,
|
|
294
|
+
pathToMigrations: (0, path_1.join)(moduleResources.normalizedPath, "migrations"),
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
for (const migrationScriptOptions of migrationScripts) {
|
|
298
|
+
const migrationUp = runMigrationsCustom ??
|
|
299
|
+
utils_1.ModulesSdkUtils.buildMigrationScript(migrationScriptOptions);
|
|
300
|
+
runMigrationsFn.push(migrationUp);
|
|
301
|
+
const migrationDown = revertMigrationCustom ??
|
|
302
|
+
utils_1.ModulesSdkUtils.buildRevertMigrationScript(migrationScriptOptions);
|
|
303
|
+
revertMigrationFn.push(migrationDown);
|
|
304
|
+
const genMigration = generateMigrationCustom ??
|
|
305
|
+
utils_1.ModulesSdkUtils.buildGenerateMigrationScript(migrationScriptOptions);
|
|
306
|
+
generateMigrationFn.push(genMigration);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
const runMigrations = async (...args) => {
|
|
310
|
+
let result = [];
|
|
311
|
+
for (const migration of runMigrationsFn.filter(Boolean)) {
|
|
312
|
+
const res = await migration.apply(migration, args);
|
|
313
|
+
result.push(...res);
|
|
314
|
+
}
|
|
315
|
+
return result;
|
|
316
|
+
};
|
|
317
|
+
const revertMigration = async (...args) => {
|
|
318
|
+
for (const migration of revertMigrationFn.filter(Boolean)) {
|
|
319
|
+
await migration.apply(migration, args);
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
const generateMigration = async (...args) => {
|
|
323
|
+
for (const migration of generateMigrationFn.filter(Boolean)) {
|
|
324
|
+
await migration.apply(migration, args);
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
return {
|
|
328
|
+
runMigrations,
|
|
329
|
+
revertMigration,
|
|
330
|
+
generateMigration,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
catch (e) {
|
|
334
|
+
throw new Error(`Unable to resolve the migration scripts for the module ${resolution.definition.key}\n${e.message}\n${e.stack}`);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
async function importAllFromDir(path) {
|
|
338
|
+
let filesToLoad = [];
|
|
339
|
+
const excludedExtensions = [".ts.map", ".js.map", ".d.ts"];
|
|
340
|
+
await (0, promises_1.readdir)(path).then((files) => {
|
|
341
|
+
files.forEach((file) => {
|
|
342
|
+
if (file.startsWith("index.") ||
|
|
343
|
+
excludedExtensions.some((ext) => file.endsWith(ext))) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
const filePath = (0, path_1.join)(path, file);
|
|
347
|
+
const stats = (0, fs_1.statSync)(filePath);
|
|
348
|
+
if (stats.isDirectory()) {
|
|
349
|
+
// TODO: should we handle that? dont think so but I put that here for discussion
|
|
350
|
+
}
|
|
351
|
+
else if (stats.isFile()) {
|
|
352
|
+
filesToLoad.push(filePath);
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
return filesToLoad;
|
|
356
|
+
});
|
|
357
|
+
return (await Promise.all(filesToLoad.map((filePath) => (0, utils_1.dynamicImport)(filePath))))
|
|
358
|
+
.filter((value) => !(0, utils_1.isFileSkipped)(value))
|
|
359
|
+
.flatMap((value) => {
|
|
360
|
+
return Object.values(value);
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
async function loadResources({ container, moduleResolution, discoveryPath, logger, loadedModuleLoaders, }) {
|
|
364
|
+
logger ??= console;
|
|
365
|
+
loadedModuleLoaders ??= [];
|
|
366
|
+
const modulePath = discoveryPath;
|
|
367
|
+
let normalizedPath = (0, path_1.dirname)(require.resolve(modulePath, { paths: [process.cwd()] }));
|
|
368
|
+
normalizedPath = (0, path_1.resolve)(normalizedPath);
|
|
369
|
+
try {
|
|
370
|
+
const defaultOnFail = () => {
|
|
371
|
+
return [];
|
|
372
|
+
};
|
|
373
|
+
const flagDir = (0, path_1.resolve)(normalizedPath);
|
|
374
|
+
const configModule = container.resolve(utils_1.ContainerRegistrationKeys.CONFIG_MODULE, {
|
|
375
|
+
allowUnregistered: true,
|
|
376
|
+
});
|
|
377
|
+
await (0, utils_1.discoverAndRegisterFeatureFlags)({
|
|
378
|
+
flagDir,
|
|
379
|
+
projectConfigFlags: configModule?.featureFlags ?? {},
|
|
380
|
+
router: utils_1.FeatureFlag,
|
|
381
|
+
logger,
|
|
382
|
+
maxDepth: 1,
|
|
383
|
+
});
|
|
384
|
+
const [moduleService, services, models, repositories] = await Promise.all([
|
|
385
|
+
(0, utils_1.dynamicImport)(modulePath).then((moduleExports) => {
|
|
386
|
+
if ((0, utils_1.isFileSkipped)(moduleExports)) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
const mod = moduleExports.default ?? moduleExports;
|
|
390
|
+
return mod.service;
|
|
391
|
+
}),
|
|
392
|
+
importAllFromDir((0, path_1.resolve)(normalizedPath, "services")).catch(defaultOnFail),
|
|
393
|
+
importAllFromDir((0, path_1.resolve)(normalizedPath, "models")).catch(defaultOnFail),
|
|
394
|
+
importAllFromDir((0, path_1.resolve)(normalizedPath, "repositories")).catch(defaultOnFail),
|
|
395
|
+
]);
|
|
396
|
+
const cleanupResources = (resources) => {
|
|
397
|
+
return Object.values(resources)
|
|
398
|
+
.map((resource) => {
|
|
399
|
+
if (utils_1.DmlEntity.isDmlEntity(resource)) {
|
|
400
|
+
return resource;
|
|
401
|
+
}
|
|
402
|
+
if (typeof resource === "function") {
|
|
403
|
+
return resource;
|
|
404
|
+
}
|
|
405
|
+
return null;
|
|
406
|
+
})
|
|
407
|
+
.filter((v) => !!v);
|
|
408
|
+
};
|
|
409
|
+
const potentialServices = [...new Set(cleanupResources(services))];
|
|
410
|
+
const potentialModels = [...new Set(cleanupResources(models))];
|
|
411
|
+
const mikroOrmModels = (0, utils_1.toMikroOrmEntities)(potentialModels);
|
|
412
|
+
const potentialRepositories = [...new Set(cleanupResources(repositories))];
|
|
413
|
+
const finalLoaders = prepareLoaders({
|
|
414
|
+
loadedModuleLoaders,
|
|
415
|
+
models: mikroOrmModels,
|
|
416
|
+
repositories: potentialRepositories,
|
|
417
|
+
services: potentialServices,
|
|
418
|
+
moduleResolution,
|
|
419
|
+
migrationPath: normalizedPath + "/migrations",
|
|
420
|
+
});
|
|
421
|
+
// if a module service is provided, we generate a joiner config
|
|
422
|
+
if (moduleService) {
|
|
423
|
+
generateJoinerConfigIfNecessary({
|
|
424
|
+
moduleResolution,
|
|
425
|
+
service: moduleService,
|
|
426
|
+
models: potentialModels,
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
services: potentialServices,
|
|
431
|
+
models: mikroOrmModels,
|
|
432
|
+
repositories: potentialRepositories,
|
|
433
|
+
loaders: finalLoaders,
|
|
434
|
+
moduleService,
|
|
435
|
+
normalizedPath,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
catch (e) {
|
|
439
|
+
logger.warn(`Unable to load resources for module ${modulePath} automagically. ${e.message}`);
|
|
440
|
+
return {};
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
async function runLoaders(loaders = [], { localContainer, container, logger, resolution, loaderOnly, keyName, providerOptions, }) {
|
|
444
|
+
try {
|
|
445
|
+
for (const loader of loaders) {
|
|
446
|
+
await loader({
|
|
447
|
+
container: localContainer,
|
|
448
|
+
logger,
|
|
449
|
+
options: providerOptions ?? resolution.options,
|
|
450
|
+
dataLoaderOnly: loaderOnly,
|
|
451
|
+
moduleOptions: providerOptions ? resolution.options : undefined,
|
|
452
|
+
}, resolution.moduleDeclaration);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch (err) {
|
|
456
|
+
container.register({
|
|
457
|
+
[keyName]: (0, awilix_1.asValue)(undefined),
|
|
458
|
+
});
|
|
459
|
+
logger.error(`Loaders for module ${resolution.definition.label} failed with the following error: \n${(0, utils_1.stringifyCircular)(err)}`);
|
|
460
|
+
return {
|
|
461
|
+
error: new Error(`Loaders for module ${resolution.definition.label} failed: ${err.message}`),
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
function prepareLoaders({ loadedModuleLoaders = [], models, repositories, services, moduleResolution, migrationPath, }) {
|
|
466
|
+
const finalLoaders = [];
|
|
467
|
+
const toObjectReducer = (acc, curr) => {
|
|
468
|
+
acc[curr.name] = curr;
|
|
469
|
+
return acc;
|
|
470
|
+
};
|
|
471
|
+
/*
|
|
472
|
+
* If no connectionLoader function is provided, create a default connection loader.
|
|
473
|
+
* TODO: Validate naming convention
|
|
474
|
+
*/
|
|
475
|
+
const connectionLoaderName = "connectionLoader";
|
|
476
|
+
const containerLoader = "containerLoader";
|
|
477
|
+
const hasConnectionLoader = loadedModuleLoaders.some((l) => l.name === connectionLoaderName);
|
|
478
|
+
if (!hasConnectionLoader && models.length > 0) {
|
|
479
|
+
const connectionLoader = utils_1.ModulesSdkUtils.mikroOrmConnectionLoaderFactory({
|
|
480
|
+
moduleName: moduleResolution.definition.key,
|
|
481
|
+
moduleModels: models,
|
|
482
|
+
migrationsPath: migrationPath,
|
|
483
|
+
});
|
|
484
|
+
finalLoaders.push(connectionLoader);
|
|
485
|
+
}
|
|
486
|
+
const hasContainerLoader = loadedModuleLoaders.some((l) => l.name === containerLoader);
|
|
487
|
+
if (!hasContainerLoader) {
|
|
488
|
+
const containerLoader = utils_1.ModulesSdkUtils.moduleContainerLoaderFactory({
|
|
489
|
+
moduleModels: models.reduce(toObjectReducer, {}),
|
|
490
|
+
moduleRepositories: repositories.reduce(toObjectReducer, {}),
|
|
491
|
+
moduleServices: services.reduce(toObjectReducer, {}),
|
|
492
|
+
});
|
|
493
|
+
finalLoaders.push(containerLoader);
|
|
494
|
+
}
|
|
495
|
+
finalLoaders.push(...loadedModuleLoaders.filter((loader) => {
|
|
496
|
+
if (loader.name !== connectionLoaderName &&
|
|
497
|
+
loader.name !== containerLoader) {
|
|
498
|
+
return true;
|
|
499
|
+
}
|
|
500
|
+
return ((loader.name === containerLoader && hasContainerLoader) ||
|
|
501
|
+
(loader.name === connectionLoaderName && hasConnectionLoader));
|
|
502
|
+
}));
|
|
503
|
+
return finalLoaders;
|
|
504
|
+
}
|
|
505
|
+
function generateJoinerConfigIfNecessary({ moduleResolution, service, models, }) {
|
|
506
|
+
const originalJoinerConfigFn = service.prototype.__joinerConfig;
|
|
507
|
+
service.prototype.__joinerConfig = function () {
|
|
508
|
+
if (originalJoinerConfigFn) {
|
|
509
|
+
return {
|
|
510
|
+
serviceName: moduleResolution.definition.key,
|
|
511
|
+
...originalJoinerConfigFn(),
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
return (0, utils_1.defineJoinerConfig)(moduleResolution.definition.key, {
|
|
515
|
+
models,
|
|
516
|
+
});
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
//# sourceMappingURL=load-internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-internal.js","sourceRoot":"","sources":["../../../src/loaders/utils/load-internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remote-query/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./query"), exports);
|
|
18
|
+
__exportStar(require("./remote-query"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/remote-query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,iDAA8B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse and assign filters to remote query object to the corresponding relation level
|
|
3
|
+
* @param entryPoint
|
|
4
|
+
* @param filters
|
|
5
|
+
* @param remoteQueryObject
|
|
6
|
+
* @param isFieldAliasNestedRelation
|
|
7
|
+
* @param entitiesMap
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseAndAssignFilters({ entryPoint, filters, remoteQueryObject, isFieldAliasNestedRelation, }: {
|
|
10
|
+
remoteQueryObject: object;
|
|
11
|
+
entryPoint: string;
|
|
12
|
+
filters: object;
|
|
13
|
+
isFieldAliasNestedRelation?: boolean;
|
|
14
|
+
}, entitiesMap: Map<string, any>): void;
|
|
15
|
+
//# sourceMappingURL=parse-filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-filters.d.ts","sourceRoot":"","sources":["../../src/remote-query/parse-filters.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,EACE,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,0BAA0B,GAC3B,EAAE;IACD,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,0BAA0B,CAAC,EAAE,OAAO,CAAA;CACrC,EACD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAgF9B"}
|