react-obsidian 3.0.0-alpha.3 → 3.0.0-alpha.7
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/src/Obsidian.d.ts +4 -3
- package/dist/src/Obsidian.d.ts.map +1 -1
- package/dist/src/Obsidian.js +7 -4
- package/dist/src/Obsidian.js.map +1 -1
- package/dist/src/decorators/LifecycleBound.d.ts +1 -1
- package/dist/src/decorators/LifecycleBound.d.ts.map +1 -1
- package/dist/src/decorators/inject/Inject.d.ts.map +1 -1
- package/dist/src/decorators/inject/Inject.js.map +1 -1
- package/dist/src/decorators/inject/Injectable.d.ts +1 -1
- package/dist/src/decorators/inject/Injectable.d.ts.map +1 -1
- package/dist/src/decorators/inject/Injectable.js +2 -2
- package/dist/src/decorators/inject/Injectable.js.map +1 -1
- package/dist/src/graph/ObjectGraph.d.ts.map +1 -1
- package/dist/src/graph/ObjectGraph.js +7 -3
- package/dist/src/graph/ObjectGraph.js.map +1 -1
- package/dist/src/graph/ServiceLocatorFactory.d.ts +1 -1
- package/dist/src/graph/ServiceLocatorFactory.d.ts.map +1 -1
- package/dist/src/graph/ServiceLocatorFactory.js +2 -2
- package/dist/src/graph/ServiceLocatorFactory.js.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.d.ts +15 -2
- package/dist/src/graph/registry/GraphRegistry.d.ts.map +1 -1
- package/dist/src/graph/registry/GraphRegistry.js +108 -9
- package/dist/src/graph/registry/GraphRegistry.js.map +1 -1
- package/dist/src/injectors/class/ClassInjector.d.ts +1 -1
- package/dist/src/injectors/class/ClassInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/ClassInjector.js +5 -14
- package/dist/src/injectors/class/ClassInjector.js.map +1 -1
- package/dist/src/injectors/class/LateInjector.d.ts +2 -1
- package/dist/src/injectors/class/LateInjector.d.ts.map +1 -1
- package/dist/src/injectors/class/LateInjector.js +13 -4
- package/dist/src/injectors/class/LateInjector.js.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts +1 -1
- package/dist/src/injectors/components/ComponentInjector.d.ts.map +1 -1
- package/dist/src/injectors/components/ComponentInjector.js +5 -5
- package/dist/src/injectors/components/ComponentInjector.js.map +1 -1
- package/dist/src/injectors/components/InjectComponent.d.ts +1 -1
- package/dist/src/injectors/components/InjectComponent.d.ts.map +1 -1
- package/dist/src/injectors/components/InjectComponent.js +6 -5
- package/dist/src/injectors/components/InjectComponent.js.map +1 -1
- package/dist/src/injectors/components/useGraph.d.ts +1 -1
- package/dist/src/injectors/components/useGraph.d.ts.map +1 -1
- package/dist/src/injectors/components/useGraph.js +2 -2
- package/dist/src/injectors/components/useGraph.js.map +1 -1
- package/dist/src/injectors/components/useInjectionToken.d.ts +1 -1
- package/dist/src/injectors/components/useInjectionToken.d.ts.map +1 -1
- package/dist/src/injectors/components/useInjectionToken.js +5 -2
- package/dist/src/injectors/components/useInjectionToken.js.map +1 -1
- package/dist/src/injectors/hooks/HookInjector.d.ts +1 -1
- package/dist/src/injectors/hooks/HookInjector.d.ts.map +1 -1
- package/dist/src/injectors/hooks/HookInjector.js +2 -2
- package/dist/src/injectors/hooks/HookInjector.js.map +1 -1
- package/dist/src/injectors/hooks/InjectHook.d.ts +2 -2
- package/dist/src/injectors/hooks/InjectHook.d.ts.map +1 -1
- package/dist/src/injectors/hooks/InjectHook.js +4 -4
- package/dist/src/injectors/hooks/InjectHook.js.map +1 -1
- package/dist/src/utils/getGlobal.d.ts +2 -0
- package/dist/src/utils/getGlobal.d.ts.map +1 -0
- package/dist/src/utils/getGlobal.js +7 -0
- package/dist/src/utils/getGlobal.js.map +1 -0
- package/dist/src/utils/isString.d.ts +2 -0
- package/dist/src/utils/isString.d.ts.map +1 -0
- package/dist/src/utils/isString.js +7 -0
- package/dist/src/utils/isString.js.map +1 -0
- package/dist/src/utils/reflect.d.ts +1 -0
- package/dist/src/utils/reflect.d.ts.map +1 -1
- package/dist/src/utils/reflect.js +12 -1
- package/dist/src/utils/reflect.js.map +1 -1
- package/dist/test/fixtures/LifecycleBoundGraph.js +3 -3
- package/dist/test/fixtures/LifecycleBoundGraph.js.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts +3 -2
- package/dist/transformers/babel-plugin-obsidian/helpers/index.d.ts.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/helpers/index.js +11 -4
- package/dist/transformers/babel-plugin-obsidian/helpers/index.js.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/index.d.ts.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/index.js +5 -0
- package/dist/transformers/babel-plugin-obsidian/index.js.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.d.ts.map +1 -1
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.js +2 -2
- package/dist/transformers/babel-plugin-obsidian/unmagler/property.js.map +1 -1
- package/eslint.config.mjs +2 -1
- package/package.json +13 -10
- package/src/Obsidian.ts +10 -6
- package/src/decorators/LifecycleBound.ts +1 -1
- package/src/decorators/inject/Inject.ts +1 -4
- package/src/decorators/inject/Injectable.ts +2 -2
- package/src/graph/ObjectGraph.ts +7 -3
- package/src/graph/ServiceLocatorFactory.ts +2 -2
- package/src/graph/registry/GraphRegistry.ts +120 -9
- package/src/injectors/class/ClassInjector.ts +6 -14
- package/src/injectors/class/LateInjector.ts +10 -3
- package/src/injectors/components/ComponentInjector.tsx +5 -5
- package/src/injectors/components/InjectComponent.ts +6 -5
- package/src/injectors/components/useGraph.ts +2 -2
- package/src/injectors/components/useInjectionToken.ts +5 -2
- package/src/injectors/hooks/HookInjector.ts +2 -2
- package/src/injectors/hooks/InjectHook.ts +4 -4
- package/src/utils/getGlobal.ts +3 -0
- package/src/utils/isString.ts +3 -0
- package/src/utils/reflect.ts +14 -1
- package/transformers/babel-plugin-obsidian/helpers/index.ts +11 -3
- package/transformers/babel-plugin-obsidian/index.ts +5 -0
- package/transformers/babel-plugin-obsidian/unmagler/property.ts +3 -3
- package/dist/src/decorators/Memoize.d.ts +0 -2
- package/dist/src/decorators/Memoize.d.ts.map +0 -1
- package/dist/src/decorators/Memoize.js +0 -12
- package/dist/src/decorators/Memoize.js.map +0 -1
- package/src/decorators/Memoize.ts +0 -11
|
@@ -11,18 +11,18 @@ const React_1 = require("../../utils/React");
|
|
|
11
11
|
const graphContext_1 = require("./graphContext");
|
|
12
12
|
const useInjectionToken_1 = require("./useInjectionToken");
|
|
13
13
|
class ComponentInjector {
|
|
14
|
-
inject(Target,
|
|
15
|
-
const Wrapped = this.wrapComponent(Target,
|
|
14
|
+
inject(Target, keyOrGraph) {
|
|
15
|
+
const Wrapped = this.wrapComponent(Target, keyOrGraph);
|
|
16
16
|
(0, hoist_non_react_statics_1.default)(Wrapped, Target);
|
|
17
17
|
return Wrapped;
|
|
18
18
|
}
|
|
19
|
-
wrapComponent(InjectionCandidate,
|
|
19
|
+
wrapComponent(InjectionCandidate, keyOrGraph) {
|
|
20
20
|
const isMemoized = (0, React_1.isMemoizedComponent)(InjectionCandidate);
|
|
21
21
|
const Target = isMemoized ? InjectionCandidate.type : InjectionCandidate;
|
|
22
22
|
const compare = isMemoized ? InjectionCandidate.compare : undefined;
|
|
23
23
|
return (0, React_1.genericMemo)((passedProps) => {
|
|
24
|
-
const injectionToken = (0, useInjectionToken_1.useInjectionToken)(
|
|
25
|
-
const graph = (0, useGraph_1.default)(
|
|
24
|
+
const injectionToken = (0, useInjectionToken_1.useInjectionToken)(keyOrGraph);
|
|
25
|
+
const graph = (0, useGraph_1.default)(keyOrGraph, Target, passedProps, injectionToken);
|
|
26
26
|
const proxiedProps = new PropsInjector_1.default(graph).inject(passedProps);
|
|
27
27
|
return (react_1.default.createElement(graphContext_1.GraphContext.Provider, { value: { injectionToken } }, Target(proxiedProps)));
|
|
28
28
|
}, compare);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,
|
|
1
|
+
{"version":3,"file":"ComponentInjector.js","sourceRoot":"","sources":["../../../../src/injectors/components/ComponentInjector.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiD;AACjD,sFAA2D;AAE3D,oEAA4C;AAC5C,0DAAkC;AAElC,6CAAqE;AACrE,iDAA8C;AAC9C,2DAAwD;AAExD,MAAqB,iBAAiB;IACpC,MAAM,CACJ,MAAkC,EAClC,UAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACvD,IAAA,iCAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CACnB,kBAA8C,EAC9C,UAA+C;QAE/C,MAAM,UAAU,GAAG,IAAA,2BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACzE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,mBAAW,EAAC,CAAC,WAAc,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,UAAU,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAI,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;YAC3E,MAAM,YAAY,GAAG,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAElE,OAAO,CACL,8BAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAC7C,MAAM,CAAC,YAA+C,CAAC,CAClC,CACzB,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF;AA9BD,oCA8BC"}
|
|
@@ -4,6 +4,6 @@ import { Constructable } from '../../types';
|
|
|
4
4
|
interface Discriminator {
|
|
5
5
|
obsidianDiscriminator: never;
|
|
6
6
|
}
|
|
7
|
-
export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: React.FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>,
|
|
7
|
+
export declare const injectComponent: <OwnProps = Discriminator, InjectedProps = Discriminator>(Target: React.FunctionComponent<(OwnProps extends infer P ? OwnProps extends Discriminator ? P : OwnProps : never) & (InjectedProps extends Discriminator ? any : InjectedProps)>, keyOrGraph: string | Constructable<ObjectGraph>) => React.FunctionComponent<InjectedProps extends Discriminator ? OwnProps extends Discriminator ? Partial<OwnProps> : OwnProps : OwnProps extends InjectedProps ? Partial<OwnProps> : OwnProps & Partial<InjectedProps>>;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=InjectComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"InjectComponent.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,UAAU,aAAa;IACrB,qBAAqB,EAAE,KAAK,CAAC;CAC9B;AAID,eAAO,MAAM,eAAe,GAAI,QAAQ,kBAAkB,aAAa,0BAC7D,KAAK,CAAC,iBAAiB,CAC/B,CAAC,QAAQ,SAAS,MAAM,CAAC,GAAG,QAAQ,SAAS,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,GAClF,CAAC,aAAa,SAAS,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC,CAC1D,cACW,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,KAIQ,KAAK,CAAC,iBAAiB,CAC5E,aAAa,SAAS,aAAa,GACjC,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAC7D,QAAQ,SAAS,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAE3F,CAAC"}
|
|
@@ -4,15 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.injectComponent = void 0;
|
|
7
|
+
const isString_1 = require("../../utils/isString");
|
|
7
8
|
const ComponentInjector_1 = __importDefault(require("./ComponentInjector"));
|
|
8
9
|
const componentInjector = new ComponentInjector_1.default();
|
|
9
|
-
const injectComponent = (Target,
|
|
10
|
-
assertGraph(
|
|
11
|
-
return componentInjector.inject(Target,
|
|
10
|
+
const injectComponent = (Target, keyOrGraph) => {
|
|
11
|
+
assertGraph(keyOrGraph, Target);
|
|
12
|
+
return componentInjector.inject(Target, keyOrGraph);
|
|
12
13
|
};
|
|
13
14
|
exports.injectComponent = injectComponent;
|
|
14
|
-
function assertGraph(
|
|
15
|
-
if (!
|
|
15
|
+
function assertGraph(keyOrGraph, Target) {
|
|
16
|
+
if (!(0, isString_1.isString)(keyOrGraph) && !keyOrGraph) {
|
|
16
17
|
throw new Error(`injectComponent was called with an undefined Graph.`
|
|
17
18
|
+ `This is probably not an issue with Obsidian.`
|
|
18
19
|
+ `It's typically caused by circular dependencies.`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAGA,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,
|
|
1
|
+
{"version":3,"file":"InjectComponent.js","sourceRoot":"","sources":["../../../../src/injectors/components/InjectComponent.ts"],"names":[],"mappings":";;;;;;AAGA,mDAAgD;AAChD,4EAAoD;AAMpD,MAAM,iBAAiB,GAAG,IAAI,2BAAiB,EAAE,CAAC;AAE3C,MAAM,eAAe,GAAG,CAC7B,MAGC,EACD,UAA+C,EAC/C,EAAE;IACF,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEhC,OAAO,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAIjD,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,eAAe,mBAc1B;AACF,SAAS,WAAW,CAAC,UAA+C,EAAE,MAAW;IAC/E,IAAI,CAAC,IAAA,mBAAQ,EAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,qDAAqD;cACnD,8CAA8C;cAC9C,iDAAiD;cACjD,gCAAgC,MAAM,CAAC,IAAI,GAAG,CACjD,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Constructable } from '../../types';
|
|
2
2
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
3
|
-
declare const _default: <P>(
|
|
3
|
+
declare const _default: <P>(keyOrGraph: string | Constructable<ObjectGraph>, target: any, props?: Partial<P>, injectionToken?: string) => ObjectGraph<unknown>;
|
|
4
4
|
export default _default;
|
|
5
5
|
//# sourceMappingURL=useGraph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;yBAItC,CAAC,
|
|
1
|
+
{"version":3,"file":"useGraph.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;yBAItC,CAAC,cACH,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,UACvC,GAAG,UACH,OAAO,CAAC,CAAC,CAAC,mBACD,MAAM;AAJzB,wBAgBE"}
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const GraphRegistry_1 = __importDefault(require("../../graph/registry/GraphRegistry"));
|
|
8
8
|
const ReferenceCounter_1 = __importDefault(require("../../ReferenceCounter"));
|
|
9
|
-
exports.default = (
|
|
9
|
+
exports.default = (keyOrGraph, target, props, injectionToken) => {
|
|
10
10
|
const [graph] = (0, react_1.useState)(() => {
|
|
11
|
-
const resolvedGraph = GraphRegistry_1.default.resolve(
|
|
11
|
+
const resolvedGraph = GraphRegistry_1.default.resolve(keyOrGraph, 'lifecycleOwner', props, injectionToken);
|
|
12
12
|
resolvedGraph.onBind(target);
|
|
13
13
|
return resolvedGraph;
|
|
14
14
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,
|
|
1
|
+
{"version":3,"file":"useGraph.js","sourceRoot":"","sources":["../../../../src/injectors/components/useGraph.ts"],"names":[],"mappings":";;;;;AAAA,iCAA4C;AAG5C,uFAA+D;AAC/D,8EAAsD;AAEtD,kBAAe,CACb,UAA+C,EAC/C,MAAW,EACX,KAAkB,EAClB,cAAuB,EACvB,EAAE;IACF,MAAM,CAAC,KAAK,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QAC5B,MAAM,aAAa,GAAG,uBAAa,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACjG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,0BAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,0BAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,uBAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { Constructable, ObjectGraph } from '../..';
|
|
2
|
-
export declare const useInjectionToken: (
|
|
2
|
+
export declare const useInjectionToken: (keyOrGraph: string | Constructable<ObjectGraph>) => string;
|
|
3
3
|
//# sourceMappingURL=useInjectionToken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useInjectionToken.d.ts","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAIxD,eAAO,MAAM,iBAAiB,eAAgB,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,WAMhF,CAAC"}
|
|
@@ -4,9 +4,12 @@ exports.useInjectionToken = void 0;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const graphContext_1 = require("./graphContext");
|
|
6
6
|
const uniqueId_1 = require("../../utils/uniqueId");
|
|
7
|
-
const
|
|
7
|
+
const isString_1 = require("../../utils/isString");
|
|
8
|
+
const useInjectionToken = (keyOrGraph) => {
|
|
8
9
|
const ctx = (0, react_1.useContext)(graphContext_1.GraphContext);
|
|
9
|
-
const [injectionToken] = (0, react_1.useState)(() =>
|
|
10
|
+
const [injectionToken] = (0, react_1.useState)(() => {
|
|
11
|
+
return ctx?.injectionToken ?? (0, uniqueId_1.uniqueId)((0, isString_1.isString)(keyOrGraph) ? keyOrGraph : keyOrGraph.name);
|
|
12
|
+
});
|
|
10
13
|
return injectionToken;
|
|
11
14
|
};
|
|
12
15
|
exports.useInjectionToken = useInjectionToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInjectionToken.js","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAC7C,iDAA8C;AAE9C,mDAAgD;AAEzC,MAAM,iBAAiB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"useInjectionToken.js","sourceRoot":"","sources":["../../../../src/injectors/components/useInjectionToken.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAC7C,iDAA8C;AAE9C,mDAAgD;AAChD,mDAAgD;AAEzC,MAAM,iBAAiB,GAAG,CAAC,UAA+C,EAAE,EAAE;IACnF,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,2BAAY,CAAC,CAAC;IACrC,MAAM,CAAC,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE;QACrC,OAAO,GAAG,EAAE,cAAc,IAAI,IAAA,mBAAQ,EAAC,IAAA,mBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IACH,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
2
2
|
import { Constructable } from '../../types';
|
|
3
3
|
export default class HookInjector {
|
|
4
|
-
inject<Args, Result>(hook: (args: Args) => Result,
|
|
4
|
+
inject<Args, Result>(hook: (args: Args) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (args?: Partial<Args>) => Result;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=HookInjector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAC5B,
|
|
1
|
+
{"version":3,"file":"HookInjector.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAC5B,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM;CAMpC"}
|
|
@@ -5,9 +5,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const useGraph_1 = __importDefault(require("../components/useGraph"));
|
|
7
7
|
class HookInjector {
|
|
8
|
-
inject(hook,
|
|
8
|
+
inject(hook, keyOrGraph) {
|
|
9
9
|
return (args) => {
|
|
10
|
-
const graph = (0, useGraph_1.default)(
|
|
10
|
+
const graph = (0, useGraph_1.default)(keyOrGraph, hook, args);
|
|
11
11
|
return hook(new Proxy(args ?? {}, new Injector(graph)));
|
|
12
12
|
};
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,sEAA8C;AAG9C,MAAqB,YAAY;IAC/B,MAAM,CACJ,IAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"HookInjector.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/HookInjector.ts"],"names":[],"mappings":";;;;;AAEA,sEAA8C;AAG9C,MAAqB,YAAY;IAC/B,MAAM,CACJ,IAA4B,EAC5B,UAA+C;QAE/C,OAAO,CAAC,IAAoB,EAAU,EAAE;YACtC,MAAM,KAAK,GAAG,IAAA,kBAAQ,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;CACF;AAVD,+BAUC;AAED,MAAM,QAAQ;IACQ;IAApB,YAAoB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEpC,GAAG,CAAC,GAAQ,EAAE,QAAgB,EAAE,QAAa;QAC3C,OAAO,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ObjectGraph } from '../../graph/ObjectGraph';
|
|
2
2
|
import { Constructable } from '../../types';
|
|
3
|
-
export declare function injectHookWithArguments<Injected, Own, Result = {}>(hook: (args: Injected & Own) => Result,
|
|
4
|
-
export declare function injectHook<Injected, Result = {}>(hook: (args: Injected) => Result,
|
|
3
|
+
export declare function injectHookWithArguments<Injected, Own, Result = {}>(hook: (args: Injected & Own) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (props: Own & Partial<Injected>) => Result;
|
|
4
|
+
export declare function injectHook<Injected, Result = {}>(hook: (args: Injected) => Result, keyOrGraph: string | Constructable<ObjectGraph>): (props?: Partial<Injected>) => Result;
|
|
5
5
|
//# sourceMappingURL=InjectHook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectHook.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAChE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,KAAK,MAAM,EACtC,
|
|
1
|
+
{"version":3,"file":"InjectHook.d.ts","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAU5C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE,EAChE,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,KAAK,MAAM,EACtC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAE5C;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,EAC9C,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM,EAChC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,GAC9C,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,CAEvC"}
|
|
@@ -11,10 +11,10 @@ const hookInjector = new HookInjector_1.default();
|
|
|
11
11
|
// As a workaround, we provide two injection functions with an almost identical signature.
|
|
12
12
|
// 1. injectHookWithArguments: Should be used when a hook requires parameters in addition to the injected dependencies.
|
|
13
13
|
// 2. injectHook: Should be used when a hook does not require parameters.
|
|
14
|
-
function injectHookWithArguments(hook,
|
|
15
|
-
return hookInjector.inject(hook,
|
|
14
|
+
function injectHookWithArguments(hook, keyOrGraph) {
|
|
15
|
+
return hookInjector.inject(hook, keyOrGraph);
|
|
16
16
|
}
|
|
17
|
-
function injectHook(hook,
|
|
18
|
-
return hookInjector.inject(hook,
|
|
17
|
+
function injectHook(hook, keyOrGraph) {
|
|
18
|
+
return hookInjector.inject(hook, keyOrGraph);
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=InjectHook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;AAWA,0DAKC;AAED,gCAKC;AArBD,kEAA0C;AAE1C,MAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,
|
|
1
|
+
{"version":3,"file":"InjectHook.js","sourceRoot":"","sources":["../../../../src/injectors/hooks/InjectHook.ts"],"names":[],"mappings":";;;;;AAWA,0DAKC;AAED,gCAKC;AArBD,kEAA0C;AAE1C,MAAM,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;AAExC,6HAA6H;AAC7H,0FAA0F;AAC1F,uHAAuH;AACvH,yEAAyE;AAEzE,SAAgB,uBAAuB,CACrC,IAAsC,EACtC,UAA+C;IAE/C,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAA+C,CAAC;AAC7F,CAAC;AAED,SAAgB,UAAU,CACxB,IAAgC,EAChC,UAA+C;IAE/C,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGlobal.d.ts","sourceRoot":"","sources":["../../../src/utils/getGlobal.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,GAAG,CAE/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGlobal.js","sourceRoot":"","sources":["../../../src/utils/getGlobal.ts"],"names":[],"mappings":";;AAAA,8BAEC;AAFD,SAAgB,SAAS;IACvB,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isString.d.ts","sourceRoot":"","sources":["../../../src/utils/isString.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,MAAM,CAEpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isString.js","sourceRoot":"","sources":["../../../src/utils/isString.ts"],"names":[],"mappings":";;AAAA,4BAEC;AAFD,SAAgB,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;AACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QASlE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,OAGnD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,WAGnD"}
|
|
@@ -2,7 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.defineMetadata = defineMetadata;
|
|
4
4
|
exports.getMetadata = getMetadata;
|
|
5
|
-
|
|
5
|
+
exports.hasMetadata = hasMetadata;
|
|
6
|
+
const getGlobal_1 = require("./getGlobal");
|
|
7
|
+
function getStore() {
|
|
8
|
+
const global = (0, getGlobal_1.getGlobal)();
|
|
9
|
+
global.__metadataStore = global.__metadataStore || new WeakMap();
|
|
10
|
+
return global.__metadataStore;
|
|
11
|
+
}
|
|
12
|
+
const metadataStore = getStore();
|
|
6
13
|
function defineMetadata(target, key, value) {
|
|
7
14
|
let metadata = metadataStore.get(target);
|
|
8
15
|
if (!metadata) {
|
|
@@ -15,4 +22,8 @@ function getMetadata(target, key) {
|
|
|
15
22
|
const metadata = metadataStore.get(target);
|
|
16
23
|
return metadata ? metadata[key] : undefined;
|
|
17
24
|
}
|
|
25
|
+
function hasMetadata(target, key) {
|
|
26
|
+
const metadata = metadataStore.get(target);
|
|
27
|
+
return metadata ? metadata[key] !== undefined : false;
|
|
28
|
+
}
|
|
18
29
|
//# sourceMappingURL=reflect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../../src/utils/reflect.ts"],"names":[],"mappings":";;AAUA,wCASC;AAED,kCAGC;AAED,kCAGC;AA7BD,2CAAwC;AAExC,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAC3B,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,OAAO,EAAE,CAAC;IACjE,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED,MAAM,aAAa,GAAG,QAAQ,EAAE,CAAC;AAEjC,SAAgB,cAAc,CAAC,MAAW,EAAE,GAAW,EAAE,KAAU;IACjE,IAAI,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,CAAC;QACd,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,GAAW;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAgB,WAAW,CAAC,MAAW,EAAE,GAAW;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACxD,CAAC"}
|
|
@@ -15,9 +15,9 @@ class LifecycleBoundGraph extends src_1.ObjectGraph {
|
|
|
15
15
|
}
|
|
16
16
|
@(0, src_1.provides)()
|
|
17
17
|
computedFromProps() {
|
|
18
|
-
return this.props.stringFromProps
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
return this.props.stringFromProps ?
|
|
19
|
+
`A string passed via props: ${this.props.stringFromProps}` :
|
|
20
|
+
'stringFromProps does not exist';
|
|
21
21
|
}
|
|
22
22
|
@(0, src_1.provides)()
|
|
23
23
|
doesNotRequireProps() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LifecycleBoundGraph.js","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AACzD,wEAAqE;AAIrE,CAAC,IAAA,+BAAc,GAAE;AAAC,CAAC,IAAA,WAAK,GAAE;MACb,mBAAoB,SAAQ,iBAAkB;IACzD,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAChB,KAAK,CAAQ;IAErB,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mBAAmB,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe
|
|
1
|
+
{"version":3,"file":"LifecycleBoundGraph.js","sourceRoot":"","sources":["../../../test/fixtures/LifecycleBoundGraph.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AACzD,wEAAqE;AAIrE,CAAC,IAAA,+BAAc,GAAE;AAAC,CAAC,IAAA,WAAK,GAAE;MACb,mBAAoB,SAAQ,iBAAkB;IACzD,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IAChB,KAAK,CAAQ;IAErB,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mBAAmB,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,iBAAiB;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,8BAA8B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;YAC5D,gCAAgC,CAAC;IACrC,CAAC;IAED,CAAC,IAAA,cAAQ,GAAE;IACX,mBAAmB;QACjB,OAAO,sCAAsC,CAAC;IAChD,CAAC;;AArBH,kDAsBC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ClassMethod, ClassProperty, Decorator, Identifier, ObjectExpression, ObjectPattern, TSParameterProperty, Node } from '@babel/types';
|
|
1
|
+
import { ClassMethod, ClassProperty, Decorator, Identifier, ObjectExpression, ObjectPattern, TSParameterProperty, Node, type StringLiteral } from '@babel/types';
|
|
2
2
|
export type AcceptedNodeType = Identifier | TSParameterProperty | ClassProperty;
|
|
3
3
|
export declare function providerIsNotNamed(decorator: Decorator): boolean;
|
|
4
4
|
export declare function addNameToProviderArguments(node: ClassMethod, decorator: Decorator): void;
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function getDecoratorObjectArgument(decorator: Decorator): ObjectExpression | undefined;
|
|
6
|
+
export declare function getDecoratorStringArgument(decorator: Decorator): StringLiteral | undefined;
|
|
6
7
|
export declare function getMethodName(node: ClassMethod): string;
|
|
7
8
|
export declare function getDecoratorByName(decorators: Array<Decorator> | undefined | null, decoratorName: string): Decorator | undefined;
|
|
8
9
|
export declare function getDecoratorName(decorator?: Decorator): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,WAAW,EACX,aAAa,EACb,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,IAAI,EACJ,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAItB,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAEhF,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAWhE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,QAOjF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAK7F;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAK1F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAGvD;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,EAC/C,aAAa,EAAE,MAAM,GACpB,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAI7E;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,QAOrB"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.providerIsNotNamed = providerIsNotNamed;
|
|
4
4
|
exports.addNameToProviderArguments = addNameToProviderArguments;
|
|
5
|
-
exports.
|
|
5
|
+
exports.getDecoratorObjectArgument = getDecoratorObjectArgument;
|
|
6
|
+
exports.getDecoratorStringArgument = getDecoratorStringArgument;
|
|
6
7
|
exports.getMethodName = getMethodName;
|
|
7
8
|
exports.getDecoratorByName = getDecoratorByName;
|
|
8
9
|
exports.getDecoratorName = getDecoratorName;
|
|
@@ -11,7 +12,7 @@ exports.passParamNameAsInjectArgument = passParamNameAsInjectArgument;
|
|
|
11
12
|
const core_1 = require("@babel/core");
|
|
12
13
|
const never = '';
|
|
13
14
|
function providerIsNotNamed(decorator) {
|
|
14
|
-
const argument =
|
|
15
|
+
const argument = getDecoratorObjectArgument(decorator);
|
|
15
16
|
if (core_1.types.isObjectExpression(argument)) {
|
|
16
17
|
return argument.properties.find((p) => {
|
|
17
18
|
if (core_1.types.isObjectProperty(p)) {
|
|
@@ -23,16 +24,22 @@ function providerIsNotNamed(decorator) {
|
|
|
23
24
|
return true;
|
|
24
25
|
}
|
|
25
26
|
function addNameToProviderArguments(node, decorator) {
|
|
26
|
-
const argument =
|
|
27
|
+
const argument = getDecoratorObjectArgument(decorator) ?? core_1.types.objectExpression([]);
|
|
27
28
|
argument.properties.push(core_1.types.objectProperty(core_1.types.identifier('name'), core_1.types.stringLiteral(getMethodName(node))));
|
|
28
29
|
decorator.expression.arguments = [argument];
|
|
29
30
|
}
|
|
30
|
-
function
|
|
31
|
+
function getDecoratorObjectArgument(decorator) {
|
|
31
32
|
if (core_1.types.isCallExpression(decorator.expression)) {
|
|
32
33
|
return decorator.expression.arguments.find(a => core_1.types.isObjectExpression(a));
|
|
33
34
|
}
|
|
34
35
|
return undefined;
|
|
35
36
|
}
|
|
37
|
+
function getDecoratorStringArgument(decorator) {
|
|
38
|
+
if (core_1.types.isCallExpression(decorator.expression)) {
|
|
39
|
+
return decorator.expression.arguments.find(a => core_1.types.isStringLiteral(a));
|
|
40
|
+
}
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
36
43
|
function getMethodName(node) {
|
|
37
44
|
if (core_1.types.isIdentifier(node.key))
|
|
38
45
|
return node.key.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/helpers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAC;AAwClD,MAAM,CAAC,OAAO,UAAU,MAAM,gDAE7B"}
|
|
@@ -16,22 +16,27 @@ const internalVisitor = {
|
|
|
16
16
|
ClassMethod: {
|
|
17
17
|
enter({ node }) {
|
|
18
18
|
unmagler_1.default.saveClassMethod('provides', node);
|
|
19
|
+
unmagler_1.default.saveClassMethod('Provides', node);
|
|
19
20
|
},
|
|
20
21
|
},
|
|
21
22
|
ClassProperty: {
|
|
22
23
|
enter({ node }) {
|
|
23
24
|
unmagler_1.default.saveClassProperty('inject', node);
|
|
24
25
|
unmagler_1.default.saveClassProperty('lateInject', node);
|
|
26
|
+
unmagler_1.default.saveClassProperty('Inject', node);
|
|
27
|
+
unmagler_1.default.saveClassProperty('LateInject', node);
|
|
25
28
|
},
|
|
26
29
|
},
|
|
27
30
|
Identifier: {
|
|
28
31
|
enter({ node }) {
|
|
29
32
|
unmagler_1.default.saveIdentifier('inject', node);
|
|
33
|
+
unmagler_1.default.saveIdentifier('Inject', node);
|
|
30
34
|
},
|
|
31
35
|
},
|
|
32
36
|
TSParameterProperty: {
|
|
33
37
|
enter({ node }) {
|
|
34
38
|
unmagler_1.default.saveTSParameterProperty('inject', node);
|
|
39
|
+
unmagler_1.default.saveTSParameterProperty('Inject', node);
|
|
35
40
|
},
|
|
36
41
|
},
|
|
37
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../transformers/babel-plugin-obsidian/index.ts"],"names":[],"mappings":";;;;;AA+CA,yBAEC;AAzCD,0DAAkC;AAElC,MAAM,4BAA4B,GAAc;IAC9C,OAAO,EAAE;QACP,OAAO,CAAC,IAAuB;YAC7B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACjC,CAAC;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE;QACX,KAAK,CAAC,EAAE,IAAI,EAAyB;YACnC,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;KACF;IACD,aAAa,EAAE;QACb,KAAK,CAAC,EAAE,IAAI,EAA2B;YACrC,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/C,kBAAQ,CAAC,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC3C,kBAAQ,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC;KACF;IACD,UAAU,EAAE;QACV,KAAK,CAAC,EAAE,IAAI,EAAwB;YAClC,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACxC,kBAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;KACF;IACD,mBAAmB,EAAE;QACnB,KAAK,CAAC,EAAE,IAAI,EAAiC;YAC3C,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACjD,kBAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;KACF;CACF,CAAC;AAEF,SAAwB,MAAM;IAC5B,OAAO,4BAA4B,CAAC;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"property.d.ts","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,iBAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAK7D;AAMD,eAAe,gBAAgB,CAAC"}
|
|
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const helpers_1 = require("../helpers");
|
|
4
4
|
function savePropertyName(name, node) {
|
|
5
5
|
const decorator = (0, helpers_1.getDecoratorByName)(node.decorators, name);
|
|
6
|
-
if ((0, helpers_1.getDecoratorName)(decorator) === name && injectIsNotNamed(decorator)) {
|
|
6
|
+
if (((0, helpers_1.getDecoratorName)(decorator) === name) && injectIsNotNamed(decorator)) {
|
|
7
7
|
(0, helpers_1.passParamNameAsInjectArgument)(node, decorator);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
function injectIsNotNamed(decorator) {
|
|
11
|
-
return (0, helpers_1.
|
|
11
|
+
return (0, helpers_1.getDecoratorStringArgument)(decorator) === undefined;
|
|
12
12
|
}
|
|
13
13
|
exports.default = savePropertyName;
|
|
14
14
|
//# sourceMappingURL=property.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":";;AACA,wCAMoB;AAEpB,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAsB;IAC5D,MAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,IAAI,gBAAgB,CAAC,SAAU,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"property.js","sourceRoot":"","sources":["../../../../transformers/babel-plugin-obsidian/unmagler/property.ts"],"names":[],"mappings":";;AACA,wCAMoB;AAEpB,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAsB;IAC5D,MAAM,SAAS,GAAG,IAAA,4BAAkB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAA,0BAAgB,EAAC,SAAS,CAAC,KAAK,IAAI,CAAC,IAAI,gBAAgB,CAAC,SAAU,CAAC,EAAE,CAAC;QAC3E,IAAA,uCAA6B,EAAC,IAAI,EAAE,SAAU,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAoB;IAC5C,OAAO,IAAA,oCAA0B,EAAC,SAAS,CAAC,KAAK,SAAS,CAAC;AAC7D,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
|
package/eslint.config.mjs
CHANGED
|
@@ -48,6 +48,7 @@ export default eslintTs.config(
|
|
|
48
48
|
"@typescript-eslint/no-explicit-any": "off",
|
|
49
49
|
"@typescript-eslint/no-unsafe-member-access": "off",
|
|
50
50
|
"@typescript-eslint/no-empty-object-type": "off",
|
|
51
|
+
"@typescript-eslint/no-require-imports": "off",
|
|
51
52
|
"@typescript-eslint/no-unsafe-assignment": "off",
|
|
52
53
|
"@typescript-eslint/no-unsafe-argument": "off",
|
|
53
54
|
"@typescript-eslint/no-unsafe-return": "off",
|
|
@@ -86,7 +87,7 @@ export default eslintTs.config(
|
|
|
86
87
|
}],
|
|
87
88
|
"@stylistic/max-statements-per-line": ["error", { "max": 2 }],
|
|
88
89
|
"@stylistic/no-extra-semi": "error",
|
|
89
|
-
|
|
90
|
+
"@stylistic/operator-linebreak": ["error", "before", { "overrides": { "?": "after", ":": "after" } }],
|
|
90
91
|
"@stylistic/lines-between-class-members": ["error", "always", {
|
|
91
92
|
exceptAfterSingleLine: true,
|
|
92
93
|
}],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-obsidian",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.7",
|
|
4
4
|
"description": "Dependency injection framework for React and React Native applications",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepack": "npm run lint && tsc --project tsconfig.prod.json",
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
"react": "*"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@babel/core": "^7.25.
|
|
25
|
-
"@babel/eslint-parser": "^7.25.
|
|
26
|
-
"@babel/plugin-proposal-decorators": "^7.
|
|
27
|
-
"@babel/plugin-transform-class-properties": "^7.25.
|
|
28
|
-
"@babel/preset-env": "^7.25.
|
|
29
|
-
"@babel/preset-react": "^7.
|
|
30
|
-
"@babel/preset-typescript": "^7.
|
|
31
|
-
"@babel/types": "^7.25.
|
|
24
|
+
"@babel/core": "^7.25.8",
|
|
25
|
+
"@babel/eslint-parser": "^7.25.8",
|
|
26
|
+
"@babel/plugin-proposal-decorators": "^7.25.7",
|
|
27
|
+
"@babel/plugin-transform-class-properties": "^7.25.7",
|
|
28
|
+
"@babel/preset-env": "^7.25.8",
|
|
29
|
+
"@babel/preset-react": "^7.25.7",
|
|
30
|
+
"@babel/preset-typescript": "^7.25.7",
|
|
31
|
+
"@babel/types": "^7.25.8",
|
|
32
32
|
"@eslint/compat": "^1.1.1",
|
|
33
33
|
"@eslint/eslintrc": "^3.1.0",
|
|
34
34
|
"@eslint/js": "^9.9.1",
|
|
@@ -44,8 +44,11 @@
|
|
|
44
44
|
"@typescript-eslint/parser": "^8.4.0",
|
|
45
45
|
"cross-env": "^7.0.3",
|
|
46
46
|
"eslint": "^9.9.1",
|
|
47
|
+
"eslint-plugin-import": "^2.25.2",
|
|
48
|
+
"eslint-plugin-import-newlines": "^1.1.5",
|
|
47
49
|
"eslint-plugin-jest": "^28.8.3",
|
|
48
|
-
"eslint-plugin-
|
|
50
|
+
"eslint-plugin-jest-formatting": "^3.1.0",
|
|
51
|
+
"eslint-plugin-obsidian": "3.0.0-alpha.7",
|
|
49
52
|
"eslint-plugin-react": "^7.35.0",
|
|
50
53
|
"eslint-plugin-react-hooks": "^4.6.2",
|
|
51
54
|
"eslint-plugin-unused-imports": "^4.1.3",
|
package/src/Obsidian.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import graphRegistry from './graph/registry/GraphRegistry';
|
|
2
2
|
import { ObjectGraph } from './graph/ObjectGraph';
|
|
3
|
-
import { GraphInternals, ServiceLocator } from './types';
|
|
3
|
+
import { GraphInternals, ServiceLocator, type Constructable } from './types';
|
|
4
4
|
import { GraphMiddleware } from './graph/registry/GraphMiddleware';
|
|
5
5
|
import lateInjector from './injectors/class/LateInjector';
|
|
6
6
|
import serviceLocatorFactory from './graph/ServiceLocatorFactory';
|
|
7
7
|
|
|
8
8
|
export default class Obsidian {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
registerGraph(key: string, generator: () => Constructable<ObjectGraph>) {
|
|
10
|
+
graphRegistry.registerGraphGenerator(key, generator);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
obtain<T extends ObjectGraph<P>, P = unknown>(
|
|
14
|
+
keyOrGraph: string | (new(...args: P[]) => T),
|
|
11
15
|
props?: P,
|
|
12
16
|
): ServiceLocator<Omit<T, GraphInternals>> {
|
|
13
|
-
return serviceLocatorFactory.fromGraph(
|
|
17
|
+
return serviceLocatorFactory.fromGraph(keyOrGraph, props);
|
|
14
18
|
}
|
|
15
19
|
|
|
16
|
-
inject<T extends object>(target: T,
|
|
17
|
-
return lateInjector.inject(target,
|
|
20
|
+
inject<T extends object>(target: T, keyOrGraph?: string | ObjectGraph) {
|
|
21
|
+
return lateInjector.inject(target, keyOrGraph);
|
|
18
22
|
}
|
|
19
23
|
|
|
20
24
|
addGraphMiddleware(middleware: GraphMiddleware) {
|