siringa 0.3.4 → 0.4.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.
- package/dist/index.cjs +12 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +12 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -4
- package/src/index.ts +16 -0
package/dist/index.cjs
CHANGED
|
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
27
27
|
function bindingName(binding) {
|
|
28
28
|
return typeof binding === "function" ? `[class ${binding.name}]` : `"${binding}"`;
|
|
29
29
|
}
|
|
30
|
-
var promisedBinding = Symbol.for("siringa.promisedBinding");
|
|
30
|
+
var promisedBinding = /* @__PURE__ */ Symbol.for("siringa.promisedBinding");
|
|
31
31
|
function promise(binding) {
|
|
32
32
|
return { [promisedBinding]: binding };
|
|
33
33
|
}
|
|
@@ -84,6 +84,17 @@ var Injector = class _Injector {
|
|
|
84
84
|
}));
|
|
85
85
|
return this;
|
|
86
86
|
}
|
|
87
|
+
/* ENVIRONMENT VARIABLES ================================================== */
|
|
88
|
+
/** Provision an environment variable. */
|
|
89
|
+
env(variable, defaultValue) {
|
|
90
|
+
const value = globalThis.process?.env?.[variable] || defaultValue;
|
|
91
|
+
if (!value) {
|
|
92
|
+
throw new Error(`Environment variable "${variable}" is not defined`);
|
|
93
|
+
} else {
|
|
94
|
+
this.#promises.set(variable, Promise.resolve(value));
|
|
95
|
+
}
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
87
98
|
// Overloaded implementation
|
|
88
99
|
use(binding, instance) {
|
|
89
100
|
this.#promises.set(binding, Promise.resolve(instance));
|
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,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "promise"]
|
|
6
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -101,6 +101,8 @@ export declare class Injector<Components extends Constructor = never, Provisions
|
|
|
101
101
|
create<C extends Constructor>(component: C, factory: Factory<Components, Provisions, InstanceType<C>>): Injector<Components | C, Provisions>;
|
|
102
102
|
/** Use a `Factory` to create instances bound to the given name. */
|
|
103
103
|
create<P extends string, F extends Factory<Components, Provisions>>(provision: P, factory: F): Injector<Components, ExtendProvisions<Provisions, P, ReturnType<F>>>;
|
|
104
|
+
/** Provision an environment variable. */
|
|
105
|
+
env<E extends string>(variable: E, defaultValue?: string): Injector<Components, ExtendProvisions<Provisions, E, string>>;
|
|
104
106
|
/** Use the given instance binding it to to the given `Constructor`. */
|
|
105
107
|
use<C extends Constructor>(component: C, instance: InstanceType<C> | PromiseLike<InstanceType<C>>): Injector<Components | C, Provisions>;
|
|
106
108
|
/** Use the given instance binding it to to the given name. */
|
package/dist/index.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
function bindingName(binding) {
|
|
3
3
|
return typeof binding === "function" ? `[class ${binding.name}]` : `"${binding}"`;
|
|
4
4
|
}
|
|
5
|
-
var promisedBinding = Symbol.for("siringa.promisedBinding");
|
|
5
|
+
var promisedBinding = /* @__PURE__ */ Symbol.for("siringa.promisedBinding");
|
|
6
6
|
function promise(binding) {
|
|
7
7
|
return { [promisedBinding]: binding };
|
|
8
8
|
}
|
|
@@ -59,6 +59,17 @@ var Injector = class _Injector {
|
|
|
59
59
|
}));
|
|
60
60
|
return this;
|
|
61
61
|
}
|
|
62
|
+
/* ENVIRONMENT VARIABLES ================================================== */
|
|
63
|
+
/** Provision an environment variable. */
|
|
64
|
+
env(variable, defaultValue) {
|
|
65
|
+
const value = globalThis.process?.env?.[variable] || defaultValue;
|
|
66
|
+
if (!value) {
|
|
67
|
+
throw new Error(`Environment variable "${variable}" is not defined`);
|
|
68
|
+
} else {
|
|
69
|
+
this.#promises.set(variable, Promise.resolve(value));
|
|
70
|
+
}
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
62
73
|
// Overloaded implementation
|
|
63
74
|
use(binding, instance) {
|
|
64
75
|
this.#promises.set(binding, Promise.resolve(instance));
|
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,
|
|
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
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Simple type-checking injection library for Typescript",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -28,13 +28,21 @@
|
|
|
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.9.
|
|
31
|
+
"@plugjs/build": "^0.6.73",
|
|
32
|
+
"@plugjs/tsd": "^0.6.83",
|
|
33
|
+
"typescript": "^5.9.3"
|
|
34
34
|
},
|
|
35
35
|
"directories": {
|
|
36
36
|
"test": "test"
|
|
37
37
|
},
|
|
38
|
+
"homepage": "https://github.com/juitnow/siringa#readme",
|
|
39
|
+
"bugs": {
|
|
40
|
+
"url": "https://github.com/juitnow/siringa/issues"
|
|
41
|
+
},
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "git+ssh://git@github.com/juitnow/siringa.git"
|
|
45
|
+
},
|
|
38
46
|
"files": [
|
|
39
47
|
"*.md",
|
|
40
48
|
"dist/",
|
package/src/index.ts
CHANGED
|
@@ -334,6 +334,22 @@ export class Injector<
|
|
|
334
334
|
return this
|
|
335
335
|
}
|
|
336
336
|
|
|
337
|
+
/* ENVIRONMENT VARIABLES ================================================== */
|
|
338
|
+
|
|
339
|
+
/** Provision an environment variable. */
|
|
340
|
+
env<E extends string>(
|
|
341
|
+
variable: E,
|
|
342
|
+
defaultValue?: string,
|
|
343
|
+
): Injector<Components, ExtendProvisions<Provisions, E, string>> {
|
|
344
|
+
const value = globalThis.process?.env?.[variable] || defaultValue
|
|
345
|
+
if (! value) {
|
|
346
|
+
throw new Error(`Environment variable "${variable}" is not defined`)
|
|
347
|
+
} else {
|
|
348
|
+
this.#promises.set(variable, Promise.resolve(value))
|
|
349
|
+
}
|
|
350
|
+
return this
|
|
351
|
+
}
|
|
352
|
+
|
|
337
353
|
/* INSTANCES ============================================================== */
|
|
338
354
|
|
|
339
355
|
/** Use the given instance binding it to to the given `Constructor`. */
|