siringa 0.3.0 → 0.3.2
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.cjs +5 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +5 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -31,29 +31,26 @@ var promisedBinding = Symbol.for("siringa.promisedBinding");
|
|
|
31
31
|
function promise(binding) {
|
|
32
32
|
return { [promisedBinding]: binding };
|
|
33
33
|
}
|
|
34
|
-
var Injector = class {
|
|
34
|
+
var Injector = class _Injector {
|
|
35
35
|
#factories = /* @__PURE__ */ new Map();
|
|
36
36
|
#promises = /* @__PURE__ */ new Map();
|
|
37
37
|
#parent;
|
|
38
38
|
/* INTERNALS ============================================================== */
|
|
39
39
|
async #get(binding, stack) {
|
|
40
40
|
if (stack.includes(binding)) {
|
|
41
|
-
if (this.#parent)
|
|
42
|
-
return this.#parent.#get(binding, []);
|
|
41
|
+
if (this.#parent) return this.#parent.#get(binding, []);
|
|
43
42
|
const message2 = `Recursion detected injecting ${bindingName(binding)}`;
|
|
44
43
|
return Promise.reject(new Error(message2));
|
|
45
44
|
}
|
|
46
45
|
const promise2 = this.#promises.get(binding);
|
|
47
|
-
if (promise2)
|
|
48
|
-
return promise2;
|
|
46
|
+
if (promise2) return promise2;
|
|
49
47
|
const factory = this.#factories.get(binding);
|
|
50
48
|
if (factory) {
|
|
51
49
|
const promise3 = Promise.resolve().then(() => factory([...stack, binding]));
|
|
52
50
|
this.#promises.set(binding, promise3);
|
|
53
51
|
return promise3;
|
|
54
52
|
}
|
|
55
|
-
if (this.#parent)
|
|
56
|
-
return this.#parent.#get(binding, []);
|
|
53
|
+
if (this.#parent) return this.#parent.#get(binding, []);
|
|
57
54
|
const message = `Unable to resolve binding ${bindingName(binding)}`;
|
|
58
55
|
return Promise.reject(new Error(message));
|
|
59
56
|
}
|
|
@@ -122,7 +119,7 @@ var Injector = class {
|
|
|
122
119
|
/* CHILD INJECTORS ======================================================== */
|
|
123
120
|
/** Create a sub-`Injector` child of this one. */
|
|
124
121
|
injector() {
|
|
125
|
-
const injector = new
|
|
122
|
+
const injector = new _Injector();
|
|
126
123
|
injector.#parent = this;
|
|
127
124
|
return injector;
|
|
128
125
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2JA,SAAS,YAAY,SAA0B;AAC7C,SAAO,OAAO,YAAY,aAAa,UAAU,QAAQ,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "promise"]
|
|
6
6
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
;const __$$_esm_paths_helper = await (async() => {
|
|
2
|
-
const __filename = (await import("node:url")).fileURLToPath(import.meta.url);
|
|
3
|
-
const __dirname = (await import("node:path")).dirname(__filename);
|
|
4
|
-
return { __filename, __dirname };
|
|
5
|
-
})();
|
|
6
|
-
|
|
7
1
|
// index.ts
|
|
8
2
|
function bindingName(binding) {
|
|
9
3
|
return typeof binding === "function" ? `[class ${binding.name}]` : `"${binding}"`;
|
|
@@ -12,29 +6,26 @@ var promisedBinding = Symbol.for("siringa.promisedBinding");
|
|
|
12
6
|
function promise(binding) {
|
|
13
7
|
return { [promisedBinding]: binding };
|
|
14
8
|
}
|
|
15
|
-
var Injector = class {
|
|
9
|
+
var Injector = class _Injector {
|
|
16
10
|
#factories = /* @__PURE__ */ new Map();
|
|
17
11
|
#promises = /* @__PURE__ */ new Map();
|
|
18
12
|
#parent;
|
|
19
13
|
/* INTERNALS ============================================================== */
|
|
20
14
|
async #get(binding, stack) {
|
|
21
15
|
if (stack.includes(binding)) {
|
|
22
|
-
if (this.#parent)
|
|
23
|
-
return this.#parent.#get(binding, []);
|
|
16
|
+
if (this.#parent) return this.#parent.#get(binding, []);
|
|
24
17
|
const message2 = `Recursion detected injecting ${bindingName(binding)}`;
|
|
25
18
|
return Promise.reject(new Error(message2));
|
|
26
19
|
}
|
|
27
20
|
const promise2 = this.#promises.get(binding);
|
|
28
|
-
if (promise2)
|
|
29
|
-
return promise2;
|
|
21
|
+
if (promise2) return promise2;
|
|
30
22
|
const factory = this.#factories.get(binding);
|
|
31
23
|
if (factory) {
|
|
32
24
|
const promise3 = Promise.resolve().then(() => factory([...stack, binding]));
|
|
33
25
|
this.#promises.set(binding, promise3);
|
|
34
26
|
return promise3;
|
|
35
27
|
}
|
|
36
|
-
if (this.#parent)
|
|
37
|
-
return this.#parent.#get(binding, []);
|
|
28
|
+
if (this.#parent) return this.#parent.#get(binding, []);
|
|
38
29
|
const message = `Unable to resolve binding ${bindingName(binding)}`;
|
|
39
30
|
return Promise.reject(new Error(message));
|
|
40
31
|
}
|
|
@@ -103,7 +94,7 @@ var Injector = class {
|
|
|
103
94
|
/* CHILD INJECTORS ======================================================== */
|
|
104
95
|
/** Create a sub-`Injector` child of this one. */
|
|
105
96
|
injector() {
|
|
106
|
-
const injector = new
|
|
97
|
+
const injector = new _Injector();
|
|
107
98
|
injector.#parent = this;
|
|
108
99
|
return injector;
|
|
109
100
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "promise"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siringa",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Simple type-checking injection library for Typescript",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"author": "Juit Developers <developers@juit.com>",
|
|
29
29
|
"license": "Apache-2.0",
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@plugjs/build": "
|
|
32
|
-
"@plugjs/tsd": "
|
|
33
|
-
"typescript": "^5.
|
|
31
|
+
"@plugjs/build": "eslintv9",
|
|
32
|
+
"@plugjs/tsd": "eslintv9",
|
|
33
|
+
"typescript": "^5.5.2"
|
|
34
34
|
},
|
|
35
35
|
"directories": {
|
|
36
36
|
"test": "test"
|