@mayhem93/nexxus-core-lib 0.0.2 → 0.0.4
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-cjs/common/FilterQuery.js +1 -3
- package/dist-cjs/common/FilterQuery.js.map +1 -1
- package/dist-cjs/index.js +1 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/lib/BaseService.js.map +1 -1
- package/dist-cjs/lib/ConfigManager.js +47 -13
- package/dist-cjs/lib/ConfigManager.js.map +1 -1
- package/dist-cjs/lib/ConfigProvider.js +14 -1
- package/dist-cjs/lib/ConfigProvider.js.map +1 -1
- package/dist-cjs/lib/Exceptions.js +14 -3
- package/dist-cjs/lib/Exceptions.js.map +1 -1
- package/dist-cjs/lib/ServiceResolver.js +57 -0
- package/dist-cjs/lib/ServiceResolver.js.map +1 -0
- package/dist-esm/common/FilterQuery.js +1 -3
- package/dist-esm/common/FilterQuery.js.map +1 -1
- package/dist-esm/index.js +1 -0
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/lib/BaseService.js.map +1 -1
- package/dist-esm/lib/ConfigManager.js +47 -13
- package/dist-esm/lib/ConfigManager.js.map +1 -1
- package/dist-esm/lib/ConfigProvider.js +14 -1
- package/dist-esm/lib/ConfigProvider.js.map +1 -1
- package/dist-esm/lib/Exceptions.js +14 -3
- package/dist-esm/lib/Exceptions.js.map +1 -1
- package/dist-esm/lib/ServiceResolver.js +52 -0
- package/dist-esm/lib/ServiceResolver.js.map +1 -0
- package/dist-types/index.d.ts +1 -0
- package/dist-types/lib/BaseService.d.ts +43 -0
- package/dist-types/lib/ConfigManager.d.ts +46 -3
- package/dist-types/lib/ConfigProvider.d.ts +6 -0
- package/dist-types/lib/Exceptions.d.ts +11 -2
- package/dist-types/lib/ServiceResolver.d.ts +23 -0
- package/package.json +1 -1
|
@@ -34,9 +34,7 @@ class NexxusFilterQuery {
|
|
|
34
34
|
if (node.operator === '$and') {
|
|
35
35
|
return node.conditions.every(childNode => this.testNode(childNode, object));
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
return node.conditions.some(childNode => this.testNode(childNode, object));
|
|
39
|
-
}
|
|
37
|
+
return node.conditions.some(childNode => this.testNode(childNode, object));
|
|
40
38
|
}
|
|
41
39
|
validateAndParse() {
|
|
42
40
|
this.nodes = this.parseQuery(this.query, this.modelDef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterQuery.js","sourceRoot":"","sources":["../../src/common/FilterQuery.ts"],"names":[],"mappings":";;;;AAAA,kDAE2B;AAM3B,qDAA2D;AAK3D,sDAAgC;AAChC,kEAAiC;AAqCjC,MAAa,iBAAiB;IAKlB;IAJF,KAAK,GAAiB,EAAE,CAAC;IACzB,QAAQ,CAAiB;IAEjC,YACU,KAA4B,EACpC,MAAsB;QADd,UAAK,GAAL,KAAK,CAAuB;QAGpC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,wCAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAA,mBAAQ,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAA0B,CAAC;IACvE,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,IAAI,CAAC,MAAgC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,QAAQ,CAAC,IAAgB,EAAE,MAAgC;QACjE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterQuery.js","sourceRoot":"","sources":["../../src/common/FilterQuery.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/index.js
CHANGED
|
@@ -7,6 +7,7 @@ tslib_1.__exportStar(require("./lib/ConfigProvider"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./lib/ConfigManager"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./lib/BaseService"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./lib/Logger"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./lib/ServiceResolver"), exports);
|
|
10
11
|
tslib_1.__exportStar(require("./common/QueuePayloads"), exports);
|
|
11
12
|
tslib_1.__exportStar(require("./common/JsonPatch"), exports);
|
|
12
13
|
tslib_1.__exportStar(require("./common/FilterQuery"), exports);
|
package/dist-cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,2DAAiC;AACjC,+DAAqC;AACrC,8DAAoC;AACpC,4DAAkC;AAClC,uDAA6B;AAC7B,gEAAsC;AAEtC,iEAAuC;AACvC,6DAAmC;AACnC,+DAAqC;AACrC,8DAAoC;AACpC,mEAAyC;AACzC,6DAAmC;AACnC,gEAAsC;AACtC,kEAAwC;AACxC,4DAAkC;AAClC,+DAAqC;AACrC,wDAA8B;AAEjB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":";;;;AAOA,6CAAmD;AAKnD,oDAA8B;AAC9B,6CAA2C;
|
|
1
|
+
{"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,17 +10,22 @@ const deepmerge_1 = tslib_1.__importDefault(require("deepmerge"));
|
|
|
10
10
|
const fs = tslib_1.__importStar(require("node:fs"));
|
|
11
11
|
const path = tslib_1.__importStar(require("node:path"));
|
|
12
12
|
class NexxusConfigManager {
|
|
13
|
-
static CONF_FILE_NAME =
|
|
13
|
+
static CONF_FILE_NAME = 'nexxus.conf.json';
|
|
14
|
+
static DEFAULT_CONF_PATH = '/etc/nexxus';
|
|
14
15
|
jsonSchema;
|
|
15
16
|
envVarsSpecs = [];
|
|
16
17
|
cliArgsSpecs = [];
|
|
17
18
|
data = {};
|
|
18
19
|
configProviders = [];
|
|
19
20
|
customProviders = [];
|
|
20
|
-
|
|
21
|
+
registeredServices = new Set();
|
|
22
|
+
dataInitialized = false;
|
|
23
|
+
hasNewRegistrations = false;
|
|
24
|
+
constructor(configFilePath) {
|
|
21
25
|
const schemaPath = path.join(__dirname, "../../src/schemas/root.schema.json");
|
|
26
|
+
const resolvedConfPath = path.resolve(configFilePath || process.env.NXX_CONF_PATH || path.join(NexxusConfigManager.DEFAULT_CONF_PATH, NexxusConfigManager.CONF_FILE_NAME));
|
|
22
27
|
this.jsonSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
|
|
23
|
-
this.configProviders.push(new ConfigProvider_1.NexxusFileConfigProvider(
|
|
28
|
+
this.configProviders.push(new ConfigProvider_1.NexxusFileConfigProvider(resolvedConfPath));
|
|
24
29
|
this.configProviders.push(new ConfigProvider_1.NexxusEnvVarsConfigProvider());
|
|
25
30
|
this.configProviders.push(new ConfigProvider_1.NexxusCliArgConfigProvider());
|
|
26
31
|
}
|
|
@@ -41,16 +46,30 @@ class NexxusConfigManager {
|
|
|
41
46
|
this.jsonSchema.required.push(def.where);
|
|
42
47
|
}
|
|
43
48
|
}
|
|
49
|
+
registerService(svc) {
|
|
50
|
+
if (this.registeredServices.has(svc.name)) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const schemaDef = svc.schema();
|
|
54
|
+
const className = svc.name;
|
|
55
|
+
const configRootKey = schemaDef.where;
|
|
56
|
+
this.cliArgsSpecs.push({ className, configRootKey, specs: svc.cliArgConfig() });
|
|
57
|
+
this.envVarsSpecs.push({ className, configRootKey, specs: svc.envVarConfig() });
|
|
58
|
+
this.addJsonSchemaDef(schemaDef);
|
|
59
|
+
this.registeredServices.add(className);
|
|
60
|
+
this.hasNewRegistrations = true;
|
|
61
|
+
}
|
|
44
62
|
async validateServices(svcs) {
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
if (svcs) {
|
|
64
|
+
for (const svc of svcs) {
|
|
65
|
+
this.registerService(svc);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!this.hasNewRegistrations) {
|
|
69
|
+
return;
|
|
52
70
|
}
|
|
53
71
|
await this.validate();
|
|
72
|
+
this.hasNewRegistrations = false;
|
|
54
73
|
}
|
|
55
74
|
populateFromCliArgs() {
|
|
56
75
|
if (this.cliArgsSpecs.length === 0) {
|
|
@@ -111,9 +130,24 @@ class NexxusConfigManager {
|
|
|
111
130
|
}).join('\n');
|
|
112
131
|
}
|
|
113
132
|
async validate() {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
133
|
+
if (!this.dataInitialized) {
|
|
134
|
+
const fileConfigProvider = this.configProviders[0];
|
|
135
|
+
try {
|
|
136
|
+
this.data = fileConfigProvider.getConfig();
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
if (e instanceof Exceptions_1.FatalErrorException) {
|
|
140
|
+
if (e.subcode === Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND) {
|
|
141
|
+
this.data = {};
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
throw e;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
await this.populateFromCustomProviders();
|
|
149
|
+
this.dataInitialized = true;
|
|
150
|
+
}
|
|
117
151
|
this.populateFromCliArgs();
|
|
118
152
|
this.populateFromEnvVars();
|
|
119
153
|
const ajv = new ajv_1.Ajv({ useDefaults: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAE3E,qDAO0B;AAE1B,6BAAuC;AACvC,sDAAgC;AAChC,kEAAkC;AAGlC,oDAA8B;AAC9B,wDAAkC;AAsClC,MAAa,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAsB,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,15 @@ class NexxusFileConfigProvider extends NexxusConfigProvider {
|
|
|
22
22
|
fs.accessSync(this.filePath);
|
|
23
23
|
}
|
|
24
24
|
catch (e) {
|
|
25
|
-
|
|
25
|
+
if (e.code === 'ENOENT') {
|
|
26
|
+
throw new Exceptions_1.FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND);
|
|
27
|
+
}
|
|
28
|
+
else if (e.code === 'EACCES') {
|
|
29
|
+
throw new Exceptions_1.FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, Exceptions_1.FatalErrorException.SUBCODES.CONFIG_FILE_UNREADABLE);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw new Exceptions_1.FatalErrorException(`Failed reading config file "${this.filePath}": ${e.message}`);
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
return JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
|
|
28
36
|
}
|
|
@@ -44,6 +52,7 @@ exports.NexxusEnvVarsConfigProvider = NexxusEnvVarsConfigProvider;
|
|
|
44
52
|
class NexxusCliArgConfigProvider extends NexxusConfigProvider {
|
|
45
53
|
argParser;
|
|
46
54
|
originalExit;
|
|
55
|
+
addedArgs = new Set();
|
|
47
56
|
constructor() {
|
|
48
57
|
super();
|
|
49
58
|
this.argParser = new argparse_1.ArgumentParser({ add_help: false, usage: argparse_1.SUPPRESS });
|
|
@@ -55,7 +64,11 @@ class NexxusCliArgConfigProvider extends NexxusConfigProvider {
|
|
|
55
64
|
};
|
|
56
65
|
}
|
|
57
66
|
addArgument(name, type) {
|
|
67
|
+
if (this.addedArgs.has(name)) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
58
70
|
this.argParser.add_argument(`--${name}`, { type: type, dest: name, required: false });
|
|
71
|
+
this.addedArgs.add(name);
|
|
59
72
|
}
|
|
60
73
|
getConfig() {
|
|
61
74
|
return this.argParser.parse_args();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":";;;;AAAA,6CAAmD;AAEnD,+CAAyB;AAEzB,uCAAoD;AASpD,MAAsB,oBAAoB;CAEzC;AAFD,oDAEC;AAED,MAAsB,yBAAyB;CAE9C;AAFD,8DAEC;AAED,MAAa,wBAAyB,SAAQ,oBAAoB;IAC5C;IAApB,YAAoB,QAAgB;QAClC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAQ;IAEpC,CAAC;IAEM,SAAS;QACd,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,gCAAmB,CAAC,8BAA8B,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,15 +14,26 @@ var NexxusExceptions;
|
|
|
14
14
|
})(NexxusExceptions || (exports.NexxusExceptions = NexxusExceptions = {}));
|
|
15
15
|
;
|
|
16
16
|
class NexxusException extends Error {
|
|
17
|
-
|
|
17
|
+
subcode;
|
|
18
|
+
constructor(type, message, subcode) {
|
|
18
19
|
super(message);
|
|
19
20
|
this.name = type;
|
|
21
|
+
this.subcode = subcode;
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
exports.NexxusException = NexxusException;
|
|
25
|
+
var FatalErrorSubcodes;
|
|
26
|
+
(function (FatalErrorSubcodes) {
|
|
27
|
+
FatalErrorSubcodes["CONFIG_FILE_NOT_FOUND"] = "CONFIG_FILE_NOT_FOUND";
|
|
28
|
+
FatalErrorSubcodes["CONFIG_FILE_INVALID_JSON"] = "CONFIG_FILE_INVALID_JSON";
|
|
29
|
+
FatalErrorSubcodes["CONFIG_FILE_INVALID_SCHEMA"] = "CONFIG_FILE_INVALID_SCHEMA";
|
|
30
|
+
FatalErrorSubcodes["CONFIG_FILE_UNREADABLE"] = "CONFIG_FILE_UNREADABLE";
|
|
31
|
+
})(FatalErrorSubcodes || (FatalErrorSubcodes = {}));
|
|
32
|
+
;
|
|
23
33
|
class FatalErrorException extends NexxusException {
|
|
24
|
-
|
|
25
|
-
|
|
34
|
+
static SUBCODES = FatalErrorSubcodes;
|
|
35
|
+
constructor(message, subcode) {
|
|
36
|
+
super(NexxusExceptions.FATAL_ERROR, message, subcode);
|
|
26
37
|
}
|
|
27
38
|
}
|
|
28
39
|
exports.FatalErrorException = FatalErrorException;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,sEAAkD,CAAA;IAClD,oEAAgD,CAAA;AAClD,CAAC,EATW,gBAAgB,gCAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAa,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,sEAAkD,CAAA;IAClD,oEAAgD,CAAA;AAClD,CAAC,EATW,gBAAgB,gCAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAa,eAAgB,SAAQ,KAAK;IACxB,OAAO,CAAU;IAEjC,YAAY,IAAY,EAAE,OAAe,EAAE,OAAgB;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,0CAQC;AAED,IAAK,kBAKJ;AALD,WAAK,kBAAkB;IACrB,qEAA+C,CAAA;IAC/C,2EAAqD,CAAA;IACrD,+EAAyD,CAAA;IACzD,uEAAiD,CAAA;AACnD,CAAC,EALI,kBAAkB,KAAlB,kBAAkB,QAKtB;AAAA,CAAC;AAEF,MAAa,mBAAoB,SAAQ,eAAe;IAC/C,MAAM,CAAC,QAAQ,GAAyC,kBAAkB,CAAC;IAElF,YAAY,OAAe,EAAE,OAA4B;QACvD,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;;AALH,kDAMC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAJD,kDAIC;AAED,MAAa,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAJD,wDAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC;AAED,MAAa,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAJD,kEAIC;AAED,MAAa,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAJD,gEAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAJD,8DAIC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveConstructableServiceClass = resolveConstructableServiceClass;
|
|
4
|
+
exports.resolveFactoryServiceClass = resolveFactoryServiceClass;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const BaseService_1 = require("./BaseService");
|
|
7
|
+
const Exceptions_1 = require("./Exceptions");
|
|
8
|
+
const node_module_1 = require("node:module");
|
|
9
|
+
const node_url_1 = require("node:url");
|
|
10
|
+
const path = tslib_1.__importStar(require("node:path"));
|
|
11
|
+
const requireFromApp = (0, node_module_1.createRequire)(path.join(process.cwd(), 'package.json'));
|
|
12
|
+
async function loadPackage(configuredName) {
|
|
13
|
+
let resolvedPath;
|
|
14
|
+
try {
|
|
15
|
+
resolvedPath = requireFromApp.resolve(configuredName);
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
throw new Exceptions_1.InvalidConfigException(`Service package "${configuredName}" could not be resolved — make sure it's installed in your deployment. Underlying error: ${e.message}`);
|
|
19
|
+
}
|
|
20
|
+
return Promise.resolve(`${(0, node_url_1.pathToFileURL)(resolvedPath).href}`).then(s => tslib_1.__importStar(require(s)));
|
|
21
|
+
}
|
|
22
|
+
function assertNexxusService(cls, configuredName) {
|
|
23
|
+
if (typeof cls !== 'function' || !(cls.prototype instanceof BaseService_1.NexxusBaseService)) {
|
|
24
|
+
throw new Exceptions_1.InvalidConfigException(`Class resolved from "${configuredName}" does not extend NexxusBaseService. Make sure the adapter extends NexxusBaseService.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function pickDefaultExport(mod, configuredName) {
|
|
28
|
+
if (typeof mod.default === 'function') {
|
|
29
|
+
return mod.default;
|
|
30
|
+
}
|
|
31
|
+
if (typeof mod === 'function') {
|
|
32
|
+
return mod;
|
|
33
|
+
}
|
|
34
|
+
throw new Exceptions_1.InvalidConfigException(`Package "${configuredName}" does not default-export a class. Nexxus adapters must default-export the adapter class itself.`);
|
|
35
|
+
}
|
|
36
|
+
async function resolveConstructableServiceClass(configuredName, builtins) {
|
|
37
|
+
if (configuredName in builtins) {
|
|
38
|
+
return builtins[configuredName];
|
|
39
|
+
}
|
|
40
|
+
const mod = await loadPackage(configuredName);
|
|
41
|
+
const cls = pickDefaultExport(mod, configuredName);
|
|
42
|
+
assertNexxusService(cls, configuredName);
|
|
43
|
+
return cls;
|
|
44
|
+
}
|
|
45
|
+
async function resolveFactoryServiceClass(configuredName, builtins) {
|
|
46
|
+
if (configuredName in builtins) {
|
|
47
|
+
return builtins[configuredName];
|
|
48
|
+
}
|
|
49
|
+
const mod = await loadPackage(configuredName);
|
|
50
|
+
const cls = pickDefaultExport(mod, configuredName);
|
|
51
|
+
assertNexxusService(cls, configuredName);
|
|
52
|
+
if (typeof cls.create !== 'function') {
|
|
53
|
+
throw new Exceptions_1.InvalidConfigException(`Class resolved from "${configuredName}" does not expose a static create() method — required for factory-style services.`);
|
|
54
|
+
}
|
|
55
|
+
return cls;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=ServiceResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../src/lib/ServiceResolver.ts"],"names":[],"mappings":";;AAwFA,4EAcC;AAQD,gEAoBC;;AAlID,+CAIuB;AACvB,6CAAsD;AAEtD,6CAA4C;AAC5C,uCAAyC;AACzC,wDAAkC;AASlC,MAAM,cAAc,GAAG,IAAA,2BAAa,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAQ/E,KAAK,UAAU,WAAW,CAAC,cAAsB;IAC/C,IAAI,YAAoB,CAAC;IAEzB,IAAI,CAAC;QACH,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,mCAAsB,CAC9B,oBAAoB,cAAc,4FAA6F,CAAW,CAAC,OAAO,EAAE,CACrJ,CAAC;IACJ,CAAC;IAED,0BAAc,IAAA,wBAAa,EAAC,YAAY,CAAC,CAAC,IAAI,gDAAE;AAClD,CAAC;AAOD,SAAS,mBAAmB,CAAC,GAAY,EAAE,cAAsB;IAC/D,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,CAAE,GAA8B,CAAC,SAAS,YAAY,+BAAiB,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,mCAAsB,CAC9B,wBAAwB,cAAc,uFAAuF,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AASD,SAAS,iBAAiB,CAAC,GAAQ,EAAE,cAAsB;IACzD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,mCAAsB,CAC9B,YAAY,cAAc,kGAAkG,CAC7H,CAAC;AACJ,CAAC;AAgBM,KAAK,UAAU,gCAAgC,CACpD,cAAsB,EACtB,QAAyD;IAEzD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,OAAO,GAAsC,CAAC;AAChD,CAAC;AAQM,KAAK,UAAU,0BAA0B,CAC9C,cAAsB,EACtB,QAAmD;IAEnD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAQ,GAA4B,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,mCAAsB,CAC9B,wBAAwB,cAAc,mFAAmF,CAC1H,CAAC;IACJ,CAAC;IAED,OAAO,GAAgC,CAAC;AAC1C,CAAC"}
|
|
@@ -30,9 +30,7 @@ export class NexxusFilterQuery {
|
|
|
30
30
|
if (node.operator === '$and') {
|
|
31
31
|
return node.conditions.every(childNode => this.testNode(childNode, object));
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
return node.conditions.some(childNode => this.testNode(childNode, object));
|
|
35
|
-
}
|
|
33
|
+
return node.conditions.some(childNode => this.testNode(childNode, object));
|
|
36
34
|
}
|
|
37
35
|
validateAndParse() {
|
|
38
36
|
this.nodes = this.parseQuery(this.query, this.modelDef);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterQuery.js","sourceRoot":"","sources":["../../src/common/FilterQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC5B,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAK3D,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,QAAQ,MAAM,WAAW,CAAC;AAqCjC,MAAM,OAAO,iBAAiB;IAKlB;IAJF,KAAK,GAAiB,EAAE,CAAC;IACzB,QAAQ,CAAiB;IAEjC,YACU,KAA4B,EACpC,MAAsB;QADd,UAAK,GAAL,KAAK,CAAuB;QAGpC,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,uBAAuB,EAAE,GAAG,MAAM,EAAE,CAAC;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,kBAAkB;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAA0B,CAAC;IACvE,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,IAAI,CAAC,MAAgC;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,QAAQ,CAAC,IAAgB,EAAE,MAAgC;QACjE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAGD,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterQuery.js","sourceRoot":"","sources":["../../src/common/FilterQuery.ts"],"names":[],"mappings":"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"}
|
package/dist-esm/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./lib/ConfigProvider";
|
|
|
3
3
|
export * from "./lib/ConfigManager";
|
|
4
4
|
export * from "./lib/BaseService";
|
|
5
5
|
export * from "./lib/Logger";
|
|
6
|
+
export * from "./lib/ServiceResolver";
|
|
6
7
|
export * from "./common/QueuePayloads";
|
|
7
8
|
export * from "./common/JsonPatch";
|
|
8
9
|
export * from "./common/FilterQuery";
|
package/dist-esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAE9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseService.js","sourceRoot":"","sources":["../../src/lib/BaseService.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,17 +6,22 @@ import deepMerge from "deepmerge";
|
|
|
6
6
|
import * as fs from "node:fs";
|
|
7
7
|
import * as path from "node:path";
|
|
8
8
|
export class NexxusConfigManager {
|
|
9
|
-
static CONF_FILE_NAME =
|
|
9
|
+
static CONF_FILE_NAME = 'nexxus.conf.json';
|
|
10
|
+
static DEFAULT_CONF_PATH = '/etc/nexxus';
|
|
10
11
|
jsonSchema;
|
|
11
12
|
envVarsSpecs = [];
|
|
12
13
|
cliArgsSpecs = [];
|
|
13
14
|
data = {};
|
|
14
15
|
configProviders = [];
|
|
15
16
|
customProviders = [];
|
|
16
|
-
|
|
17
|
+
registeredServices = new Set();
|
|
18
|
+
dataInitialized = false;
|
|
19
|
+
hasNewRegistrations = false;
|
|
20
|
+
constructor(configFilePath) {
|
|
17
21
|
const schemaPath = path.join(__dirname, "../../src/schemas/root.schema.json");
|
|
22
|
+
const resolvedConfPath = path.resolve(configFilePath || process.env.NXX_CONF_PATH || path.join(NexxusConfigManager.DEFAULT_CONF_PATH, NexxusConfigManager.CONF_FILE_NAME));
|
|
18
23
|
this.jsonSchema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
|
|
19
|
-
this.configProviders.push(new NexxusFileConfigProvider(
|
|
24
|
+
this.configProviders.push(new NexxusFileConfigProvider(resolvedConfPath));
|
|
20
25
|
this.configProviders.push(new NexxusEnvVarsConfigProvider());
|
|
21
26
|
this.configProviders.push(new NexxusCliArgConfigProvider());
|
|
22
27
|
}
|
|
@@ -37,16 +42,30 @@ export class NexxusConfigManager {
|
|
|
37
42
|
this.jsonSchema.required.push(def.where);
|
|
38
43
|
}
|
|
39
44
|
}
|
|
45
|
+
registerService(svc) {
|
|
46
|
+
if (this.registeredServices.has(svc.name)) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const schemaDef = svc.schema();
|
|
50
|
+
const className = svc.name;
|
|
51
|
+
const configRootKey = schemaDef.where;
|
|
52
|
+
this.cliArgsSpecs.push({ className, configRootKey, specs: svc.cliArgConfig() });
|
|
53
|
+
this.envVarsSpecs.push({ className, configRootKey, specs: svc.envVarConfig() });
|
|
54
|
+
this.addJsonSchemaDef(schemaDef);
|
|
55
|
+
this.registeredServices.add(className);
|
|
56
|
+
this.hasNewRegistrations = true;
|
|
57
|
+
}
|
|
40
58
|
async validateServices(svcs) {
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
59
|
+
if (svcs) {
|
|
60
|
+
for (const svc of svcs) {
|
|
61
|
+
this.registerService(svc);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
if (!this.hasNewRegistrations) {
|
|
65
|
+
return;
|
|
48
66
|
}
|
|
49
67
|
await this.validate();
|
|
68
|
+
this.hasNewRegistrations = false;
|
|
50
69
|
}
|
|
51
70
|
populateFromCliArgs() {
|
|
52
71
|
if (this.cliArgsSpecs.length === 0) {
|
|
@@ -107,9 +126,24 @@ export class NexxusConfigManager {
|
|
|
107
126
|
}).join('\n');
|
|
108
127
|
}
|
|
109
128
|
async validate() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
129
|
+
if (!this.dataInitialized) {
|
|
130
|
+
const fileConfigProvider = this.configProviders[0];
|
|
131
|
+
try {
|
|
132
|
+
this.data = fileConfigProvider.getConfig();
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
if (e instanceof FatalErrorException) {
|
|
136
|
+
if (e.subcode === FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND) {
|
|
137
|
+
this.data = {};
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
throw e;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
await this.populateFromCustomProviders();
|
|
145
|
+
this.dataInitialized = true;
|
|
146
|
+
}
|
|
113
147
|
this.populateFromCliArgs();
|
|
114
148
|
this.populateFromEnvVars();
|
|
115
149
|
const ajv = new Ajv({ useDefaults: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAIL,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAe,MAAM,KAAK,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,SAAS,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAsClC,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAsB,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/lib/ConfigManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAIL,wBAAwB,EACxB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAe,MAAM,KAAK,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,SAAS,MAAM,WAAW,CAAC;AAGlC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAsClC,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,cAAc,GAAsB,kBAAkB,CAAC;IAC9D,MAAM,CAAC,iBAAiB,GAAsB,aAAa,CAAC;IAE5D,UAAU,CAAc;IACxB,YAAY,GAA0C,EAAE,CAAC;IACzD,YAAY,GAA0C,EAAE,CAAC;IACzD,IAAI,GAAiB,EAAE,CAAC;IAExB,eAAe,GAAkC,EAAE,CAAC;IACpD,eAAe,GAAkC,EAAE,CAAC;IAQpD,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAQ5C,eAAe,GAAY,KAAK,CAAC;IAOjC,mBAAmB,GAAY,KAAK,CAAC;IAE7C,YAAY,cAAwB;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAC5F,mBAAmB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,cAAc,CAC1E,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEM,iBAAiB,CAAC,QAA+B;QACtD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEO,gBAAgB,CAAC,GAA4B;QAGnD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,CAAC,IAAI,EAAE,EAA2B,CAAC;QACrG,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC;YAChC,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAYM,eAAe,CAAC,GAAuB;QAC5C,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;QAEtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAaM,KAAK,CAAC,gBAAgB,CAAC,IAAgC;QAC5D,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAyB,IAAI,GAAG,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAA+B,CAAC;QAEjF,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,sBAAsB,CAAC,iCAAiC,GAAG,CAAC,IAAI;sCAC9C,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACpG,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE7C,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAE1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACvB,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAChE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,CAAgC,CAAC;QAClF,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,2BAA2B,CAAC,cAAc,CAAC;QAE1D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,sBAAsB,CAAC,uBAAuB,MAAM,GAAG,MAAM,CAAC,IAAI;sCAChD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;gBACvG,CAAC;gBAED,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAErD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBAChF,CAAC;gBAED,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;YAE1C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAAyB;QAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,KAAK,GAAG,CAAC,YAAY,IAAI,OAAO,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC;QACjE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,QAAQ;QAKpB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAA6B,CAAC;YAE/E,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,mBAAmB,EAAE,CAAC;oBACrC,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;wBAGrE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,CAAC;oBACV,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAa,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAA2B,CAAC,CAAC;YAErF,MAAM,IAAI,mBAAmB,CAAC,kCAAkC,GAAG,gBAAgB,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEM,SAAS,CAAC,KAAc;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC"}
|
|
@@ -16,7 +16,15 @@ export class NexxusFileConfigProvider extends NexxusConfigProvider {
|
|
|
16
16
|
fs.accessSync(this.filePath);
|
|
17
17
|
}
|
|
18
18
|
catch (e) {
|
|
19
|
-
|
|
19
|
+
if (e.code === 'ENOENT') {
|
|
20
|
+
throw new FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, FatalErrorException.SUBCODES.CONFIG_FILE_NOT_FOUND);
|
|
21
|
+
}
|
|
22
|
+
else if (e.code === 'EACCES') {
|
|
23
|
+
throw new FatalErrorException(`Cannot access config file "${this.filePath}": ${e.message}`, FatalErrorException.SUBCODES.CONFIG_FILE_UNREADABLE);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
throw new FatalErrorException(`Failed reading config file "${this.filePath}": ${e.message}`);
|
|
27
|
+
}
|
|
20
28
|
}
|
|
21
29
|
return JSON.parse(fs.readFileSync(this.filePath, 'utf-8'));
|
|
22
30
|
}
|
|
@@ -36,6 +44,7 @@ export class NexxusEnvVarsConfigProvider extends NexxusConfigProvider {
|
|
|
36
44
|
export class NexxusCliArgConfigProvider extends NexxusConfigProvider {
|
|
37
45
|
argParser;
|
|
38
46
|
originalExit;
|
|
47
|
+
addedArgs = new Set();
|
|
39
48
|
constructor() {
|
|
40
49
|
super();
|
|
41
50
|
this.argParser = new ArgumentParser({ add_help: false, usage: SUPPRESS });
|
|
@@ -47,7 +56,11 @@ export class NexxusCliArgConfigProvider extends NexxusConfigProvider {
|
|
|
47
56
|
};
|
|
48
57
|
}
|
|
49
58
|
addArgument(name, type) {
|
|
59
|
+
if (this.addedArgs.has(name)) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
50
62
|
this.argParser.add_argument(`--${name}`, { type: type, dest: name, required: false });
|
|
63
|
+
this.addedArgs.add(name);
|
|
51
64
|
}
|
|
52
65
|
getConfig() {
|
|
53
66
|
return this.argParser.parse_args();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AASpD,MAAM,OAAgB,oBAAoB;CAEzC;AAED,MAAM,OAAgB,yBAAyB;CAE9C;AAED,MAAM,OAAO,wBAAyB,SAAQ,oBAAoB;IAC5C;IAApB,YAAoB,QAAgB;QAClC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAQ;IAEpC,CAAC;IAEM,SAAS;QACd,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,mBAAmB,CAAC,8BAA8B,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["../../src/lib/ConfigProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,14 +11,25 @@ export var NexxusExceptions;
|
|
|
11
11
|
})(NexxusExceptions || (NexxusExceptions = {}));
|
|
12
12
|
;
|
|
13
13
|
export class NexxusException extends Error {
|
|
14
|
-
|
|
14
|
+
subcode;
|
|
15
|
+
constructor(type, message, subcode) {
|
|
15
16
|
super(message);
|
|
16
17
|
this.name = type;
|
|
18
|
+
this.subcode = subcode;
|
|
17
19
|
}
|
|
18
20
|
}
|
|
21
|
+
var FatalErrorSubcodes;
|
|
22
|
+
(function (FatalErrorSubcodes) {
|
|
23
|
+
FatalErrorSubcodes["CONFIG_FILE_NOT_FOUND"] = "CONFIG_FILE_NOT_FOUND";
|
|
24
|
+
FatalErrorSubcodes["CONFIG_FILE_INVALID_JSON"] = "CONFIG_FILE_INVALID_JSON";
|
|
25
|
+
FatalErrorSubcodes["CONFIG_FILE_INVALID_SCHEMA"] = "CONFIG_FILE_INVALID_SCHEMA";
|
|
26
|
+
FatalErrorSubcodes["CONFIG_FILE_UNREADABLE"] = "CONFIG_FILE_UNREADABLE";
|
|
27
|
+
})(FatalErrorSubcodes || (FatalErrorSubcodes = {}));
|
|
28
|
+
;
|
|
19
29
|
export class FatalErrorException extends NexxusException {
|
|
20
|
-
|
|
21
|
-
|
|
30
|
+
static SUBCODES = FatalErrorSubcodes;
|
|
31
|
+
constructor(message, subcode) {
|
|
32
|
+
super(NexxusExceptions.FATAL_ERROR, message, subcode);
|
|
22
33
|
}
|
|
23
34
|
}
|
|
24
35
|
export class BadRequestException extends NexxusException {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,sEAAkD,CAAA;IAClD,oEAAgD,CAAA;AAClD,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"Exceptions.js","sourceRoot":"","sources":["../../src/lib/Exceptions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IAC1B,uDAAmC,CAAA;IACnC,uDAAmC,CAAA;IACnC,iEAA6C,CAAA;IAC7C,6DAAyC,CAAA;IACzC,oEAAgD,CAAA;IAChD,wEAAoD,CAAA;IACpD,sEAAkD,CAAA;IAClD,oEAAgD,CAAA;AAClD,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAAA,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,OAAO,CAAU;IAEjC,YAAY,IAAY,EAAE,OAAe,EAAE,OAAgB;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,IAAK,kBAKJ;AALD,WAAK,kBAAkB;IACrB,qEAA+C,CAAA;IAC/C,2EAAqD,CAAA;IACrD,+EAAyD,CAAA;IACzD,uEAAiD,CAAA;AACnD,CAAC,EALI,kBAAkB,KAAlB,kBAAkB,QAKtB;AAAA,CAAC;AAEF,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAC/C,MAAM,CAAC,QAAQ,GAAyC,kBAAkB,CAAC;IAElF,YAAY,OAAe,EAAE,OAA4B;QACvD,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;;AAGH,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC9D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAC7D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { NexxusBaseService } from './BaseService';
|
|
2
|
+
import { InvalidConfigException } from './Exceptions';
|
|
3
|
+
import { createRequire } from 'node:module';
|
|
4
|
+
import { pathToFileURL } from 'node:url';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
const requireFromApp = createRequire(path.join(process.cwd(), 'package.json'));
|
|
7
|
+
async function loadPackage(configuredName) {
|
|
8
|
+
let resolvedPath;
|
|
9
|
+
try {
|
|
10
|
+
resolvedPath = requireFromApp.resolve(configuredName);
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
throw new InvalidConfigException(`Service package "${configuredName}" could not be resolved — make sure it's installed in your deployment. Underlying error: ${e.message}`);
|
|
14
|
+
}
|
|
15
|
+
return import(pathToFileURL(resolvedPath).href);
|
|
16
|
+
}
|
|
17
|
+
function assertNexxusService(cls, configuredName) {
|
|
18
|
+
if (typeof cls !== 'function' || !(cls.prototype instanceof NexxusBaseService)) {
|
|
19
|
+
throw new InvalidConfigException(`Class resolved from "${configuredName}" does not extend NexxusBaseService. Make sure the adapter extends NexxusBaseService.`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function pickDefaultExport(mod, configuredName) {
|
|
23
|
+
if (typeof mod.default === 'function') {
|
|
24
|
+
return mod.default;
|
|
25
|
+
}
|
|
26
|
+
if (typeof mod === 'function') {
|
|
27
|
+
return mod;
|
|
28
|
+
}
|
|
29
|
+
throw new InvalidConfigException(`Package "${configuredName}" does not default-export a class. Nexxus adapters must default-export the adapter class itself.`);
|
|
30
|
+
}
|
|
31
|
+
export async function resolveConstructableServiceClass(configuredName, builtins) {
|
|
32
|
+
if (configuredName in builtins) {
|
|
33
|
+
return builtins[configuredName];
|
|
34
|
+
}
|
|
35
|
+
const mod = await loadPackage(configuredName);
|
|
36
|
+
const cls = pickDefaultExport(mod, configuredName);
|
|
37
|
+
assertNexxusService(cls, configuredName);
|
|
38
|
+
return cls;
|
|
39
|
+
}
|
|
40
|
+
export async function resolveFactoryServiceClass(configuredName, builtins) {
|
|
41
|
+
if (configuredName in builtins) {
|
|
42
|
+
return builtins[configuredName];
|
|
43
|
+
}
|
|
44
|
+
const mod = await loadPackage(configuredName);
|
|
45
|
+
const cls = pickDefaultExport(mod, configuredName);
|
|
46
|
+
assertNexxusService(cls, configuredName);
|
|
47
|
+
if (typeof cls.create !== 'function') {
|
|
48
|
+
throw new InvalidConfigException(`Class resolved from "${configuredName}" does not expose a static create() method — required for factory-style services.`);
|
|
49
|
+
}
|
|
50
|
+
return cls;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=ServiceResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceResolver.js","sourceRoot":"","sources":["../../src/lib/ServiceResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAGlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AASlC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAQ/E,KAAK,UAAU,WAAW,CAAC,cAAsB;IAC/C,IAAI,YAAoB,CAAC;IAEzB,IAAI,CAAC;QACH,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,sBAAsB,CAC9B,oBAAoB,cAAc,4FAA6F,CAAW,CAAC,OAAO,EAAE,CACrJ,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AAOD,SAAS,mBAAmB,CAAC,GAAY,EAAE,cAAsB;IAC/D,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,CAAC,CAAE,GAA8B,CAAC,SAAS,YAAY,iBAAiB,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,sBAAsB,CAC9B,wBAAwB,cAAc,uFAAuF,CAC9H,CAAC;IACJ,CAAC;AACH,CAAC;AASD,SAAS,iBAAiB,CAAC,GAAQ,EAAE,cAAsB;IACzD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,IAAI,sBAAsB,CAC9B,YAAY,cAAc,kGAAkG,CAC7H,CAAC;AACJ,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,cAAsB,EACtB,QAAyD;IAEzD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,OAAO,GAAsC,CAAC;AAChD,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,cAAsB,EACtB,QAAmD;IAEnD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEnD,mBAAmB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAQ,GAA4B,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,sBAAsB,CAC9B,wBAAwB,cAAc,mFAAmF,CAC1H,CAAC;IACJ,CAAC;IAED,OAAO,GAAgC,CAAC;AAC1C,CAAC"}
|
package/dist-types/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./lib/ConfigProvider";
|
|
|
3
3
|
export * from "./lib/ConfigManager";
|
|
4
4
|
export * from "./lib/BaseService";
|
|
5
5
|
export * from "./lib/Logger";
|
|
6
|
+
export * from "./lib/ServiceResolver";
|
|
6
7
|
export * from "./common/QueuePayloads";
|
|
7
8
|
export * from "./common/JsonPatch";
|
|
8
9
|
export * from "./common/FilterQuery";
|
|
@@ -6,6 +6,49 @@ export interface INexxusBaseServices {
|
|
|
6
6
|
configManager: NexxusConfigManager;
|
|
7
7
|
logger: NexxusBaseLogger<NexxusConfig>;
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Static-only shape of a Nexxus service class. Anything ConfigManager needs to
|
|
11
|
+
* register a service's config lives here — `name` (for diagnostics), plus the
|
|
12
|
+
* three static-config accessors. Constructor visibility is intentionally
|
|
13
|
+
* absent, so classes that expose an async factory instead of a public
|
|
14
|
+
* constructor (e.g. `WinstonNexxusLogger.create(...)`) still satisfy the type.
|
|
15
|
+
*
|
|
16
|
+
* All `NexxusBaseService` subclasses satisfy this structurally. Downstream code
|
|
17
|
+
* writing custom services should type against this interface when passing
|
|
18
|
+
* classes to `ConfigManager.validateServices(...)`.
|
|
19
|
+
*/
|
|
20
|
+
export interface NexxusServiceClass {
|
|
21
|
+
readonly name: string;
|
|
22
|
+
schema(): AddJsonSchemaDefFuncArg;
|
|
23
|
+
envVarConfig(): ConfigEnvVars;
|
|
24
|
+
cliArgConfig(): ConfigCliArgs;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* `NexxusServiceClass` + a public constructor. This is the default shape for
|
|
28
|
+
* pluggable adapters — DB, MQ, most anything without async init. Consumers
|
|
29
|
+
* `new Cls(services)` directly at the bootstrap site.
|
|
30
|
+
*
|
|
31
|
+
* If your adapter needs to await something before it's ready (dynamic
|
|
32
|
+
* imports, remote fetches, warm-up connections), use
|
|
33
|
+
* `NexxusFactoryServiceClass` instead — that's what `WinstonNexxusLogger`
|
|
34
|
+
* does for dynamic transports.
|
|
35
|
+
*/
|
|
36
|
+
export interface NexxusConstructableServiceClass extends NexxusServiceClass {
|
|
37
|
+
new (services: INexxusBaseServices): NexxusBaseService<any, any>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* `NexxusServiceClass` + a static async factory. For adapters whose
|
|
41
|
+
* initialization has to await something — dynamic imports, remote handshakes,
|
|
42
|
+
* schema fetches. The class typically hides its constructor (private) so
|
|
43
|
+
* consumers must go through `Cls.create(services)`.
|
|
44
|
+
*
|
|
45
|
+
* Currently used only for `WinstonNexxusLogger`. Most adapters are fine as
|
|
46
|
+
* `NexxusConstructableServiceClass`; only reach for this when async init is
|
|
47
|
+
* actually needed.
|
|
48
|
+
*/
|
|
49
|
+
export interface NexxusFactoryServiceClass extends NexxusServiceClass {
|
|
50
|
+
create(services: INexxusBaseServices): Promise<NexxusBaseService<any, any>>;
|
|
51
|
+
}
|
|
9
52
|
declare class TypedEventEmitter<E> {
|
|
10
53
|
private emitter;
|
|
11
54
|
constructor();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NexxusServiceClass } from './BaseService';
|
|
2
2
|
import { CliArgType, NexxusConfig, INexxusConfigProvider } from "./ConfigProvider";
|
|
3
3
|
import type { JSONSchema7Definition } from "json-schema";
|
|
4
4
|
export type AddJsonSchemaDefFuncArg = {
|
|
@@ -22,16 +22,59 @@ type CliArgsSpec = {
|
|
|
22
22
|
export type ConfigCliArgs = Array<CliArgsSpec>;
|
|
23
23
|
export declare class NexxusConfigManager {
|
|
24
24
|
private static CONF_FILE_NAME;
|
|
25
|
+
private static DEFAULT_CONF_PATH;
|
|
25
26
|
private jsonSchema;
|
|
26
27
|
private envVarsSpecs;
|
|
27
28
|
private cliArgsSpecs;
|
|
28
29
|
private data;
|
|
29
30
|
private configProviders;
|
|
30
31
|
private customProviders;
|
|
31
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Names (class.name) of services already registered. Guards against
|
|
34
|
+
* double-registration when the same class is passed to `registerService`
|
|
35
|
+
* or `validateServices` more than once — schema, env, and CLI specs each
|
|
36
|
+
* carry a uniqueness invariant that would otherwise throw on a second pass.
|
|
37
|
+
*/
|
|
38
|
+
private registeredServices;
|
|
39
|
+
/**
|
|
40
|
+
* True until the file + custom providers have been loaded into `this.data`
|
|
41
|
+
* (i.e., first successful validate()). Subsequent validate() calls skip
|
|
42
|
+
* re-reading the config file — the file is treated as immutable for the
|
|
43
|
+
* lifetime of this ConfigManager.
|
|
44
|
+
*/
|
|
45
|
+
private dataInitialized;
|
|
46
|
+
/**
|
|
47
|
+
* True when at least one service has been registered since the last
|
|
48
|
+
* successful validate(). Lets `validateServices()` no-op cleanly when
|
|
49
|
+
* called after everything's already been validated.
|
|
50
|
+
*/
|
|
51
|
+
private hasNewRegistrations;
|
|
52
|
+
constructor(configFilePath?: string);
|
|
32
53
|
addCustomProvider(provider: INexxusConfigProvider): void;
|
|
33
54
|
private addJsonSchemaDef;
|
|
34
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Register a service's config schema, env-var spec, and CLI-arg spec so
|
|
57
|
+
* they're included in the next `validateServices()` pass. Idempotent per
|
|
58
|
+
* class name — repeat calls with the same class are silent no-ops.
|
|
59
|
+
*
|
|
60
|
+
* Intended usage: call once per service class ahead of time (in any order),
|
|
61
|
+
* then call `validateServices()` once to actually run validation. For the
|
|
62
|
+
* shorthand where you know all services up front, `validateServices([...])`
|
|
63
|
+
* still accepts an array and registers each entry before validating.
|
|
64
|
+
*/
|
|
65
|
+
registerService(svc: NexxusServiceClass): void;
|
|
66
|
+
/**
|
|
67
|
+
* Runs config validation against every registered service's schema. Safe
|
|
68
|
+
* to call multiple times — the config file is read only on the first call,
|
|
69
|
+
* and repeat calls with no new registrations short-circuit as a no-op.
|
|
70
|
+
*
|
|
71
|
+
* The optional `svcs` array is a shorthand: each entry is passed through
|
|
72
|
+
* `registerService()` before validation runs. Existing callers passing all
|
|
73
|
+
* services up front (`validateServices([A, B, C])`) continue to work.
|
|
74
|
+
* Later calls can register additional services (e.g. dynamically-resolved
|
|
75
|
+
* logger/db/mq implementations) and re-validate.
|
|
76
|
+
*/
|
|
77
|
+
validateServices(svcs?: Array<NexxusServiceClass>): Promise<void>;
|
|
35
78
|
private populateFromCliArgs;
|
|
36
79
|
private populateFromEnvVars;
|
|
37
80
|
private populateFromCustomProviders;
|
|
@@ -21,7 +21,13 @@ export declare class NexxusEnvVarsConfigProvider extends NexxusConfigProvider {
|
|
|
21
21
|
export declare class NexxusCliArgConfigProvider extends NexxusConfigProvider {
|
|
22
22
|
private argParser;
|
|
23
23
|
private originalExit;
|
|
24
|
+
private addedArgs;
|
|
24
25
|
constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Idempotent per argument name — safe to call multiple times across repeat
|
|
28
|
+
* `ConfigManager.validateServices()` invocations. Argparse would otherwise
|
|
29
|
+
* throw on a second `add_argument` with the same name.
|
|
30
|
+
*/
|
|
25
31
|
addArgument(name: string, type: CliArgType): void;
|
|
26
32
|
getConfig(): NexxusConfig;
|
|
27
33
|
}
|
|
@@ -9,10 +9,18 @@ export declare enum NexxusExceptions {
|
|
|
9
9
|
INVALID_USER_MODEL = "InvalidUserModelException"
|
|
10
10
|
}
|
|
11
11
|
export declare class NexxusException extends Error {
|
|
12
|
-
|
|
12
|
+
readonly subcode?: string;
|
|
13
|
+
constructor(type: string, message: string, subcode?: string);
|
|
14
|
+
}
|
|
15
|
+
declare enum FatalErrorSubcodes {
|
|
16
|
+
CONFIG_FILE_NOT_FOUND = "CONFIG_FILE_NOT_FOUND",
|
|
17
|
+
CONFIG_FILE_INVALID_JSON = "CONFIG_FILE_INVALID_JSON",
|
|
18
|
+
CONFIG_FILE_INVALID_SCHEMA = "CONFIG_FILE_INVALID_SCHEMA",
|
|
19
|
+
CONFIG_FILE_UNREADABLE = "CONFIG_FILE_UNREADABLE"
|
|
13
20
|
}
|
|
14
21
|
export declare class FatalErrorException extends NexxusException {
|
|
15
|
-
|
|
22
|
+
static SUBCODES: Readonly<typeof FatalErrorSubcodes>;
|
|
23
|
+
constructor(message: string, subcode?: FatalErrorSubcodes);
|
|
16
24
|
}
|
|
17
25
|
export declare class BadRequestException extends NexxusException {
|
|
18
26
|
constructor(message: string);
|
|
@@ -35,3 +43,4 @@ export declare class InvalidSchemaDataException extends NexxusException {
|
|
|
35
43
|
export declare class InvalidUserModelException extends NexxusException {
|
|
36
44
|
constructor(message: string);
|
|
37
45
|
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NexxusConstructableServiceClass, NexxusFactoryServiceClass } from './BaseService';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a config-declared service to a **constructable** class — one the
|
|
4
|
+
* bootstrap will instantiate via `new Cls(services)`.
|
|
5
|
+
*
|
|
6
|
+
* 1. If `configuredName` is in `builtins`, that class is returned directly
|
|
7
|
+
* (fast path — no I/O, no dynamic import). Callers pass their known
|
|
8
|
+
* static-imported builtins here.
|
|
9
|
+
* 2. Otherwise the name is treated as an npm package specifier and loaded
|
|
10
|
+
* via dynamic import against the app's install tree.
|
|
11
|
+
*
|
|
12
|
+
* Used by `NexxusApi.resolveConstructableService` and
|
|
13
|
+
* `NexxusBaseWorker.resolveConstructableService` — the host classes provide
|
|
14
|
+
* their own builtin maps.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveConstructableServiceClass(configuredName: string, builtins: Record<string, NexxusConstructableServiceClass>): Promise<NexxusConstructableServiceClass>;
|
|
17
|
+
/**
|
|
18
|
+
* Same as `resolveConstructableServiceClass` but for services that expose an
|
|
19
|
+
* async `static create(services)` factory. Runtime-checks the class actually
|
|
20
|
+
* has `create` before returning, so misconfigurations surface here instead
|
|
21
|
+
* of blowing up at bootstrap time.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveFactoryServiceClass(configuredName: string, builtins: Record<string, NexxusFactoryServiceClass>): Promise<NexxusFactoryServiceClass>;
|