@decohere/crucible 0.0.1-dev.60 → 0.0.1-dev.62
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.
|
@@ -24,4 +24,4 @@ function getExistingMeta(target) {
|
|
|
24
24
|
return meta;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NydWNpYmxlL3NyYy9kZWNvcmF0b3JzL2luamVjdC5kZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3RhYmxlLCBkZWZpbmVNZXRhLCBnZXRNZXRhIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBDcnVjaWJsZU1ldGEgfSBmcm9tIFwiLi4vY29uc3QuanNcIjtcblxuZXhwb3J0IHR5cGUgSW5qZWN0aW9uTWV0YWRhdGEgPSBNYXA8bnVtYmVyLCBJbmplY3Rpb25Ub2tlbj47XG5cbmV4cG9ydCB0eXBlIEluamVjdGlvblRva2VuID0ge1xuXHRrZXk6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdGFibGU7XG59O1xuXG4vKipcbiAqIEJpbmQgYSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgdG8gYSByZWdpc3RyYXRpb24ga2V5LlxuICogQSBjbGFzcyB1c2VzIGBDbGFzcy5uYW1lYCAoc2FtZSBrZXkgYXMgYHJlZ2lzdGVyU2luZ2xldG9uKENsYXNzKWApLlxuICogUHJlZmVyIHRoZSBjbGFzcyBvdmVyIGEgbmFtZSBzdHJpbmcuIFVzZSBhIHN5bWJvbCBvciBzdHJpbmcgd2hlbiB0aGUga2V5IGlzIG5vdCB0aGUgY2xhc3MgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdChrZXk6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdGFibGUpIHtcblx0cmV0dXJuICh0YXJnZXQ6IG9iamVjdCwgX3Byb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsIGlkeDogbnVtYmVyKSA9PiB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBnZXRFeGlzdGluZ01ldGEodGFyZ2V0KTtcblx0XHRtZXRhZGF0YS5zZXQoaWR4LCB7IGtleSB9KTtcblx0XHRkZWZpbmVNZXRhKENydWNpYmxlTWV0YS5pbmplY3R0b2tlbiwgbWV0YWRhdGEsIHRhcmdldCk7XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldEV4aXN0aW5nTWV0YSh0YXJnZXQ6IG9iamVjdCkge1xuXHRjb25zdCBtZXRhID1cblx0XHRnZXRNZXRhPE1hcDxudW1iZXIsIEluamVjdGlvblRva2VuPj4oQ3J1Y2libGVNZXRhLmluamVjdHRva2VuLCB0YXJnZXQpID8/XG5cdFx0bmV3IE1hcDxudW1iZXIsIEluamVjdGlvblRva2VuPigpO1xuXHRyZXR1cm4gbWV0YTtcbn1cbiJdLCJuYW1lcyI6WyJpbmplY3QiLCJrZXkiLCJ0YXJnZXQiLCJfcHJvcGVydHlLZXkiLCJpZHgiLCJtZXRhZGF0YSIsImdldEV4aXN0aW5nTWV0YSIsInNldCIsImRlZmluZU1ldGEiLCJDcnVjaWJsZU1ldGEiLCJpbmplY3R0b2tlbiIsIm1ldGEiLCJnZXRNZXRhIiwiTWFwIl0sIm1hcHBpbmdzIjoiOzs7OytCQWNnQkE7OztlQUFBQTs7OzRCQWR3Qzt1QkFDM0I7QUFhdEIsU0FBU0EsT0FBT0MsR0FBb0M7SUFDMUQsT0FBTyxDQUFDQyxRQUFnQkMsY0FBMkNDO1FBQ2xFLE1BQU1DLFdBQVdDLGdCQUFnQko7UUFDakNHLFNBQVNFLEdBQUcsQ0FBQ0gsS0FBSztZQUFFSDtRQUFJO1FBQ3hCTyxJQUFBQSxzQkFBVSxFQUFDQyxtQkFBWSxDQUFDQyxXQUFXLEVBQUVMLFVBQVVIO0lBQ2hEO0FBQ0Q7QUFFQSxTQUFTSSxnQkFBZ0JKLE1BQWM7SUFDdEMsTUFBTVMsT0FDTEMsSUFBQUEsbUJBQU8sRUFBOEJILG1CQUFZLENBQUNDLFdBQVcsRUFBRVIsV0FDL0QsSUFBSVc7SUFDTCxPQUFPRjtBQUNSIn0=
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { defineMeta, getMeta } from "@decohere/nexus/reflection";
|
|
2
2
|
import { CrucibleMeta } from "../const.js";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Bind a constructor parameter to a registration key.
|
|
5
|
+
* A class uses `Class.name` (same key as `registerSingleton(Class)`).
|
|
6
|
+
* Prefer the class over a name string. Use a symbol or string when the key is not the class name.
|
|
7
|
+
*/ export function inject(key) {
|
|
4
8
|
return (target, _propertyKey, idx)=>{
|
|
5
9
|
const metadata = getExistingMeta(target);
|
|
6
10
|
metadata.set(idx, {
|
|
@@ -14,4 +18,4 @@ function getExistingMeta(target) {
|
|
|
14
18
|
return meta;
|
|
15
19
|
}
|
|
16
20
|
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL2NydWNpYmxlL3NyYy9kZWNvcmF0b3JzL2luamVjdC5kZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3RhYmxlLCBkZWZpbmVNZXRhLCBnZXRNZXRhIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBDcnVjaWJsZU1ldGEgfSBmcm9tIFwiLi4vY29uc3QuanNcIjtcblxuZXhwb3J0IHR5cGUgSW5qZWN0aW9uTWV0YWRhdGEgPSBNYXA8bnVtYmVyLCBJbmplY3Rpb25Ub2tlbj47XG5cbmV4cG9ydCB0eXBlIEluamVjdGlvblRva2VuID0ge1xuXHRrZXk6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdGFibGU7XG59O1xuXG4vKipcbiAqIEJpbmQgYSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgdG8gYSByZWdpc3RyYXRpb24ga2V5LlxuICogQSBjbGFzcyB1c2VzIGBDbGFzcy5uYW1lYCAoc2FtZSBrZXkgYXMgYHJlZ2lzdGVyU2luZ2xldG9uKENsYXNzKWApLlxuICogUHJlZmVyIHRoZSBjbGFzcyBvdmVyIGEgbmFtZSBzdHJpbmcuIFVzZSBhIHN5bWJvbCBvciBzdHJpbmcgd2hlbiB0aGUga2V5IGlzIG5vdCB0aGUgY2xhc3MgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdChrZXk6IHN0cmluZyB8IHN5bWJvbCB8IENvbnN0cnVjdGFibGUpIHtcblx0cmV0dXJuICh0YXJnZXQ6IG9iamVjdCwgX3Byb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsIGlkeDogbnVtYmVyKSA9PiB7XG5cdFx0Y29uc3QgbWV0YWRhdGEgPSBnZXRFeGlzdGluZ01ldGEodGFyZ2V0KTtcblx0XHRtZXRhZGF0YS5zZXQoaWR4LCB7IGtleSB9KTtcblx0XHRkZWZpbmVNZXRhKENydWNpYmxlTWV0YS5pbmplY3R0b2tlbiwgbWV0YWRhdGEsIHRhcmdldCk7XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldEV4aXN0aW5nTWV0YSh0YXJnZXQ6IG9iamVjdCkge1xuXHRjb25zdCBtZXRhID1cblx0XHRnZXRNZXRhPE1hcDxudW1iZXIsIEluamVjdGlvblRva2VuPj4oQ3J1Y2libGVNZXRhLmluamVjdHRva2VuLCB0YXJnZXQpID8/XG5cdFx0bmV3IE1hcDxudW1iZXIsIEluamVjdGlvblRva2VuPigpO1xuXHRyZXR1cm4gbWV0YTtcbn1cbiJdLCJuYW1lcyI6WyJkZWZpbmVNZXRhIiwiZ2V0TWV0YSIsIkNydWNpYmxlTWV0YSIsImluamVjdCIsImtleSIsInRhcmdldCIsIl9wcm9wZXJ0eUtleSIsImlkeCIsIm1ldGFkYXRhIiwiZ2V0RXhpc3RpbmdNZXRhIiwic2V0IiwiaW5qZWN0dG9rZW4iLCJtZXRhIiwiTWFwIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUE2QkEsVUFBVSxFQUFFQyxPQUFPLFFBQVEsNkJBQTZCO0FBQ3JGLFNBQVNDLFlBQVksUUFBUSxjQUFjO0FBUTNDOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVNDLE9BQU9DLEdBQW9DO0lBQzFELE9BQU8sQ0FBQ0MsUUFBZ0JDLGNBQTJDQztRQUNsRSxNQUFNQyxXQUFXQyxnQkFBZ0JKO1FBQ2pDRyxTQUFTRSxHQUFHLENBQUNILEtBQUs7WUFBRUg7UUFBSTtRQUN4QkosV0FBV0UsYUFBYVMsV0FBVyxFQUFFSCxVQUFVSDtJQUNoRDtBQUNEO0FBRUEsU0FBU0ksZ0JBQWdCSixNQUFjO0lBQ3RDLE1BQU1PLE9BQ0xYLFFBQXFDQyxhQUFhUyxXQUFXLEVBQUVOLFdBQy9ELElBQUlRO0lBQ0wsT0FBT0Q7QUFDUiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decohere/crucible",
|
|
3
|
-
"version": "0.0.1-dev.
|
|
3
|
+
"version": "0.0.1-dev.62",
|
|
4
4
|
"description": "Lightweight dependency injection container with decorator-based wiring",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@decohere/nexus": "0.0.1-dev.
|
|
34
|
-
"@decohere/scribe": "0.0.1-dev.
|
|
33
|
+
"@decohere/nexus": "0.0.1-dev.62",
|
|
34
|
+
"@decohere/scribe": "0.0.1-dev.62"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {}
|
|
37
37
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { type Constructable } from "@decohere/nexus/reflection";
|
|
1
2
|
export type InjectionMetadata = Map<number, InjectionToken>;
|
|
2
3
|
export type InjectionToken = {
|
|
3
|
-
key: string | symbol;
|
|
4
|
+
key: string | symbol | Constructable;
|
|
4
5
|
};
|
|
5
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Bind a constructor parameter to a registration key.
|
|
8
|
+
* A class uses `Class.name` (same key as `registerSingleton(Class)`).
|
|
9
|
+
* Prefer the class over a name string. Use a symbol or string when the key is not the class name.
|
|
10
|
+
*/
|
|
11
|
+
export declare function inject(key: string | symbol | Constructable): (target: object, _propertyKey: string | symbol | undefined, idx: number) => void;
|