siringa 0.3.3 → 0.3.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/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +56 -56
package/dist/index.cjs
CHANGED
|
@@ -18,12 +18,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
20
|
// index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
23
|
Injector: () => Injector,
|
|
24
24
|
promise: () => promise
|
|
25
25
|
});
|
|
26
|
-
module.exports = __toCommonJS(
|
|
26
|
+
module.exports = __toCommonJS(index_exports);
|
|
27
27
|
function bindingName(binding) {
|
|
28
28
|
return typeof binding === "function" ? `[class ${binding.name}]` : `"${binding}"`;
|
|
29
29
|
}
|
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,IAAI,MAAM,IAAI,OAAO;AAChF;AAGA,IAAM,kBAAkB,OAAO,IAAI,yBAAyB;AAGrD,SAAS,QAA2B,SAAgC;AACzE,SAAO,EAAE,CAAC,eAAe,GAAG,QAAQ;AACtC;AA2DO,IAAM,WAAN,MAAM,UAGmC;AAAA,EACrC,aAA+D,oBAAI,IAAI;AAAA,EACvE,YAAwC,oBAAI,IAAI;AAAA,EACzD;AAAA;AAAA,EAIA,MAAM,KAAK,SAAkB,OAAgC;AAC3D,QAAI,MAAM,SAAS,OAAO,GAAG;AAC3B,UAAI,KAAK,QAAS,QAAO,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC;AACtD,YAAMA,WAAU,gCAAgC,YAAY,OAAO,CAAC;AACpE,aAAO,QAAQ,OAAO,IAAI,MAAMA,QAAO,CAAC;AAAA,IAC1C;AAEA,UAAMC,WAAU,KAAK,UAAU,IAAI,OAAO;AAC1C,QAAIA,SAAS,QAAOA;AAEpB,UAAM,UAAU,KAAK,WAAW,IAAI,OAAO;AAC3C,QAAI,SAAS;AACX,YAAMA,WAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,CAAE,GAAG,OAAO,OAAQ,CAAC,CAAC;AAC3E,WAAK,UAAU,IAAI,SAASA,QAAO;AACnC,aAAOA;AAAA,IACT;AAEA,QAAI,KAAK,QAAS,QAAO,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC;AAEtD,UAAM,UAAU,6BAA6B,YAAY,OAAO,CAAC;AACjE,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ,YAAgD,OAAgC;AAC5F,UAAM,WAAW,WAAW,SAAS,IAAI,CAAC,YAAuC;AAC/E,cAAQ,OAAO,SAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,KAAK,KAAK,SAAS,KAAK;AAAA,QACjC;AACE,iBAAO;AAAA,MACX;AAAA,IACF,CAAC;AAED,UAAM,aAAa,YAAY,MAAM,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM;AACrE,aAAO,KAAM,OAAO,MAAM,YAAc,EAAE,eAAe,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "promise"]
|
|
6
6
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": ";AA2JA,SAAS,YAAY,SAA0B;AAC7C,SAAO,OAAO,YAAY,aAAa,UAAU,QAAQ,IAAI,MAAM,IAAI,OAAO;AAChF;AAGA,IAAM,kBAAkB,OAAO,IAAI,yBAAyB;AAGrD,SAAS,QAA2B,SAAgC;AACzE,SAAO,EAAE,CAAC,eAAe,GAAG,QAAQ;AACtC;AA2DO,IAAM,WAAN,MAAM,UAGmC;AAAA,EACrC,aAA+D,oBAAI,IAAI;AAAA,EACvE,YAAwC,oBAAI,IAAI;AAAA,EACzD;AAAA;AAAA,EAIA,MAAM,KAAK,SAAkB,OAAgC;AAC3D,QAAI,MAAM,SAAS,OAAO,GAAG;AAC3B,UAAI,KAAK,QAAS,QAAO,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC;AACtD,YAAMA,WAAU,gCAAgC,YAAY,OAAO,CAAC;AACpE,aAAO,QAAQ,OAAO,IAAI,MAAMA,QAAO,CAAC;AAAA,IAC1C;AAEA,UAAMC,WAAU,KAAK,UAAU,IAAI,OAAO;AAC1C,QAAIA,SAAS,QAAOA;AAEpB,UAAM,UAAU,KAAK,WAAW,IAAI,OAAO;AAC3C,QAAI,SAAS;AACX,YAAMA,WAAU,QAAQ,QAAQ,EAAE,KAAK,MAAM,QAAQ,CAAE,GAAG,OAAO,OAAQ,CAAC,CAAC;AAC3E,WAAK,UAAU,IAAI,SAASA,QAAO;AACnC,aAAOA;AAAA,IACT;AAEA,QAAI,KAAK,QAAS,QAAO,KAAK,QAAQ,KAAK,SAAS,CAAC,CAAC;AAEtD,UAAM,UAAU,6BAA6B,YAAY,OAAO,CAAC;AACjE,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ,YAAgD,OAAgC;AAC5F,UAAM,WAAW,WAAW,SAAS,IAAI,CAAC,YAAuC;AAC/E,cAAQ,OAAO,SAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,KAAK,KAAK,SAAS,KAAK;AAAA,QACjC;AACE,iBAAO;AAAA,MACX;AAAA,IACF,CAAC;AAED,UAAM,aAAa,YAAY,MAAM,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM;AACrE,aAAO,KAAM,OAAO,MAAM,YAAc,EAAE,eAAe,
|
|
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.4",
|
|
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": "^0.6.
|
|
32
|
-
"@plugjs/tsd": "^0.6.
|
|
33
|
-
"typescript": "^5.
|
|
31
|
+
"@plugjs/build": "^0.6.58",
|
|
32
|
+
"@plugjs/tsd": "^0.6.65",
|
|
33
|
+
"typescript": "^5.9.2"
|
|
34
34
|
},
|
|
35
35
|
"directories": {
|
|
36
36
|
"test": "test"
|
package/src/index.ts
CHANGED
|
@@ -34,30 +34,30 @@ type CheckInject<
|
|
|
34
34
|
|
|
35
35
|
// if "$inject" is a single-element tuple, check that that this element is
|
|
36
36
|
// actually included in the list of components
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
37
|
+
Inject extends readonly [ infer I1 ] ?
|
|
38
|
+
I1 extends PromisedBinding<infer I2> ?
|
|
39
|
+
I2 extends keyof Provisions ?
|
|
40
|
+
readonly [ PromisedBinding<I2> ] :
|
|
41
|
+
I2 extends Extract<Components, I2> ?
|
|
42
|
+
readonly [ PromisedBinding<I2> ] :
|
|
43
|
+
readonly [ PromisedBinding<never> ] :
|
|
44
|
+
I1 extends keyof Provisions ?
|
|
45
|
+
readonly [ I1 ] :
|
|
46
|
+
I1 extends Extract<Components, I1> ?
|
|
47
|
+
readonly [ I1 ] :
|
|
48
|
+
readonly [ never ] :
|
|
49
|
+
|
|
50
|
+
// if "$inject" is a multi-element tuple, recurse (twice) by cheking the first
|
|
51
|
+
// element as a single-element tuple (see above), and the remaining members.
|
|
52
|
+
Inject extends readonly [ infer I1, ...infer I2 ] ?
|
|
53
|
+
readonly [
|
|
54
|
+
...CheckInject<[ I1 ], Components, Provisions>,
|
|
55
|
+
...CheckInject<I2, Components, Provisions>,
|
|
56
|
+
] :
|
|
57
|
+
|
|
58
|
+
// "$inject" here is something else (likely, an array but not "as const")
|
|
59
|
+
// so we want to fail by re-declaring it as a tuple
|
|
60
|
+
readonly [ Components | keyof Provisions, ...(Components | keyof Provisions)[] ]
|
|
61
61
|
|
|
62
62
|
/* ========================================================================== */
|
|
63
63
|
|
|
@@ -74,30 +74,30 @@ type MapInject<
|
|
|
74
74
|
readonly [] :
|
|
75
75
|
|
|
76
76
|
// "$inject" is a single-element tuple
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
Inject extends readonly [ infer I1 ] ?
|
|
78
|
+
I1 extends PromisedBinding<infer I2> ?
|
|
79
79
|
// promised bindings
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
80
|
+
I2 extends keyof Provisions ?
|
|
81
|
+
readonly [ Promise<Provisions[I2]> ] :
|
|
82
|
+
I2 extends Constructor ?
|
|
83
|
+
readonly [ Promise<InstanceType<I2>> ] :
|
|
84
|
+
readonly [ never ] :
|
|
85
|
+
// resolved (non promised) bindings
|
|
86
|
+
I1 extends keyof Provisions ?
|
|
87
|
+
readonly [ Provisions[I1] ] :
|
|
88
|
+
I1 extends Constructor ?
|
|
89
|
+
readonly [ InstanceType<I1> ] :
|
|
90
|
+
readonly [ never ] :
|
|
91
|
+
|
|
92
|
+
// "$inject" is a multi-element tuple (recurse)
|
|
93
|
+
Inject extends readonly [ infer I1, ...infer I2 ] ?
|
|
94
|
+
readonly [
|
|
95
|
+
...MapInject<[ I1 ], Provisions>,
|
|
96
|
+
...MapInject<I2, Provisions>,
|
|
97
|
+
] :
|
|
98
|
+
|
|
99
|
+
// "$inject" is something else
|
|
100
|
+
readonly [ never ]
|
|
101
101
|
|
|
102
102
|
/* ========================================================================== */
|
|
103
103
|
|
|
@@ -119,11 +119,11 @@ type CheckInjectable<
|
|
|
119
119
|
|
|
120
120
|
// If "$inject" is not specified, the only valid injector is one with
|
|
121
121
|
// an empty (zero arguments) constructor
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
I extends new () => any ?
|
|
123
|
+
I :
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
// Anything else requires "$inject" to be present
|
|
126
|
+
{ $inject: InjectTuple<Components, Provisions> }
|
|
127
127
|
|
|
128
128
|
/* ========================================================================== */
|
|
129
129
|
|
|
@@ -143,9 +143,9 @@ type ExtendProvisions<
|
|
|
143
143
|
T, // the new type associated with the provision key
|
|
144
144
|
> = {
|
|
145
145
|
[ key in P | keyof Provisions ]:
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
146
|
+
key extends P ?
|
|
147
|
+
UnrollPromise<T> :
|
|
148
|
+
Provisions[key]
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
/* ========================================================================== *
|
|
@@ -268,7 +268,7 @@ export class Injector<
|
|
|
268
268
|
|
|
269
269
|
const injections = promises ? (await Promise.all(promises)).map((i) => {
|
|
270
270
|
return i && (typeof i === 'object') && (i[promisedBinding]) ?
|
|
271
|
-
|
|
271
|
+
this.#get(i[promisedBinding], stack) : i
|
|
272
272
|
}) : []
|
|
273
273
|
|
|
274
274
|
// eslint-disable-next-line new-cap
|
|
@@ -300,7 +300,7 @@ export class Injector<
|
|
|
300
300
|
maybeInjectable?: Injectable<Components, Provisions>,
|
|
301
301
|
): this {
|
|
302
302
|
const injectable = maybeInjectable ? maybeInjectable :
|
|
303
|
-
|
|
303
|
+
binding as Injectable<Components, Provisions>
|
|
304
304
|
|
|
305
305
|
this.#factories.set(binding, async (stack) => this.#inject(injectable, stack))
|
|
306
306
|
return this
|