@venizia/ignis-inversion 0.0.1-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.
@@ -0,0 +1,16 @@
1
+ import { z } from "zod";
2
+ export declare const ErrorSchema: z.ZodObject<{
3
+ name: z.ZodOptional<z.ZodString>;
4
+ statusCode: z.ZodOptional<z.ZodNumber>;
5
+ messageCode: z.ZodOptional<z.ZodString>;
6
+ message: z.ZodString;
7
+ }, z.core.$catchall<z.ZodAny>>;
8
+ export type TError = z.infer<typeof ErrorSchema>;
9
+ export declare class ApplicationError extends Error {
10
+ statusCode: number;
11
+ messageCode?: string;
12
+ constructor(opts: TError);
13
+ static getError(opts: TError): ApplicationError;
14
+ }
15
+ export declare const getError: (opts: TError) => ApplicationError;
16
+ //# sourceMappingURL=app-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-error.d.ts","sourceRoot":"","sources":["../../src/common/app-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW;;;;;8BAOJ,CAAC;AAErB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEjD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,IAAI,EAAE,MAAM;IAQxB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;CAG7B;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,qBAEpC,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getError = exports.ApplicationError = exports.ErrorSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.ErrorSchema = zod_1.z
6
+ .object({
7
+ name: zod_1.z.string().optional(),
8
+ statusCode: zod_1.z.number().optional(),
9
+ messageCode: zod_1.z.string().optional(),
10
+ message: zod_1.z.string(),
11
+ })
12
+ .catchall(zod_1.z.any());
13
+ class ApplicationError extends Error {
14
+ constructor(opts) {
15
+ const { message, messageCode, statusCode = 400 } = opts;
16
+ super(message);
17
+ this.statusCode = statusCode;
18
+ this.messageCode = messageCode;
19
+ }
20
+ static getError(opts) {
21
+ return new ApplicationError(opts);
22
+ }
23
+ }
24
+ exports.ApplicationError = ApplicationError;
25
+ const getError = (opts) => {
26
+ return new ApplicationError(opts);
27
+ };
28
+ exports.getError = getError;
29
+ //# sourceMappingURL=app-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-error.js","sourceRoot":"","sources":["../../src/common/app-error.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,WAAW,GAAG,OAAC;KACzB,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;CACpB,CAAC;KACD,QAAQ,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAIrB,MAAa,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,IAAY;QACtB,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAfD,4CAeC;AAEM,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;IACvC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB"}
@@ -0,0 +1,9 @@
1
+ export declare class BaseHelper {
2
+ scope: string;
3
+ identifier: string;
4
+ constructor(opts: {
5
+ scope: string;
6
+ identifier?: string;
7
+ });
8
+ }
9
+ //# sourceMappingURL=base-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-helper.d.ts","sourceRoot":"","sources":["../../src/common/base-helper.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAIzD"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseHelper = void 0;
4
+ class BaseHelper {
5
+ constructor(opts) {
6
+ this.scope = opts.scope ?? "";
7
+ this.identifier = opts.identifier ?? "";
8
+ }
9
+ }
10
+ exports.BaseHelper = BaseHelper;
11
+ //# sourceMappingURL=base-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-helper.js","sourceRoot":"","sources":["../../src/common/base-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IAIrB,YAAY,IAA4C;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,CAAC;CACF;AARD,gCAQC"}
@@ -0,0 +1,6 @@
1
+ export * from "./app-error";
2
+ export * from "./base-helper";
3
+ export * from "./keys";
4
+ export * from "./logger";
5
+ export * from "./types";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,22 @@
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("./app-error"), exports);
18
+ __exportStar(require("./base-helper"), exports);
19
+ __exportStar(require("./keys"), exports);
20
+ __exportStar(require("./logger"), exports);
21
+ __exportStar(require("./types"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,gDAA8B;AAC9B,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB"}
@@ -0,0 +1,5 @@
1
+ export declare const MetadataKeys: {
2
+ PROPERTIES: symbol;
3
+ INJECT: symbol;
4
+ };
5
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/common/keys.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;CAMxB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataKeys = void 0;
4
+ exports.MetadataKeys = {
5
+ // Property metadata
6
+ PROPERTIES: Symbol.for("ignis:properties"),
7
+ // Injection metadata
8
+ INJECT: Symbol.for("ignis:inject"),
9
+ };
10
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/common/keys.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAE1C,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;CACnC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class Logger {
2
+ static info(message: string, ...args: unknown[]): void;
3
+ static warn(message: string, ...args: unknown[]): void;
4
+ static error(message: string, ...args: unknown[]): void;
5
+ static debug(message: string, ...args: unknown[]): void;
6
+ }
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI/C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAI/C,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIhD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAOjD"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ class Logger {
5
+ static info(message, ...args) {
6
+ console.log(`[INFO] ${message}`, ...args);
7
+ }
8
+ static warn(message, ...args) {
9
+ console.warn(`[WARN] ${message}`, ...args);
10
+ }
11
+ static error(message, ...args) {
12
+ console.error(`[ERROR] ${message}`, ...args);
13
+ }
14
+ static debug(message, ...args) {
15
+ if (!process.env.DEBUG) {
16
+ return;
17
+ }
18
+ console.log(`[DEBUG] ${message}`, ...args);
19
+ }
20
+ }
21
+ exports.Logger = Logger;
22
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QAC7C,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,GAAG,IAAe;QAC7C,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,GAAG,IAAe;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AApBD,wBAoBC"}
@@ -0,0 +1,46 @@
1
+ import { Container } from "./../container";
2
+ export type TNullable<T> = T | undefined | null;
3
+ export type ValueOrPromise<T> = T | Promise<T>;
4
+ export type ValueOf<T> = T[keyof T];
5
+ export type TConstructor<T> = new (...args: any[]) => T;
6
+ export type TAbstractConstructor<T> = abstract new (...args: any[]) => T;
7
+ export type TClass<T> = TConstructor<T> & {
8
+ [property: string]: any;
9
+ };
10
+ export type TConstValue<T extends TClass<any>> = Extract<ValueOf<T>, string | number>;
11
+ export interface IProvider<T> {
12
+ value(container: Container): T;
13
+ }
14
+ export declare const isClass: <T>(target: any) => target is TClass<T>;
15
+ export declare const isClassProvider: <T>(target: any) => target is TClass<IProvider<T>>;
16
+ export declare class BindingScopes {
17
+ static readonly SINGLETON = "singleton";
18
+ static readonly TRANSIENT = "transient";
19
+ }
20
+ export type TBindingScope = TConstValue<typeof BindingScopes>;
21
+ export declare class BindingValueTypes {
22
+ static readonly CLASS = "class";
23
+ static readonly VALUE = "value";
24
+ static readonly PROVIDER = "provider";
25
+ }
26
+ export type TBindingValueType = TConstValue<typeof BindingValueTypes>;
27
+ export interface IBindingTag {
28
+ [name: string]: any;
29
+ }
30
+ export declare class BindingKeys {
31
+ static build(opts: {
32
+ namespace: string;
33
+ key: string;
34
+ }): string;
35
+ }
36
+ export interface IPropertyMetadata {
37
+ bindingKey: string | symbol;
38
+ isOptional?: boolean;
39
+ [key: string]: any;
40
+ }
41
+ export interface IInjectMetadata {
42
+ key: string | symbol;
43
+ index: number;
44
+ isOptional?: boolean;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACxD,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AACzE,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAGtF,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAE1D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,QAAQ,GAAG,KAAG,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAI7E,CAAC;AAGF,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;CACzC;AACD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC;AAG9D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,cAAc;CACvC;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAGtE,MAAM,WAAW,WAAW;IAC1B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAGD,qBAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAgBtD;AAGD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BindingKeys = exports.BindingValueTypes = exports.BindingScopes = exports.isClassProvider = exports.isClass = void 0;
7
+ const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
8
+ const app_error_1 = require("./app-error");
9
+ const isClass = (target) => {
10
+ return typeof target === "function" && target.prototype !== undefined;
11
+ };
12
+ exports.isClass = isClass;
13
+ const isClassProvider = (target) => {
14
+ return (typeof target === "function" && target.prototype && typeof target.prototype.value === "function");
15
+ };
16
+ exports.isClassProvider = isClassProvider;
17
+ // -----------------------------------------------------------------------
18
+ class BindingScopes {
19
+ static { this.SINGLETON = "singleton"; }
20
+ static { this.TRANSIENT = "transient"; }
21
+ }
22
+ exports.BindingScopes = BindingScopes;
23
+ // -----------------------------------------------------------------------
24
+ class BindingValueTypes {
25
+ static { this.CLASS = "class"; }
26
+ static { this.VALUE = "value"; }
27
+ static { this.PROVIDER = "provider"; }
28
+ }
29
+ exports.BindingValueTypes = BindingValueTypes;
30
+ // -----------------------------------------------------------------------
31
+ class BindingKeys {
32
+ static build(opts) {
33
+ const { namespace, key } = opts;
34
+ const keyParts = [];
35
+ if (!(0, isEmpty_1.default)(namespace)) {
36
+ keyParts.push(namespace);
37
+ }
38
+ if ((0, isEmpty_1.default)(key)) {
39
+ throw (0, app_error_1.getError)({
40
+ message: `[BindingKeys][build] Invalid key to build | key: ${key}`,
41
+ });
42
+ }
43
+ keyParts.push(key);
44
+ return keyParts.join(".");
45
+ }
46
+ }
47
+ exports.BindingKeys = BindingKeys;
48
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAqC;AAErC,2CAAuC;AAmBhC,MAAM,OAAO,GAAG,CAAI,MAAW,EAAuB,EAAE;IAC7D,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC;AACxE,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,eAAe,GAAG,CAAI,MAAW,EAAkC,EAAE;IAChF,OAAO,CACL,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CACjG,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEF,0EAA0E;AAC1E,MAAa,aAAa;aACR,cAAS,GAAG,WAAW,CAAC;aACxB,cAAS,GAAG,WAAW,CAAC;;AAF1C,sCAGC;AAGD,0EAA0E;AAC1E,MAAa,iBAAiB;aACZ,UAAK,GAAG,OAAO,CAAC;aAChB,UAAK,GAAG,OAAO,CAAC;aAChB,aAAQ,GAAG,UAAU,CAAC;;AAHxC,8CAIC;AASD,0EAA0E;AAC1E,MAAa,WAAW;IACtB,MAAM,CAAC,KAAK,CAAC,IAAwC;QACnD,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,IAAI,CAAC,IAAA,iBAAO,EAAC,SAAS,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAA,iBAAO,EAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAA,oBAAQ,EAAC;gBACb,OAAO,EAAE,oDAAoD,GAAG,EAAE;aACnE,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF;AAjBD,kCAiBC"}
@@ -0,0 +1,75 @@
1
+ import { BaseHelper } from "./common/base-helper";
2
+ import { BindingValueTypes, IProvider, TBindingScope, TClass, TConstValue, TNullable } from "./common/types";
3
+ export declare class Binding<T = any> extends BaseHelper {
4
+ key: string;
5
+ private bindScope;
6
+ private tags;
7
+ private cached?;
8
+ private resolver;
9
+ constructor(opts: {
10
+ key: string;
11
+ });
12
+ static bind<T = any>(opts: {
13
+ key: string;
14
+ }): Binding<T>;
15
+ toClass(value: TClass<T>): this;
16
+ toValue(value: T): this;
17
+ toProvider(value: (<C extends Container>(container: C) => T) | TClass<IProvider<T>>): this;
18
+ getBindingMeta(opts: {
19
+ type: TConstValue<typeof BindingValueTypes>;
20
+ }): T | TClass<T> | TClass<IProvider<T>> | (<C extends Container>(container: C) => T);
21
+ setScope(scope: TBindingScope): this;
22
+ setTags(...tags: string[]): this;
23
+ hasTag(tag: string): boolean;
24
+ getTags(): string[];
25
+ getScope(): TBindingScope;
26
+ getValue(container?: Container): T;
27
+ clearCache(): void;
28
+ }
29
+ export declare class Container extends BaseHelper {
30
+ protected bindings: Map<string | symbol, Binding<any>>;
31
+ constructor(opts?: {
32
+ scope: string;
33
+ });
34
+ getMetadataRegistry(): import("./registry").MetadataRegistry;
35
+ bind<T>(opts: {
36
+ key: string | symbol;
37
+ }): Binding<T>;
38
+ isBound(opts: {
39
+ key: string | symbol;
40
+ }): boolean;
41
+ getBinding<T>(opts: {
42
+ key: string | symbol | {
43
+ namespace: string;
44
+ key: string;
45
+ };
46
+ }): TNullable<Binding<T>>;
47
+ unbind(opts: {
48
+ key: string | symbol;
49
+ }): boolean;
50
+ set<T>(opts: {
51
+ binding: Binding<T>;
52
+ }): void;
53
+ get<T>(opts: {
54
+ key: string | symbol | {
55
+ namespace: string;
56
+ key: string;
57
+ };
58
+ isOptional?: false;
59
+ }): T;
60
+ get<T>(opts: {
61
+ key: string | symbol | {
62
+ namespace: string;
63
+ key: string;
64
+ };
65
+ isOptional?: boolean;
66
+ }): T | undefined;
67
+ resolve<T>(cls: TClass<T>): T;
68
+ instantiate<T>(cls: TClass<T>): T;
69
+ findByTag<T = any>(opts: {
70
+ tag: string;
71
+ }): Binding<T>[];
72
+ clear(): void;
73
+ reset(): void;
74
+ }
75
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Container = exports.Binding = void 0;
4
+ const app_error_1 = require("./common/app-error");
5
+ const base_helper_1 = require("./common/base-helper");
6
+ const types_1 = require("./common/types");
7
+ const registry_1 = require("./registry");
8
+ // -------------------------------------------------------------------------------------
9
+ class Binding extends base_helper_1.BaseHelper {
10
+ // ------------------------------------------------------------------------------
11
+ constructor(opts) {
12
+ super({ scope: opts.key });
13
+ this.bindScope = types_1.BindingScopes.TRANSIENT;
14
+ this.tags = new Set([]);
15
+ this.key = opts.key;
16
+ const keyParts = this.key.split(".");
17
+ if (keyParts.length > 1) {
18
+ const [namespace] = keyParts;
19
+ this.setTags(namespace);
20
+ }
21
+ }
22
+ static bind(opts) {
23
+ return new Binding(opts);
24
+ }
25
+ // ------------------------------------------------------------------------------
26
+ toClass(value) {
27
+ this.resolver = { type: types_1.BindingValueTypes.CLASS, value };
28
+ return this;
29
+ }
30
+ toValue(value) {
31
+ this.resolver = { type: types_1.BindingValueTypes.VALUE, value };
32
+ return this;
33
+ }
34
+ toProvider(value) {
35
+ this.resolver = { type: types_1.BindingValueTypes.PROVIDER, value };
36
+ return this;
37
+ }
38
+ // ------------------------------------------------------------------------------
39
+ getBindingMeta(opts) {
40
+ if (this.resolver.type !== opts.type) {
41
+ throw (0, app_error_1.getError)({
42
+ message: `[getBindingMeta] Invalid resolver type, only ${this.resolver.type} is allowd | resolverType: ${this.resolver.type} | optType: ${opts.type}`,
43
+ });
44
+ }
45
+ return this.resolver.value;
46
+ }
47
+ setScope(scope) {
48
+ this.bindScope = scope;
49
+ return this;
50
+ }
51
+ setTags(...tags) {
52
+ tags.forEach(t => this.tags.add(t));
53
+ return this;
54
+ }
55
+ hasTag(tag) {
56
+ return this.tags.has(tag);
57
+ }
58
+ getTags() {
59
+ return Array.from(this.tags);
60
+ }
61
+ getScope() {
62
+ return this.bindScope;
63
+ }
64
+ getValue(container) {
65
+ if (this.bindScope === types_1.BindingScopes.SINGLETON && this.cached !== undefined) {
66
+ return this.cached;
67
+ }
68
+ let instance;
69
+ const { type: resolverType } = this.resolver;
70
+ switch (resolverType) {
71
+ case types_1.BindingValueTypes.VALUE: {
72
+ instance = this.resolver.value;
73
+ break;
74
+ }
75
+ case types_1.BindingValueTypes.PROVIDER: {
76
+ const provider = this.resolver.value;
77
+ if (!container) {
78
+ throw (0, app_error_1.getError)({
79
+ message: `[getValue] Invalid context/container to get provider value | type: ${resolverType} | key: ${this.key}`,
80
+ });
81
+ }
82
+ if (!(0, types_1.isClassProvider)(provider)) {
83
+ instance = provider(container);
84
+ break;
85
+ }
86
+ const p = new provider();
87
+ instance = p.value(container);
88
+ break;
89
+ }
90
+ case types_1.BindingValueTypes.CLASS: {
91
+ if (!container) {
92
+ throw (0, app_error_1.getError)({
93
+ message: `[getValue] Invalid context/container to instantiate class | type: ${resolverType} | key: ${this.key}`,
94
+ });
95
+ }
96
+ instance = container.instantiate(this.resolver.value);
97
+ break;
98
+ }
99
+ default: {
100
+ throw (0, app_error_1.getError)({
101
+ message: `[getValue] Invalid value type | valueType: ${resolverType}`,
102
+ });
103
+ }
104
+ }
105
+ if (this.bindScope === types_1.BindingScopes.SINGLETON) {
106
+ this.cached = instance;
107
+ }
108
+ return instance;
109
+ }
110
+ clearCache() {
111
+ if (!this.cached) {
112
+ return;
113
+ }
114
+ this.cached = undefined;
115
+ }
116
+ }
117
+ exports.Binding = Binding;
118
+ // -------------------------------------------------------------------------------------
119
+ class Container extends base_helper_1.BaseHelper {
120
+ constructor(opts) {
121
+ super({ scope: opts?.scope ?? Container.name });
122
+ this.bindings = new Map();
123
+ }
124
+ getMetadataRegistry() {
125
+ return registry_1.metadataRegistry;
126
+ }
127
+ bind(opts) {
128
+ const { key } = opts;
129
+ const keyStr = String(key);
130
+ const binding = new Binding({ key: keyStr });
131
+ this.bindings.set(keyStr, binding);
132
+ return binding;
133
+ }
134
+ isBound(opts) {
135
+ const { key } = opts;
136
+ const keyStr = String(key);
137
+ return this.bindings.has(keyStr);
138
+ }
139
+ getBinding(opts) {
140
+ let key = null;
141
+ switch (typeof opts.key) {
142
+ case "string": {
143
+ key = opts.key;
144
+ break;
145
+ }
146
+ case "symbol": {
147
+ key = opts.key.toString();
148
+ break;
149
+ }
150
+ case "object": {
151
+ key = types_1.BindingKeys.build(opts.key);
152
+ break;
153
+ }
154
+ default: {
155
+ throw (0, app_error_1.getError)({
156
+ message: `[getBinding] Invalid binding key type | opts: ${opts.key} | allowed: [string, symbol, { namespace: string, key: string }]`,
157
+ });
158
+ }
159
+ }
160
+ const binding = this.bindings.get(key);
161
+ return binding;
162
+ }
163
+ unbind(opts) {
164
+ const key = String(opts.key);
165
+ return this.bindings.delete(key);
166
+ }
167
+ set(opts) {
168
+ const { binding } = opts;
169
+ this.bindings.set(binding.key, binding);
170
+ }
171
+ get(opts) {
172
+ const { key, isOptional = false } = opts;
173
+ const binding = this.getBinding({ key });
174
+ if (binding) {
175
+ return binding.getValue(this);
176
+ }
177
+ if (!isOptional) {
178
+ throw (0, app_error_1.getError)({
179
+ message: `Binding key: ${opts.key.toString()} is not bounded in context!`,
180
+ });
181
+ }
182
+ return undefined;
183
+ }
184
+ resolve(cls) {
185
+ return this.instantiate(cls);
186
+ }
187
+ instantiate(cls) {
188
+ const registry = this.getMetadataRegistry();
189
+ // 1. Handle constructor parameter injection
190
+ const injectMetadata = registry.getInjectMetadata({
191
+ target: cls,
192
+ });
193
+ const args = [];
194
+ if (injectMetadata?.length) {
195
+ const sortedDeps = [...injectMetadata].sort((a, b) => a.index - b.index);
196
+ for (const meta of sortedDeps) {
197
+ const isOptional = meta.isOptional ?? false;
198
+ const dep = this.get({ key: meta.key, isOptional });
199
+ args[meta.index] = dep;
200
+ }
201
+ }
202
+ // Create instance
203
+ const instance = new cls(...args);
204
+ // 2. Handle property injection
205
+ const propertyMetadata = registry.getPropertiesMetadata({
206
+ target: instance,
207
+ });
208
+ if (!propertyMetadata?.size) {
209
+ return instance;
210
+ }
211
+ for (const [propertyKey, metadata] of propertyMetadata.entries()) {
212
+ const dep = this.get({
213
+ key: metadata.bindingKey,
214
+ isOptional: metadata.optional ?? false,
215
+ });
216
+ instance[propertyKey] = dep;
217
+ }
218
+ return instance;
219
+ }
220
+ findByTag(opts) {
221
+ const rs = [];
222
+ for (const [_k, binding] of this.bindings) {
223
+ if (!binding.hasTag(opts.tag)) {
224
+ continue;
225
+ }
226
+ rs.push(binding);
227
+ }
228
+ return rs;
229
+ }
230
+ clear() {
231
+ for (const [_, binding] of this.bindings) {
232
+ binding.clearCache();
233
+ }
234
+ }
235
+ reset() {
236
+ this.bindings.clear();
237
+ }
238
+ }
239
+ exports.Container = Container;
240
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import "reflect-metadata";
2
+ export * from "./common";
3
+ export * from "./container";
4
+ export * from "./registry";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
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
+ require("reflect-metadata");
18
+ __exportStar(require("./common"), exports);
19
+ __exportStar(require("./container"), exports);
20
+ __exportStar(require("./registry"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4BAA0B;AAE1B,2CAAyB;AACzB,8CAA4B;AAC5B,6CAA2B"}
@@ -0,0 +1,57 @@
1
+ import { BaseHelper } from "./common/base-helper";
2
+ import { IInjectMetadata, IPropertyMetadata, TClass } from "./common/types";
3
+ /**
4
+ * Central metadata registry for storing and retrieving decorator metadata
5
+ */
6
+ export declare class MetadataRegistry extends BaseHelper {
7
+ protected metadata: WeakMap<any, Map<symbol, any>>;
8
+ constructor();
9
+ define<Target extends object = object, Value = any>(opts: {
10
+ target: Target;
11
+ key: string | symbol;
12
+ value: Value;
13
+ }): void;
14
+ get<Target extends object = object, Value = any>(opts: {
15
+ target: Target;
16
+ key: string | symbol;
17
+ }): Value | undefined;
18
+ has<Target extends object = object>(opts: {
19
+ target: Target;
20
+ key: string | symbol;
21
+ }): boolean;
22
+ delete<Target extends object = object>(opts: {
23
+ target: Target;
24
+ key: string | symbol;
25
+ }): boolean;
26
+ getKeys<Target extends object = object>(opts: {
27
+ target: Target;
28
+ }): (string | symbol)[];
29
+ getMethodNames<T = any>(opts: {
30
+ target: TClass<T>;
31
+ }): string[];
32
+ clearMetadata<T extends object = object>(opts: {
33
+ target: T;
34
+ }): void;
35
+ setPropertyMetadata<T extends object = object>(opts: {
36
+ target: T;
37
+ propertyName: string | symbol;
38
+ metadata: IPropertyMetadata;
39
+ }): void;
40
+ getPropertiesMetadata<T extends object = object>(opts: {
41
+ target: T;
42
+ }): Map<string | symbol, IPropertyMetadata> | undefined;
43
+ getPropertyMetadata<T extends object = object>(opts: {
44
+ target: T;
45
+ propertyName: string | symbol;
46
+ }): IPropertyMetadata | undefined;
47
+ setInjectMetadata<T extends object = object>(opts: {
48
+ target: T;
49
+ index: number;
50
+ metadata: IInjectMetadata;
51
+ }): void;
52
+ getInjectMetadata<T extends object = object>(opts: {
53
+ target: T;
54
+ }): IInjectMetadata[] | undefined;
55
+ }
56
+ export declare const metadataRegistry: MetadataRegistry;
57
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;;IAQnD,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACxD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,IAAI;IAYR,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACtB,GAAG,KAAK,GAAG,SAAS;IAMrB,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO;IAM5F,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO;IAM/F,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE;IAUtF,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,MAAM,EAAE;IAU9D,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI;IAYnE,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,QAAQ,EAAE,iBAAiB,CAAC;KAC7B,GAAG,IAAI;IAYR,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC;KACX,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAAS;IAKvD,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;KAC/B,GAAG,iBAAiB,GAAG,SAAS;IASjC,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACjD,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC;KAC3B,GAAG,IAAI;IAOR,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,eAAe,EAAE,GAAG,SAAS;CAIjG;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.metadataRegistry = exports.MetadataRegistry = void 0;
4
+ const base_helper_1 = require("./common/base-helper");
5
+ const keys_1 = require("./common/keys");
6
+ const logger_1 = require("./common/logger");
7
+ /**
8
+ * Central metadata registry for storing and retrieving decorator metadata
9
+ */
10
+ class MetadataRegistry extends base_helper_1.BaseHelper {
11
+ constructor() {
12
+ super({ scope: MetadataRegistry.name });
13
+ this.metadata = new WeakMap();
14
+ }
15
+ // -----------------------------------------------------------------
16
+ define(opts) {
17
+ const { target, key, value } = opts;
18
+ logger_1.Logger.debug("[define] Set metadata | target: %s | key: %s | value: %j", target.constructor.name, key.toString(), value);
19
+ Reflect.defineMetadata(key, value, target);
20
+ }
21
+ // -----------------------------------------------------------------
22
+ get(opts) {
23
+ const { target, key } = opts;
24
+ return Reflect.getMetadata(key, target);
25
+ }
26
+ // -----------------------------------------------------------------
27
+ has(opts) {
28
+ const { target, key } = opts;
29
+ return Reflect.hasMetadata(key, target);
30
+ }
31
+ // -----------------------------------------------------------------
32
+ delete(opts) {
33
+ const { target, key } = opts;
34
+ return Reflect.deleteMetadata(key, target);
35
+ }
36
+ // -----------------------------------------------------------------
37
+ getKeys(opts) {
38
+ const { target } = opts;
39
+ return (Reflect.getMetadataKeys(target)?.filter(key => {
40
+ return typeof key === "symbol" || typeof key === "string";
41
+ }) ?? []);
42
+ }
43
+ // -----------------------------------------------------------------
44
+ getMethodNames(opts) {
45
+ const { target } = opts;
46
+ const prototype = target.prototype;
47
+ const methods = Object.getOwnPropertyNames(prototype).filter(name => name !== "constructor" && typeof prototype[name] === "function");
48
+ return methods;
49
+ }
50
+ // -----------------------------------------------------------------
51
+ clearMetadata(opts) {
52
+ const { target } = opts;
53
+ const keys = Reflect.getMetadataKeys(target);
54
+ for (const key of keys) {
55
+ Reflect.deleteMetadata(key, target);
56
+ }
57
+ }
58
+ // -----------------------------------------------------------------
59
+ // Property Metadata
60
+ // -----------------------------------------------------------------
61
+ setPropertyMetadata(opts) {
62
+ const { target, propertyName, metadata } = opts;
63
+ let properties = this.getPropertiesMetadata({ target });
64
+ if (!properties) {
65
+ properties = new Map();
66
+ }
67
+ properties.set(propertyName, metadata);
68
+ Reflect.defineMetadata(keys_1.MetadataKeys.PROPERTIES, properties, target.constructor);
69
+ }
70
+ getPropertiesMetadata(opts) {
71
+ const { target } = opts;
72
+ return Reflect.getMetadata(keys_1.MetadataKeys.PROPERTIES, target.constructor);
73
+ }
74
+ getPropertyMetadata(opts) {
75
+ const { target, propertyName } = opts;
76
+ const properties = this.getPropertiesMetadata({ target });
77
+ return properties?.get(propertyName);
78
+ }
79
+ // -----------------------------------------------------------------
80
+ // Injection Metadata
81
+ // -----------------------------------------------------------------
82
+ setInjectMetadata(opts) {
83
+ const { target, index, metadata } = opts;
84
+ const injects = Reflect.getMetadata(keys_1.MetadataKeys.INJECT, target) || [];
85
+ injects[index] = metadata;
86
+ Reflect.defineMetadata(keys_1.MetadataKeys.INJECT, injects, target);
87
+ }
88
+ getInjectMetadata(opts) {
89
+ const { target } = opts;
90
+ return Reflect.getMetadata(keys_1.MetadataKeys.INJECT, target);
91
+ }
92
+ }
93
+ exports.MetadataRegistry = MetadataRegistry;
94
+ exports.metadataRegistry = new MetadataRegistry();
95
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@venizia/ignis-inversion",
3
+ "version": "0.0.1-1",
4
+ "description": "Dependency Injection & Inversion of Control Container",
5
+ "keywords": [
6
+ "dependency injection",
7
+ "inversion of control",
8
+ "ioc",
9
+ "di",
10
+ "container",
11
+ "venizia",
12
+ "vez",
13
+ "bun",
14
+ "nodejs",
15
+ "typescript"
16
+ ],
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "default": "./dist/index.js"
21
+ },
22
+ "./package.json": "./package.json"
23
+ },
24
+ "files": [
25
+ "README.md",
26
+ "LICENSE",
27
+ "dist",
28
+ "!/**/tests",
29
+ "!/**/dist/tests",
30
+ "!/**/__tests__"
31
+ ],
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "engines": {
36
+ "bun": ">=1.3"
37
+ },
38
+ "scripts": {
39
+ "build": "sh ./scripts/build.sh",
40
+ "clean": "sh ./scripts/clean.sh",
41
+ "eslint": "eslint --report-unused-disable-directives .",
42
+ "lint": "bun run eslint && bun run prettier:cli",
43
+ "lint:fix": "bun run eslint --fix && bun run prettier:fix",
44
+ "prettier:cli": "prettier \"**/*.{js,ts}\" -l",
45
+ "prettier:fix": "bun run prettier:cli --write",
46
+ "rebuild": "sh ./scripts/rebuild.sh no-version",
47
+ "rebuild:major": "sh ./scripts/rebuild.sh major",
48
+ "rebuild:minor": "sh ./scripts/rebuild.sh minor",
49
+ "rebuild:patch": "sh ./scripts/rebuild.sh patch",
50
+ "rebuild:premajor": "sh ./scripts/rebuild.sh premajor",
51
+ "rebuild:preminor": "sh ./scripts/rebuild.sh preminor",
52
+ "rebuild:prepatch": "sh ./scripts/rebuild.sh prepatch",
53
+ "rebuild:prerelease": "sh ./scripts/rebuild.sh prerelease"
54
+ },
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "git+https://github.com/VENIZIA-AI/ignis.git"
58
+ },
59
+ "author": {
60
+ "name": "VENIZIA AI Developer",
61
+ "email": "developer@venizia.ai",
62
+ "url": "https://venizia.ai"
63
+ },
64
+ "bugs": {
65
+ "url": "https://github.com/VENIZIA-AI/ignis/issues"
66
+ },
67
+ "homepage": "https://github.com/VENIZIA-AI/ignis/wiki",
68
+ "license": "MIT",
69
+ "dependencies": {
70
+ "lodash": "^4.17.21",
71
+ "reflect-metadata": "^0.2.2",
72
+ "zod": "^4.1.13"
73
+ },
74
+ "devDependencies": {
75
+ "@types/bun": "^1.3.2",
76
+ "@types/lodash": "^4.17.21",
77
+ "@venizia/dev-configs": "latest*",
78
+ "eslint": "^9.36.0",
79
+ "prettier": "^3.6.2",
80
+ "tsc-alias": "^1.8.16",
81
+ "tsconfig-paths": "^4.2.0",
82
+ "typescript": "^5.9.3"
83
+ },
84
+ "sideEffects": false
85
+ }