@ooneex/container 0.0.13 → 0.0.15

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/index.js CHANGED
@@ -1,3 +1,119 @@
1
- import{inject as G,injectable as J}from"inversify";import{Container as w}from"inversify";import{Exception as b}from"@ooneex/exception";import{HttpStatus as l}from"@ooneex/http-status";class u extends b{constructor(o,m={}){super(o,{status:l.Code.InternalServerError,data:m});this.name="ContainerException"}}var p;((y)=>{y.Singleton="singleton";y.Transient="transient";y.Request="request"})(p||={});var n=new w;class x{alias={};add(o,m="singleton"){try{n.unbind(o)}catch{}let s=n.bind(o).toSelf();switch(m){case"request":s.inRequestScope();break;case"transient":s.inTransientScope();break;default:s.inSingletonScope()}}resolveAlias(o,m=!0){if(typeof o==="string"){let s=this.alias[o];if(!s){if(m)throw new u(`Failed to resolve alias: ${o}`);return null}return s}return o}get(o){let m=this.resolveAlias(o,!0);try{return n.get(m)}catch(s){throw new u(`Failed to resolve dependency: ${typeof o==="string"?o:o.name}`)}}has(o){let m=this.resolveAlias(o,!1);if(m===null)return!1;return n.isBound(m)}remove(o){let m=this.resolveAlias(o,!0);if(m&&n.isBound(m))n.unbind(m)}addConstant(o,m){try{n.unbind(o)}catch{}n.bind(o).toConstantValue(m)}getConstant(o){try{return n.get(o)}catch(m){throw new u(`Failed to resolve constant: ${o.toString()}`)}}hasConstant(o){return n.isBound(o)}removeConstant(o){if(n.isBound(o))n.unbind(o)}addAlias(o,m){this.alias[o]=m}}var j=new x;export{J as injectable,G as inject,j as container,p as EContainerScope,u as ContainerException,x as Container};
1
+ // src/index.ts
2
+ import { inject, injectable } from "inversify";
2
3
 
3
- //# debugId=34C1AFF9D7D5EC8B64756E2164756E21
4
+ // src/Container.ts
5
+ import { Container as InversifyContainer } from "inversify";
6
+
7
+ // src/ContainerException.ts
8
+ import { Exception } from "@ooneex/exception";
9
+ import { HttpStatus } from "@ooneex/http-status";
10
+
11
+ class ContainerException extends Exception {
12
+ constructor(message, data = {}) {
13
+ super(message, {
14
+ status: HttpStatus.Code.InternalServerError,
15
+ data
16
+ });
17
+ this.name = "ContainerException";
18
+ }
19
+ }
20
+
21
+ // src/types.ts
22
+ var EContainerScope;
23
+ ((EContainerScope2) => {
24
+ EContainerScope2["Singleton"] = "singleton";
25
+ EContainerScope2["Transient"] = "transient";
26
+ EContainerScope2["Request"] = "request";
27
+ })(EContainerScope ||= {});
28
+
29
+ // src/Container.ts
30
+ var sharedDI = new InversifyContainer;
31
+
32
+ class Container {
33
+ alias = {};
34
+ add(target, scope = "singleton" /* Singleton */) {
35
+ try {
36
+ sharedDI.unbind(target);
37
+ } catch {}
38
+ const binding = sharedDI.bind(target).toSelf();
39
+ switch (scope) {
40
+ case "request" /* Request */:
41
+ binding.inRequestScope();
42
+ break;
43
+ case "transient" /* Transient */:
44
+ binding.inTransientScope();
45
+ break;
46
+ default:
47
+ binding.inSingletonScope();
48
+ }
49
+ }
50
+ resolveAlias(target, throwOnMissing = true) {
51
+ if (typeof target === "string") {
52
+ const aliasedTarget = this.alias[target];
53
+ if (!aliasedTarget) {
54
+ if (throwOnMissing) {
55
+ throw new ContainerException(`Failed to resolve alias: ${target}`);
56
+ }
57
+ return null;
58
+ }
59
+ return aliasedTarget;
60
+ }
61
+ return target;
62
+ }
63
+ get(target) {
64
+ const resolvedTarget = this.resolveAlias(target, true);
65
+ try {
66
+ return sharedDI.get(resolvedTarget);
67
+ } catch (_e) {
68
+ throw new ContainerException(`Failed to resolve dependency: ${typeof target === "string" ? target : target.name}`);
69
+ }
70
+ }
71
+ has(target) {
72
+ const resolvedTarget = this.resolveAlias(target, false);
73
+ if (resolvedTarget === null) {
74
+ return false;
75
+ }
76
+ return sharedDI.isBound(resolvedTarget);
77
+ }
78
+ remove(target) {
79
+ const resolvedTarget = this.resolveAlias(target, true);
80
+ if (resolvedTarget && sharedDI.isBound(resolvedTarget)) {
81
+ sharedDI.unbind(resolvedTarget);
82
+ }
83
+ }
84
+ addConstant(identifier, value) {
85
+ try {
86
+ sharedDI.unbind(identifier);
87
+ } catch {}
88
+ sharedDI.bind(identifier).toConstantValue(value);
89
+ }
90
+ getConstant(identifier) {
91
+ try {
92
+ return sharedDI.get(identifier);
93
+ } catch (_e) {
94
+ throw new ContainerException(`Failed to resolve constant: ${identifier.toString()}`);
95
+ }
96
+ }
97
+ hasConstant(identifier) {
98
+ return sharedDI.isBound(identifier);
99
+ }
100
+ removeConstant(identifier) {
101
+ if (sharedDI.isBound(identifier)) {
102
+ sharedDI.unbind(identifier);
103
+ }
104
+ }
105
+ addAlias(alias, target) {
106
+ this.alias[alias] = target;
107
+ }
108
+ }
109
+ var container = new Container;
110
+ export {
111
+ injectable,
112
+ inject,
113
+ container,
114
+ EContainerScope,
115
+ ContainerException,
116
+ Container
117
+ };
118
+
119
+ //# debugId=B6689203364C4C0664756E2164756E21
package/dist/index.js.map CHANGED
@@ -7,7 +7,7 @@
7
7
  "import { Exception } from \"@ooneex/exception\";\nimport { HttpStatus } from \"@ooneex/http-status\";\n\nexport class ContainerException extends Exception {\n constructor(message: string, data: Record<string, unknown> = {}) {\n super(message, {\n status: HttpStatus.Code.InternalServerError,\n data,\n });\n this.name = \"ContainerException\";\n }\n}\n",
8
8
  "/** biome-ignore-all lint/suspicious/noExplicitAny: trust me */\n\nexport enum EContainerScope {\n Singleton = \"singleton\",\n Transient = \"transient\",\n Request = \"request\",\n}\n\nexport interface IContainer {\n add: (target: new (...args: any[]) => any, scope?: EContainerScope) => void;\n get: <T>(target: (new (...args: any[]) => T) | string) => T;\n has: (target: (new (...args: any[]) => any) | string) => boolean;\n remove: (target: (new (...args: any[]) => any) | string) => void;\n addConstant: <T>(identifier: string | symbol, value: T) => void;\n getConstant: <T>(identifier: string | symbol) => T;\n hasConstant: (identifier: string | symbol) => boolean;\n removeConstant(identifier: string | symbol): void;\n addAlias<T>(alias: string, target: new (...args: any[]) => T): void;\n}\n"
9
9
  ],
10
- "mappings": "AAAA,iBAAS,gBAAQ,kBCEjB,oBAAS,kBCFT,oBAAS,0BACT,qBAAS,4BAEF,MAAM,UAA2B,CAAU,CAChD,WAAW,CAAC,EAAiB,EAAgC,CAAC,EAAG,CAC/D,MAAM,EAAS,CACb,OAAQ,EAAW,KAAK,oBACxB,MACF,CAAC,EACD,KAAK,KAAO,qBAEhB,CCTO,IAAK,GAAL,CAAK,IAAL,CACL,YAAY,YACZ,YAAY,YACZ,UAAU,YAHA,QFKZ,IAAM,EAAW,IAAI,EAEd,MAAM,CAAgC,CACnC,MAA6B,CAAC,EAE/B,GAAG,CAAC,EAAqC,cAA0D,CACxG,GAAI,CACF,EAAS,OAAO,CAAM,EACtB,KAAM,EAER,IAAM,EAAU,EAAS,KAAK,CAAM,EAAE,OAAO,EAE7C,OAAQ,iBAEJ,EAAQ,eAAe,EACvB,sBAEA,EAAQ,iBAAiB,EACzB,cAEA,EAAQ,iBAAiB,GAIvB,YAAe,CACrB,EACA,EAAiB,GACmB,CACpC,GAAI,OAAO,IAAW,SAAU,CAC9B,IAAM,EAAgB,KAAK,MAAM,GACjC,GAAI,CAAC,EAAe,CAClB,GAAI,EACF,MAAM,IAAI,EAAmB,4BAA4B,GAAQ,EAEnE,OAAO,KAET,OAAO,EAIT,OAAO,EAKF,GAAM,CAAC,EAAiD,CAC7D,IAAM,EAAiB,KAAK,aAAa,EAAQ,EAAI,EAErD,GAAI,CACF,OAAO,EAAS,IAAO,CAA2C,EAClE,MAAO,EAAI,CACX,MAAM,IAAI,EACR,iCAAiC,OAAO,IAAW,SAAW,EAAS,EAAO,MAChF,GAIG,GAAG,CAAC,EAA6D,CACtE,IAAM,EAAiB,KAAK,aAAa,EAAQ,EAAK,EACtD,GAAI,IAAmB,KACrB,MAAO,GAET,OAAO,EAAS,QAAQ,CAAc,EAGjC,MAAM,CAAC,EAA8D,CAC1E,IAAM,EAAiB,KAAK,aAAa,EAAQ,EAAI,EACrD,GAAI,GAAkB,EAAS,QAAQ,CAAc,EACnD,EAAS,OAAO,CAAc,EAI3B,WAAc,CAAC,EAA6B,EAAgB,CACjE,GAAI,CACF,EAAS,OAAO,CAAU,EAC1B,KAAM,EAER,EAAS,KAAQ,CAAU,EAAE,gBAAgB,CAAK,EAG7C,WAAc,CAAC,EAAgC,CACpD,GAAI,CACF,OAAO,EAAS,IAAO,CAAU,EACjC,MAAO,EAAI,CACX,MAAM,IAAI,EAAmB,+BAA+B,EAAW,SAAS,GAAG,GAIhF,WAAW,CAAC,EAAsC,CACvD,OAAO,EAAS,QAAQ,CAAU,EAG7B,cAAc,CAAC,EAAmC,CACvD,GAAI,EAAS,QAAQ,CAAU,EAC7B,EAAS,OAAO,CAAU,EAIvB,QAAW,CAAC,EAAe,EAAyC,CACzE,KAAK,MAAM,GAAS,EAExB,CAEO,IAAM,EAAuB,IAAI",
11
- "debugId": "34C1AFF9D7D5EC8B64756E2164756E21",
10
+ "mappings": ";AAAA;;;ACEA,sBAAS;;;ACFT;AACA;AAAA;AAEO,MAAM,2BAA2B,UAAU;AAAA,EAChD,WAAW,CAAC,SAAiB,OAAgC,CAAC,GAAG;AAAA,IAC/D,MAAM,SAAS;AAAA,MACb,QAAQ,WAAW,KAAK;AAAA,MACxB;AAAA,IACF,CAAC;AAAA,IACD,KAAK,OAAO;AAAA;AAEhB;;;ACTO,IAAK;AAAA,CAAL,CAAK,qBAAL;AAAA,EACL,gCAAY;AAAA,EACZ,gCAAY;AAAA,EACZ,8BAAU;AAAA,GAHA;;;AFKZ,IAAM,WAAW,IAAI;AAAA;AAEd,MAAM,UAAgC;AAAA,EACnC,QAA6B,CAAC;AAAA,EAE/B,GAAG,CAAC,QAAqC,qCAA0D;AAAA,IACxG,IAAI;AAAA,MACF,SAAS,OAAO,MAAM;AAAA,MACtB,MAAM;AAAA,IAER,MAAM,UAAU,SAAS,KAAK,MAAM,EAAE,OAAO;AAAA,IAE7C,QAAQ;AAAA;AAAA,QAEJ,QAAQ,eAAe;AAAA,QACvB;AAAA;AAAA,QAEA,QAAQ,iBAAiB;AAAA,QACzB;AAAA;AAAA,QAEA,QAAQ,iBAAiB;AAAA;AAAA;AAAA,EAIvB,YAAe,CACrB,QACA,iBAAiB,MACmB;AAAA,IACpC,IAAI,OAAO,WAAW,UAAU;AAAA,MAC9B,MAAM,gBAAgB,KAAK,MAAM;AAAA,MACjC,IAAI,CAAC,eAAe;AAAA,QAClB,IAAI,gBAAgB;AAAA,UAClB,MAAM,IAAI,mBAAmB,4BAA4B,QAAQ;AAAA,QACnE;AAAA,QACA,OAAO;AAAA,MACT;AAAA,MACA,OAAO;AAAA,IAGT;AAAA,IACA,OAAO;AAAA;AAAA,EAKF,GAAM,CAAC,QAAiD;AAAA,IAC7D,MAAM,iBAAiB,KAAK,aAAa,QAAQ,IAAI;AAAA,IAErD,IAAI;AAAA,MACF,OAAO,SAAS,IAAO,cAA2C;AAAA,MAClE,OAAO,IAAI;AAAA,MACX,MAAM,IAAI,mBACR,iCAAiC,OAAO,WAAW,WAAW,SAAS,OAAO,MAChF;AAAA;AAAA;AAAA,EAIG,GAAG,CAAC,QAA6D;AAAA,IACtE,MAAM,iBAAiB,KAAK,aAAa,QAAQ,KAAK;AAAA,IACtD,IAAI,mBAAmB,MAAM;AAAA,MAC3B,OAAO;AAAA,IACT;AAAA,IACA,OAAO,SAAS,QAAQ,cAAc;AAAA;AAAA,EAGjC,MAAM,CAAC,QAA8D;AAAA,IAC1E,MAAM,iBAAiB,KAAK,aAAa,QAAQ,IAAI;AAAA,IACrD,IAAI,kBAAkB,SAAS,QAAQ,cAAc,GAAG;AAAA,MACtD,SAAS,OAAO,cAAc;AAAA,IAChC;AAAA;AAAA,EAGK,WAAc,CAAC,YAA6B,OAAgB;AAAA,IACjE,IAAI;AAAA,MACF,SAAS,OAAO,UAAU;AAAA,MAC1B,MAAM;AAAA,IAER,SAAS,KAAQ,UAAU,EAAE,gBAAgB,KAAK;AAAA;AAAA,EAG7C,WAAc,CAAC,YAAgC;AAAA,IACpD,IAAI;AAAA,MACF,OAAO,SAAS,IAAO,UAAU;AAAA,MACjC,OAAO,IAAI;AAAA,MACX,MAAM,IAAI,mBAAmB,+BAA+B,WAAW,SAAS,GAAG;AAAA;AAAA;AAAA,EAIhF,WAAW,CAAC,YAAsC;AAAA,IACvD,OAAO,SAAS,QAAQ,UAAU;AAAA;AAAA,EAG7B,cAAc,CAAC,YAAmC;AAAA,IACvD,IAAI,SAAS,QAAQ,UAAU,GAAG;AAAA,MAChC,SAAS,OAAO,UAAU;AAAA,IAC5B;AAAA;AAAA,EAGK,QAAW,CAAC,OAAe,QAAyC;AAAA,IACzE,KAAK,MAAM,SAAS;AAAA;AAExB;AAEO,IAAM,YAAuB,IAAI;",
11
+ "debugId": "B6689203364C4C0664756E2164756E21",
12
12
  "names": []
13
13
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ooneex/container",
3
3
  "description": "Lightweight dependency injection container built on Inversify for managing services and their lifecycle",
4
- "version": "0.0.13",
4
+ "version": "0.0.15",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",
@@ -28,8 +28,8 @@
28
28
  "npm:publish": "bun publish --tolerate-republish --access public"
29
29
  },
30
30
  "dependencies": {
31
- "@ooneex/exception": "0.0.11",
32
- "@ooneex/http-status": "0.0.11",
31
+ "@ooneex/exception": "0.0.13",
32
+ "@ooneex/http-status": "0.0.13",
33
33
  "inversify": "^7.10.4"
34
34
  },
35
35
  "keywords": [