@tahminator/sapling 1.5.18 → 1.5.20

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.
@@ -3,4 +3,4 @@
3
3
  * for test exclusion usages.
4
4
  */
5
5
  const baseDir = "src";
6
- export const exclusions = [`${baseDir}/**/*.test.ts`];
6
+ export const exclusions = [`${baseDir}/**/*.test.ts`, `${baseDir}/__test__/**`];
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Used to test circular imports
3
+ */
4
+ export declare class PrimaryMagicNumberService {
5
+ getN(): number;
6
+ }
@@ -0,0 +1,20 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Injectable } from "../annotation";
8
+ import { SecondaryMagicNumberService } from "./second";
9
+ /**
10
+ * Used to test circular imports
11
+ */
12
+ let PrimaryMagicNumberService = class PrimaryMagicNumberService {
13
+ getN() {
14
+ return 5;
15
+ }
16
+ };
17
+ PrimaryMagicNumberService = __decorate([
18
+ Injectable([SecondaryMagicNumberService])
19
+ ], PrimaryMagicNumberService);
20
+ export { PrimaryMagicNumberService };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Used to test circular imports
3
+ */
4
+ export declare class SecondaryMagicNumberService {
5
+ getN(): number;
6
+ }
@@ -0,0 +1,20 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Injectable } from "../annotation";
8
+ import { PrimaryMagicNumberService } from "./first";
9
+ /**
10
+ * Used to test circular imports
11
+ */
12
+ let SecondaryMagicNumberService = class SecondaryMagicNumberService {
13
+ getN() {
14
+ return 4;
15
+ }
16
+ };
17
+ SecondaryMagicNumberService = __decorate([
18
+ Injectable([PrimaryMagicNumberService])
19
+ ], SecondaryMagicNumberService);
20
+ export { SecondaryMagicNumberService };
@@ -32,6 +32,9 @@ export function _resolve(ctor) {
32
32
  _InjectableDeps.forEach((deps, node) => {
33
33
  inDegree.set(node, inDegree.get(node) || 0);
34
34
  deps.forEach((dep) => {
35
+ if (dep === undefined) {
36
+ throw new Error(`There is an @Injectable (${node.name}) which has a dependency that cannot be found. This is likely caused by a circular dependency.`);
37
+ }
35
38
  inDegree.set(dep, inDegree.get(dep) || 0);
36
39
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
37
40
  inDegree.set(node, inDegree.get(node) + 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tahminator/sapling",
3
- "version": "1.5.18",
3
+ "version": "1.5.20",
4
4
  "author": "Tahmid Ahmed",
5
5
  "description": "A library to help you write cleaner Express.js code",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- export declare const getControllers: () => any;
@@ -1,6 +0,0 @@
1
- // WIP
2
- // @ts-expect-error glob import
3
- import * as controllers from "**/*.controller.ts";
4
- export const getControllers = () => {
5
- return controllers;
6
- };