@nexus-ioc/core 0.4.0

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.
Files changed (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/dist/browser.d.ts +1 -0
  4. package/dist/browser.js +6 -0
  5. package/dist/browser.js.map +1 -0
  6. package/dist/core/graph/analyze-module.d.ts +36 -0
  7. package/dist/core/graph/analyze-module.js +82 -0
  8. package/dist/core/graph/analyze-module.js.map +1 -0
  9. package/dist/core/graph/analyze-provider.d.ts +24 -0
  10. package/dist/core/graph/analyze-provider.js +57 -0
  11. package/dist/core/graph/analyze-provider.js.map +1 -0
  12. package/dist/core/graph/helpers/index.d.ts +9 -0
  13. package/dist/core/graph/helpers/index.js +23 -0
  14. package/dist/core/graph/helpers/index.js.map +1 -0
  15. package/dist/core/graph/module-graph.d.ts +34 -0
  16. package/dist/core/graph/module-graph.js +399 -0
  17. package/dist/core/graph/module-graph.js.map +1 -0
  18. package/dist/core/graph/providers/analyze-class-provider.d.ts +7 -0
  19. package/dist/core/graph/providers/analyze-class-provider.js +17 -0
  20. package/dist/core/graph/providers/analyze-class-provider.js.map +1 -0
  21. package/dist/core/graph/providers/analyze-factory-provider.d.ts +7 -0
  22. package/dist/core/graph/providers/analyze-factory-provider.js +17 -0
  23. package/dist/core/graph/providers/analyze-factory-provider.js.map +1 -0
  24. package/dist/core/graph/providers/analyze-function-provider.d.ts +5 -0
  25. package/dist/core/graph/providers/analyze-function-provider.js +11 -0
  26. package/dist/core/graph/providers/analyze-function-provider.js.map +1 -0
  27. package/dist/core/graph/providers/analyze-value-provider.d.ts +7 -0
  28. package/dist/core/graph/providers/analyze-value-provider.js +17 -0
  29. package/dist/core/graph/providers/analyze-value-provider.js.map +1 -0
  30. package/dist/core/graph/providers/provider-factory.d.ts +6 -0
  31. package/dist/core/graph/providers/provider-factory.js +24 -0
  32. package/dist/core/graph/providers/provider-factory.js.map +1 -0
  33. package/dist/core/modules/container.d.ts +15 -0
  34. package/dist/core/modules/container.js +40 -0
  35. package/dist/core/modules/container.js.map +1 -0
  36. package/dist/core/modules/module-container-factory.d.ts +9 -0
  37. package/dist/core/modules/module-container-factory.js +25 -0
  38. package/dist/core/modules/module-container-factory.js.map +1 -0
  39. package/dist/core/modules/module-container.d.ts +16 -0
  40. package/dist/core/modules/module-container.js +63 -0
  41. package/dist/core/modules/module-container.js.map +1 -0
  42. package/dist/core/modules/module-token-factory.d.ts +12 -0
  43. package/dist/core/modules/module-token-factory.js +48 -0
  44. package/dist/core/modules/module-token-factory.js.map +1 -0
  45. package/dist/core/modules/modules-container.d.ts +16 -0
  46. package/dist/core/modules/modules-container.js +43 -0
  47. package/dist/core/modules/modules-container.js.map +1 -0
  48. package/dist/core/nexus-applications.browser.d.ts +13 -0
  49. package/dist/core/nexus-applications.browser.js +36 -0
  50. package/dist/core/nexus-applications.browser.js.map +1 -0
  51. package/dist/core/nexus-applications.server.d.ts +13 -0
  52. package/dist/core/nexus-applications.server.js +36 -0
  53. package/dist/core/nexus-applications.server.js.map +1 -0
  54. package/dist/core/resolver/providers-container.d.ts +3 -0
  55. package/dist/core/resolver/providers-container.js +8 -0
  56. package/dist/core/resolver/providers-container.js.map +1 -0
  57. package/dist/core/resolver/resolver.d.ts +10 -0
  58. package/dist/core/resolver/resolver.js +126 -0
  59. package/dist/core/resolver/resolver.js.map +1 -0
  60. package/dist/decorators/global.d.ts +2 -0
  61. package/dist/decorators/global.js +12 -0
  62. package/dist/decorators/global.js.map +1 -0
  63. package/dist/decorators/inject.d.ts +3 -0
  64. package/dist/decorators/inject.js +27 -0
  65. package/dist/decorators/inject.js.map +1 -0
  66. package/dist/decorators/injectable.d.ts +3 -0
  67. package/dist/decorators/injectable.js +12 -0
  68. package/dist/decorators/injectable.js.map +1 -0
  69. package/dist/decorators/nsModule.d.ts +3 -0
  70. package/dist/decorators/nsModule.js +16 -0
  71. package/dist/decorators/nsModule.js.map +1 -0
  72. package/dist/decorators/optional.d.ts +2 -0
  73. package/dist/decorators/optional.js +20 -0
  74. package/dist/decorators/optional.js.map +1 -0
  75. package/dist/errors/container-not-compiled.error.d.ts +3 -0
  76. package/dist/errors/container-not-compiled.error.js +12 -0
  77. package/dist/errors/container-not-compiled.error.js.map +1 -0
  78. package/dist/index.d.ts +7 -0
  79. package/dist/index.js +17 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/interfaces/abstract.interface.d.ts +3 -0
  82. package/dist/interfaces/abstract.interface.js +3 -0
  83. package/dist/interfaces/abstract.interface.js.map +1 -0
  84. package/dist/interfaces/constants.d.ts +12 -0
  85. package/dist/interfaces/constants.js +16 -0
  86. package/dist/interfaces/constants.js.map +1 -0
  87. package/dist/interfaces/dynamic-module.interface.d.ts +13 -0
  88. package/dist/interfaces/dynamic-module.interface.js +3 -0
  89. package/dist/interfaces/dynamic-module.interface.js.map +1 -0
  90. package/dist/interfaces/index.d.ts +15 -0
  91. package/dist/interfaces/index.js +19 -0
  92. package/dist/interfaces/index.js.map +1 -0
  93. package/dist/interfaces/injectable.interface.d.ts +4 -0
  94. package/dist/interfaces/injectable.interface.js +3 -0
  95. package/dist/interfaces/injectable.interface.js.map +1 -0
  96. package/dist/interfaces/injection-token.interface.d.ts +3 -0
  97. package/dist/interfaces/injection-token.interface.js +3 -0
  98. package/dist/interfaces/injection-token.interface.js.map +1 -0
  99. package/dist/interfaces/module-metadata.interface.d.ts +8 -0
  100. package/dist/interfaces/module-metadata.interface.js +3 -0
  101. package/dist/interfaces/module-metadata.interface.js.map +1 -0
  102. package/dist/interfaces/module-types.interface.d.ts +20 -0
  103. package/dist/interfaces/module-types.interface.js +3 -0
  104. package/dist/interfaces/module-types.interface.js.map +1 -0
  105. package/dist/interfaces/modules/container.interface.d.ts +16 -0
  106. package/dist/interfaces/modules/container.interface.js +3 -0
  107. package/dist/interfaces/modules/container.interface.js.map +1 -0
  108. package/dist/interfaces/modules/index.d.ts +7 -0
  109. package/dist/interfaces/modules/index.js +11 -0
  110. package/dist/interfaces/modules/index.js.map +1 -0
  111. package/dist/interfaces/modules/module-container-factory.interface.d.ts +7 -0
  112. package/dist/interfaces/modules/module-container-factory.interface.js +3 -0
  113. package/dist/interfaces/modules/module-container-factory.interface.js.map +1 -0
  114. package/dist/interfaces/modules/module-container.interface.d.ts +13 -0
  115. package/dist/interfaces/modules/module-container.interface.js +3 -0
  116. package/dist/interfaces/modules/module-container.interface.js.map +1 -0
  117. package/dist/interfaces/modules/module-graph.interface.d.ts +59 -0
  118. package/dist/interfaces/modules/module-graph.interface.js +16 -0
  119. package/dist/interfaces/modules/module-graph.interface.js.map +1 -0
  120. package/dist/interfaces/modules/module-token-factory.interface.d.ts +5 -0
  121. package/dist/interfaces/modules/module-token-factory.interface.js +3 -0
  122. package/dist/interfaces/modules/module-token-factory.interface.js.map +1 -0
  123. package/dist/interfaces/modules/modules-container.interface.d.ts +8 -0
  124. package/dist/interfaces/modules/modules-container.interface.js +3 -0
  125. package/dist/interfaces/modules/modules-container.interface.js.map +1 -0
  126. package/dist/interfaces/modules/provider-token-factory.interface.d.ts +4 -0
  127. package/dist/interfaces/modules/provider-token-factory.interface.js +3 -0
  128. package/dist/interfaces/modules/provider-token-factory.interface.js.map +1 -0
  129. package/dist/interfaces/nexus-application.interface.d.ts +8 -0
  130. package/dist/interfaces/nexus-application.interface.js +3 -0
  131. package/dist/interfaces/nexus-application.interface.js.map +1 -0
  132. package/dist/interfaces/on-module-init.interface.d.ts +3 -0
  133. package/dist/interfaces/on-module-init.interface.js +3 -0
  134. package/dist/interfaces/on-module-init.interface.js.map +1 -0
  135. package/dist/interfaces/plugins/index.d.ts +2 -0
  136. package/dist/interfaces/plugins/index.js +6 -0
  137. package/dist/interfaces/plugins/index.js.map +1 -0
  138. package/dist/interfaces/plugins/module-plugin.interface.d.ts +4 -0
  139. package/dist/interfaces/plugins/module-plugin.interface.js +3 -0
  140. package/dist/interfaces/plugins/module-plugin.interface.js.map +1 -0
  141. package/dist/interfaces/plugins/scanner-plugin.interface.d.ts +6 -0
  142. package/dist/interfaces/plugins/scanner-plugin.interface.js +3 -0
  143. package/dist/interfaces/plugins/scanner-plugin.interface.js.map +1 -0
  144. package/dist/interfaces/scope.interface.d.ts +4 -0
  145. package/dist/interfaces/scope.interface.js +9 -0
  146. package/dist/interfaces/scope.interface.js.map +1 -0
  147. package/dist/interfaces/type.interface.d.ts +3 -0
  148. package/dist/interfaces/type.interface.js +3 -0
  149. package/dist/interfaces/type.interface.js.map +1 -0
  150. package/dist/interfaces/utils/hash-utils.interface.d.ts +5 -0
  151. package/dist/interfaces/utils/hash-utils.interface.js +3 -0
  152. package/dist/interfaces/utils/hash-utils.interface.js.map +1 -0
  153. package/dist/interfaces/utils/index.d.ts +1 -0
  154. package/dist/interfaces/utils/index.js +5 -0
  155. package/dist/interfaces/utils/index.js.map +1 -0
  156. package/dist/interfaces/validate-module-keys.d.ts +7 -0
  157. package/dist/interfaces/validate-module-keys.js +26 -0
  158. package/dist/interfaces/validate-module-keys.js.map +1 -0
  159. package/dist/server.d.ts +1 -0
  160. package/dist/server.js +6 -0
  161. package/dist/server.js.map +1 -0
  162. package/dist/utils/hash-utils.browser.d.ts +6 -0
  163. package/dist/utils/hash-utils.browser.js +22 -0
  164. package/dist/utils/hash-utils.browser.js.map +1 -0
  165. package/dist/utils/hash-utils.server.d.ts +6 -0
  166. package/dist/utils/hash-utils.server.js +19 -0
  167. package/dist/utils/hash-utils.server.js.map +1 -0
  168. package/dist/utils/helpers.d.ts +16 -0
  169. package/dist/utils/helpers.js +83 -0
  170. package/dist/utils/helpers.js.map +1 -0
  171. package/dist/utils/random-string-generator.util.d.ts +1 -0
  172. package/dist/utils/random-string-generator.util.js +7 -0
  173. package/dist/utils/random-string-generator.util.js.map +1 -0
  174. package/dist/utils/shared.utils.d.ts +13 -0
  175. package/dist/utils/shared.utils.js +66 -0
  176. package/dist/utils/shared.utils.js.map +1 -0
  177. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nsModule.js","sourceRoot":"","sources":["../../src/decorators/nsModule.ts"],"names":[],"mappings":";;AAQA,4BAsBC;AA9BD,4BAA0B;AAE1B,8CAIuB;AAEvB,SAAgB,QAAQ,CAAC,QAAwB;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAA,+BAAkB,EAAC,SAAS,CAAC,CAAC;IAE9B,OAAO,CAAC,MAAM,EAAE,EAAE;QACjB,OAAO,CAAC,cAAc,CAAC,6BAAgB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,CACrB,4BAAe,CAAC,OAAO,EACvB,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,MAAM,CACN,CAAC;QACF,OAAO,CAAC,cAAc,CACrB,4BAAe,CAAC,OAAO,EACvB,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,MAAM,CACN,CAAC;QACF,OAAO,CAAC,cAAc,CACrB,4BAAe,CAAC,SAAS,EACzB,QAAQ,CAAC,SAAS,IAAI,EAAE,EACxB,MAAM,CACN,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import "reflect-metadata";
2
+ export declare function Optional(): PropertyDecorator & ParameterDecorator;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Optional = Optional;
4
+ require("reflect-metadata");
5
+ const interfaces_1 = require("../interfaces");
6
+ function Optional() {
7
+ return (target, propertyKey, parameterIndex) => {
8
+ Reflect.defineMetadata(interfaces_1.OPTIONAL_WATERMARK, true, target);
9
+ if (parameterIndex === undefined) {
10
+ let properties = Reflect.getMetadata(interfaces_1.PROPERTY_OPTIONAL_DEPS_METADATA, target) || [];
11
+ properties = [...properties, { key: propertyKey }];
12
+ Reflect.defineMetadata(interfaces_1.PROPERTY_OPTIONAL_DEPS_METADATA, properties, target.constructor);
13
+ return;
14
+ }
15
+ let properties = Reflect.getMetadata(interfaces_1.SELF_DECLARED_OPTIONAL_DEPS_METADATA, target) || [];
16
+ properties = [...properties, { index: parameterIndex }];
17
+ Reflect.defineMetadata(interfaces_1.SELF_DECLARED_OPTIONAL_DEPS_METADATA, properties, target);
18
+ };
19
+ }
20
+ //# sourceMappingURL=optional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional.js","sourceRoot":"","sources":["../../src/decorators/optional.ts"],"names":[],"mappings":";;AAOA,4BA+BC;AAtCD,4BAA0B;AAC1B,8CAIuB;AAEvB,SAAgB,QAAQ;IACvB,OAAO,CACN,MAAc,EACd,WAA6B,EAC7B,cAAuB,EACtB,EAAE;QACH,OAAO,CAAC,cAAc,CAAC,+BAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,UAAU,GACb,OAAO,CAAC,WAAW,CAAC,4CAA+B,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YAEpE,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,cAAc,CACrB,4CAA+B,EAC/B,UAAU,EACV,MAAM,CAAC,WAAW,CAClB,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,UAAU,GACb,OAAO,CAAC,WAAW,CAAC,iDAAoC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzE,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,cAAc,CACrB,iDAAoC,EACpC,UAAU,EACV,MAAM,CACN,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class ContainerNotCompiledError extends Error {
2
+ constructor(message?: string);
3
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContainerNotCompiledError = void 0;
4
+ class ContainerNotCompiledError extends Error {
5
+ constructor(message = "container not compiled") {
6
+ super(message);
7
+ this.name = ContainerNotCompiledError.name;
8
+ Object.setPrototypeOf(this, ContainerNotCompiledError.prototype);
9
+ }
10
+ }
11
+ exports.ContainerNotCompiledError = ContainerNotCompiledError;
12
+ //# sourceMappingURL=container-not-compiled.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-not-compiled.error.js","sourceRoot":"","sources":["../../src/errors/container-not-compiled.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,yBAA0B,SAAQ,KAAK;IACnD,YAAY,OAAO,GAAG,wBAAwB;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC;CACD;AAND,8DAMC"}
@@ -0,0 +1,7 @@
1
+ export * from "./interfaces";
2
+ export { NsModule } from "./decorators/nsModule";
3
+ export { Inject } from "./decorators/inject";
4
+ export { Injectable } from "./decorators/injectable";
5
+ export { Global } from "./decorators/global";
6
+ export { Optional } from "./decorators/optional";
7
+ export * from "./utils/helpers";
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Optional = exports.Global = exports.Injectable = exports.Inject = exports.NsModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./interfaces"), exports);
6
+ var nsModule_1 = require("./decorators/nsModule");
7
+ Object.defineProperty(exports, "NsModule", { enumerable: true, get: function () { return nsModule_1.NsModule; } });
8
+ var inject_1 = require("./decorators/inject");
9
+ Object.defineProperty(exports, "Inject", { enumerable: true, get: function () { return inject_1.Inject; } });
10
+ var injectable_1 = require("./decorators/injectable");
11
+ Object.defineProperty(exports, "Injectable", { enumerable: true, get: function () { return injectable_1.Injectable; } });
12
+ var global_1 = require("./decorators/global");
13
+ Object.defineProperty(exports, "Global", { enumerable: true, get: function () { return global_1.Global; } });
14
+ var optional_1 = require("./decorators/optional");
15
+ Object.defineProperty(exports, "Optional", { enumerable: true, get: function () { return optional_1.Optional; } });
16
+ tslib_1.__exportStar(require("./utils/helpers"), exports);
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,uDAA6B;AAC7B,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AACjB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,sDAAqD;AAA5C,wGAAA,UAAU,OAAA;AACnB,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,kDAAiD;AAAxC,oGAAA,QAAQ,OAAA;AACjB,0DAAgC"}
@@ -0,0 +1,3 @@
1
+ export interface Abstract<T> extends Function {
2
+ prototype: T;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=abstract.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract.interface.js","sourceRoot":"","sources":["../../src/interfaces/abstract.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export declare const INJECTABLE_WATERMARK = "__injectable__";
2
+ export declare const INJECTABLE_OPTIONS = "__injectable:options__";
3
+ export declare const INJECT_WATERMARK = "__inject__";
4
+ export declare const OPTIONAL_WATERMARK = "__optional__";
5
+ export declare const MODULE_WATERMARK = "__module__";
6
+ export declare const MODULE_GLOBAL_WATERMARK = "__module:global__";
7
+ export declare const PROVIDER_TOKEN_WATERMARK = "__provider__token__";
8
+ export declare const MODULE_TOKEN_WATERMARK = "__module__token__";
9
+ export declare const SELF_DECLARED_DEPS_METADATA = "self:paramtypes";
10
+ export declare const PROPERTY_DEPS_METADATA = "self:properties_metadata";
11
+ export declare const SELF_DECLARED_OPTIONAL_DEPS_METADATA = "self:paramtypes:optional";
12
+ export declare const PROPERTY_OPTIONAL_DEPS_METADATA = "self:properties_metadata:optional";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PROPERTY_OPTIONAL_DEPS_METADATA = exports.SELF_DECLARED_OPTIONAL_DEPS_METADATA = exports.PROPERTY_DEPS_METADATA = exports.SELF_DECLARED_DEPS_METADATA = exports.MODULE_TOKEN_WATERMARK = exports.PROVIDER_TOKEN_WATERMARK = exports.MODULE_GLOBAL_WATERMARK = exports.MODULE_WATERMARK = exports.OPTIONAL_WATERMARK = exports.INJECT_WATERMARK = exports.INJECTABLE_OPTIONS = exports.INJECTABLE_WATERMARK = void 0;
4
+ exports.INJECTABLE_WATERMARK = "__injectable__";
5
+ exports.INJECTABLE_OPTIONS = "__injectable:options__";
6
+ exports.INJECT_WATERMARK = "__inject__";
7
+ exports.OPTIONAL_WATERMARK = "__optional__";
8
+ exports.MODULE_WATERMARK = "__module__";
9
+ exports.MODULE_GLOBAL_WATERMARK = "__module:global__";
10
+ exports.PROVIDER_TOKEN_WATERMARK = "__provider__token__";
11
+ exports.MODULE_TOKEN_WATERMARK = "__module__token__";
12
+ exports.SELF_DECLARED_DEPS_METADATA = "self:paramtypes";
13
+ exports.PROPERTY_DEPS_METADATA = "self:properties_metadata";
14
+ exports.SELF_DECLARED_OPTIONAL_DEPS_METADATA = "self:paramtypes:optional";
15
+ exports.PROPERTY_OPTIONAL_DEPS_METADATA = "self:properties_metadata:optional";
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/interfaces/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACxC,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,kBAAkB,GAAG,cAAc,CAAC;AACpC,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAE9C,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AACjD,QAAA,sBAAsB,GAAG,mBAAmB,CAAC;AAE7C,QAAA,2BAA2B,GAAG,iBAAiB,CAAC;AAChD,QAAA,sBAAsB,GAAG,0BAA0B,CAAC;AACpD,QAAA,oCAAoC,GAAG,0BAA0B,CAAC;AAClE,QAAA,+BAA+B,GAC3C,mCAAmC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { InjectionToken } from "./injection-token.interface";
2
+ import type { Module, Provider } from "./module-types.interface";
3
+ export interface DynamicModule {
4
+ module: Module & {
5
+ forRoot?: () => DynamicModule;
6
+ forRootAsync?: () => DynamicModule;
7
+ forFeature?: () => DynamicModule;
8
+ forFeatureAsync?: () => DynamicModule;
9
+ };
10
+ providers?: Provider[];
11
+ exports?: InjectionToken[];
12
+ imports?: (Module | DynamicModule)[];
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=dynamic-module.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-module.interface.js","sourceRoot":"","sources":["../../src/interfaces/dynamic-module.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ export * from "./modules";
2
+ export * from "./plugins";
3
+ export * from "./abstract.interface";
4
+ export * from "./constants";
5
+ export * from "./utils";
6
+ export * from "./dynamic-module.interface";
7
+ export * from "./injection-token.interface";
8
+ export * from "./module-metadata.interface";
9
+ export * from "./module-types.interface";
10
+ export * from "./on-module-init.interface";
11
+ export * from "./type.interface";
12
+ export * from "./validate-module-keys";
13
+ export * from "./nexus-application.interface";
14
+ export * from "./injectable.interface";
15
+ export * from "./scope.interface";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./modules"), exports);
5
+ tslib_1.__exportStar(require("./plugins"), exports);
6
+ tslib_1.__exportStar(require("./abstract.interface"), exports);
7
+ tslib_1.__exportStar(require("./constants"), exports);
8
+ tslib_1.__exportStar(require("./utils"), exports);
9
+ tslib_1.__exportStar(require("./dynamic-module.interface"), exports);
10
+ tslib_1.__exportStar(require("./injection-token.interface"), exports);
11
+ tslib_1.__exportStar(require("./module-metadata.interface"), exports);
12
+ tslib_1.__exportStar(require("./module-types.interface"), exports);
13
+ tslib_1.__exportStar(require("./on-module-init.interface"), exports);
14
+ tslib_1.__exportStar(require("./type.interface"), exports);
15
+ tslib_1.__exportStar(require("./validate-module-keys"), exports);
16
+ tslib_1.__exportStar(require("./nexus-application.interface"), exports);
17
+ tslib_1.__exportStar(require("./injectable.interface"), exports);
18
+ tslib_1.__exportStar(require("./scope.interface"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,oDAA0B;AAC1B,+DAAqC;AACrC,sDAA4B;AAC5B,kDAAwB;AACxB,qEAA2C;AAC3C,sEAA4C;AAC5C,sEAA4C;AAC5C,mEAAyC;AACzC,qEAA2C;AAC3C,2DAAiC;AACjC,iEAAuC;AACvC,wEAA8C;AAC9C,iEAAuC;AACvC,4DAAkC"}
@@ -0,0 +1,4 @@
1
+ import type { Scope } from "./scope.interface";
2
+ export interface InjectableOptions {
3
+ scope?: Scope;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=injectable.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectable.interface.js","sourceRoot":"","sources":["../../src/interfaces/injectable.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { Abstract } from "./abstract.interface";
2
+ import type { Type } from "./type.interface";
3
+ export type InjectionToken<T = any> = string | symbol | Type<T> | Abstract<T> | Function;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=injection-token.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injection-token.interface.js","sourceRoot":"","sources":["../../src/interfaces/injection-token.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { DynamicModule } from "./dynamic-module.interface";
2
+ import type { InjectionToken } from "./injection-token.interface";
3
+ import type { Module, Provider } from "./module-types.interface";
4
+ export interface ModuleMetadata {
5
+ imports?: (Module | DynamicModule)[];
6
+ exports?: (InjectionToken | Module)[];
7
+ providers?: Provider[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-metadata.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-metadata.interface.js","sourceRoot":"","sources":["../../src/interfaces/module-metadata.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import type { InjectionToken } from "./injection-token.interface";
2
+ import type { Scope } from "./scope.interface";
3
+ import type { Type } from "./type.interface";
4
+ export type Module = Type;
5
+ export type Provider<T = any> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T> | Type<T>;
6
+ export interface ClassProvider<T = any> {
7
+ provide: InjectionToken;
8
+ useClass: Type<T>;
9
+ scope?: Scope;
10
+ }
11
+ export interface ValueProvider<T = any> {
12
+ provide: InjectionToken;
13
+ useValue: T;
14
+ }
15
+ export interface FactoryProvider<T = any> {
16
+ provide: InjectionToken;
17
+ useFactory: (...args: any[]) => T | Promise<T>;
18
+ inject?: InjectionToken[];
19
+ scope?: Scope;
20
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-types.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-types.interface.js","sourceRoot":"","sources":["../../src/interfaces/module-types.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import type { DynamicModule } from "../dynamic-module.interface";
2
+ import type { InjectionToken } from "../injection-token.interface";
3
+ import type { Module } from "../module-types.interface";
4
+ import type { ModuleContainerInterface } from "./module-container.interface";
5
+ import type { GraphError, ModuleGraphInterface } from "./module-graph.interface";
6
+ export interface ContainerBaseInterface {
7
+ addModule(module: Module | DynamicModule): Promise<ModuleContainerInterface>;
8
+ replaceModule(moduleToReplace: Module, newModule: Module): Promise<ModuleContainerInterface>;
9
+ getModule(module: Module): Promise<ModuleContainerInterface | undefined>;
10
+ get<T>(token: InjectionToken): Promise<T | undefined>;
11
+ errors: GraphError[];
12
+ }
13
+ export interface ContainerInterface extends ContainerBaseInterface {
14
+ run(rootModule: Module): Promise<void>;
15
+ graph: ModuleGraphInterface;
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=container.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/container.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export * from "./container.interface";
2
+ export * from "./module-container.interface";
3
+ export * from "./module-container-factory.interface";
4
+ export * from "./module-graph.interface";
5
+ export * from "./module-token-factory.interface";
6
+ export * from "./provider-token-factory.interface";
7
+ export * from "./modules-container.interface";
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./container.interface"), exports);
5
+ tslib_1.__exportStar(require("./module-container.interface"), exports);
6
+ tslib_1.__exportStar(require("./module-container-factory.interface"), exports);
7
+ tslib_1.__exportStar(require("./module-graph.interface"), exports);
8
+ tslib_1.__exportStar(require("./module-token-factory.interface"), exports);
9
+ tslib_1.__exportStar(require("./provider-token-factory.interface"), exports);
10
+ tslib_1.__exportStar(require("./modules-container.interface"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/modules/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,uEAA6C;AAC7C,+EAAqD;AACrD,mEAAyC;AACzC,2EAAiD;AACjD,6EAAmD;AACnD,wEAA8C"}
@@ -0,0 +1,7 @@
1
+ import type { DynamicModule } from "../dynamic-module.interface";
2
+ import type { Module } from "../module-types.interface";
3
+ import type { ContainerBaseInterface } from "./container.interface";
4
+ import type { ModuleContainerInterface } from "./module-container.interface";
5
+ export interface ModuleContainerFactoryInterface {
6
+ create(module: Module | DynamicModule, container: ContainerBaseInterface): Promise<ModuleContainerInterface>;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-container-factory.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-container-factory.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/module-container-factory.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { DynamicModule } from "../dynamic-module.interface";
2
+ import type { InjectionToken } from "../injection-token.interface";
3
+ import type { Module, Provider } from "../module-types.interface";
4
+ import type { GraphError } from "./module-graph.interface";
5
+ export interface ModuleContainerInterface {
6
+ token: string;
7
+ metatype: Module | DynamicModule;
8
+ imports: Promise<ModuleContainerInterface[]>;
9
+ providers: Provider[];
10
+ exports: (InjectionToken | Module)[];
11
+ get<T>(token: InjectionToken): Promise<T | undefined>;
12
+ errors: GraphError[];
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-container.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-container.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/module-container.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import type { AnalyzeModule } from "../../core/graph/analyze-module";
2
+ import type { AnalyzeProvider } from "../../core/graph/analyze-provider";
3
+ import type { InjectionToken } from "../injection-token.interface";
4
+ export declare enum NodeTypeEnum {
5
+ MODULE = "module",
6
+ PROVIDER = "provider"
7
+ }
8
+ export declare enum EdgeTypeEnum {
9
+ IMPORT = "import",
10
+ EXPORT = "export",
11
+ PROVIDER = "provider",
12
+ DEPENDENCY = "dependency"
13
+ }
14
+ export type Node = AnalyzeModule | AnalyzeProvider;
15
+ export type Edge = {
16
+ type: EdgeTypeEnum;
17
+ source: InjectionToken;
18
+ target: InjectionToken;
19
+ metadata: {
20
+ index?: number;
21
+ key?: string;
22
+ inject?: "constructor" | "property";
23
+ lazy?: boolean;
24
+ isCircular?: boolean;
25
+ unreached?: boolean;
26
+ };
27
+ };
28
+ export type GraphError = {
29
+ type: "CD_IMPORTS";
30
+ path: string[];
31
+ } | {
32
+ type: "CD_PROVIDERS";
33
+ path: [InjectionToken, InjectionToken][];
34
+ } | {
35
+ type: "UNREACHED_DEP_CONSTRUCTOR";
36
+ token: string;
37
+ dependency: string;
38
+ position: number;
39
+ } | {
40
+ type: "UNREACHED_DEP_PROPERTY";
41
+ token: string;
42
+ dependency: string;
43
+ key: string;
44
+ } | {
45
+ type: "UNREACHED_DEP_FACTORY";
46
+ token: string;
47
+ dependency: string;
48
+ key: number;
49
+ };
50
+ export interface ModuleGraphInterface {
51
+ compile(): Promise<void>;
52
+ getNode(token: InjectionToken): Node;
53
+ getEdge(token: InjectionToken): Edge[];
54
+ getAllNodes(): Node[];
55
+ getAllEdges(): Edge[][];
56
+ nodes: Map<InjectionToken, Node>;
57
+ edges: Map<InjectionToken, Edge[]>;
58
+ errors: GraphError[];
59
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EdgeTypeEnum = exports.NodeTypeEnum = void 0;
4
+ var NodeTypeEnum;
5
+ (function (NodeTypeEnum) {
6
+ NodeTypeEnum["MODULE"] = "module";
7
+ NodeTypeEnum["PROVIDER"] = "provider";
8
+ })(NodeTypeEnum || (exports.NodeTypeEnum = NodeTypeEnum = {}));
9
+ var EdgeTypeEnum;
10
+ (function (EdgeTypeEnum) {
11
+ EdgeTypeEnum["IMPORT"] = "import";
12
+ EdgeTypeEnum["EXPORT"] = "export";
13
+ EdgeTypeEnum["PROVIDER"] = "provider";
14
+ EdgeTypeEnum["DEPENDENCY"] = "dependency";
15
+ })(EdgeTypeEnum || (exports.EdgeTypeEnum = EdgeTypeEnum = {}));
16
+ //# sourceMappingURL=module-graph.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-graph.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/module-graph.interface.ts"],"names":[],"mappings":";;;AASA,IAAY,YAGX;AAHD,WAAY,YAAY;IACvB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;AACtB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACvB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,yCAAyB,CAAA;AAC1B,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB"}
@@ -0,0 +1,5 @@
1
+ import type { DynamicModule } from "../dynamic-module.interface";
2
+ import type { Module } from "../module-types.interface";
3
+ export interface ModuleTokenFactoryInterface {
4
+ create(metatype: Module | DynamicModule): Promise<string>;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-token-factory.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-token-factory.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/module-token-factory.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { DynamicModule } from "../dynamic-module.interface";
2
+ import type { Module } from "../module-types.interface";
3
+ import type { ModuleContainerInterface } from "./module-container.interface";
4
+ export interface ModulesContainerInterface {
5
+ addModule(module: Module | DynamicModule): Promise<ModuleContainerInterface>;
6
+ replaceModule(moduleToReplace: Module, newModule: Module): Promise<ModuleContainerInterface>;
7
+ getModule(module: Module): ModuleContainerInterface | undefined;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=modules-container.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules-container.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/modules-container.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { Provider } from "../module-types.interface";
2
+ export interface ProviderTokenFactoryInterface {
3
+ create(metatype: Provider): Promise<string>;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=provider-token-factory.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-token-factory.interface.js","sourceRoot":"","sources":["../../../src/interfaces/modules/provider-token-factory.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { InjectionToken } from "./injection-token.interface";
2
+ import type { GraphError } from "./modules";
3
+ import type { ModulePluginInterface } from "./plugins";
4
+ export interface NexusApplicationInterface extends ModulePluginInterface {
5
+ bootstrap(): Promise<this>;
6
+ get<T>(token: InjectionToken): Promise<T | undefined>;
7
+ errors: GraphError[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=nexus-application.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nexus-application.interface.js","sourceRoot":"","sources":["../../src/interfaces/nexus-application.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export interface OnModuleInit {
2
+ onModuleInit(): void;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=on-module-init.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-module-init.interface.js","sourceRoot":"","sources":["../../src/interfaces/on-module-init.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./scanner-plugin.interface";
2
+ export * from "./module-plugin.interface";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./scanner-plugin.interface"), exports);
5
+ tslib_1.__exportStar(require("./module-plugin.interface"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/plugins/index.ts"],"names":[],"mappings":";;;AAAA,qEAA2C;AAC3C,oEAA0C"}
@@ -0,0 +1,4 @@
1
+ import type { ScannerPluginInterface } from "./scanner-plugin.interface";
2
+ export interface ModulePluginInterface {
3
+ addScannerPlugin(scanner: ScannerPluginInterface | ScannerPluginInterface[]): this;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=module-plugin.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-plugin.interface.js","sourceRoot":"","sources":["../../../src/interfaces/plugins/module-plugin.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { ModuleGraphInterface } from "../modules";
2
+ export interface ScannerGraphInterface extends Omit<ModuleGraphInterface, "compile" | "nodes" | "edges"> {
3
+ }
4
+ export interface ScannerPluginInterface {
5
+ scan(graph: ScannerGraphInterface): Promise<void>;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=scanner-plugin.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-plugin.interface.js","sourceRoot":"","sources":["../../../src/interfaces/plugins/scanner-plugin.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare enum Scope {
2
+ Singleton = 0,
3
+ Request = 1
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Scope = void 0;
4
+ var Scope;
5
+ (function (Scope) {
6
+ Scope[Scope["Singleton"] = 0] = "Singleton";
7
+ Scope[Scope["Request"] = 1] = "Request";
8
+ })(Scope || (exports.Scope = Scope = {}));
9
+ //# sourceMappingURL=scope.interface.js.map