tsdkarc 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # <a href="https://arc.tsdk.dev" align="center"><img src="./assets/logo.jpg" align="center" width="30px" height="30px" style="border-radius: 4px;margin-right:4px;" alt="TsdkArc: the Elegant, fully type-safe module composition library" /></a> TsdkArc
1
+ # <a href="https://arc.tsdk.dev" align="center"><img src="./assets/logo.jpg" align="center" width="30px" height="30px" style="border-radius: 4px;margin-right:4px;" alt="TsdkArc: the Elegant, fully type-safe composable module library" /></a> TsdkArc
2
2
 
3
3
  <a href="https://arc.tsdk.dev">
4
- <img src="./assets/banner.jpg" width="100%" style="border-radius: 24px" alt="TsdkArc: the Elegant, fully type-safe module composition library" /></a>
4
+ <img src="./assets/banner.jpg" width="100%" style="border-radius: 24px" alt="TsdkArc: the Elegant, fully type-safe composable module library" /></a>
5
5
 
6
- <div align="center">The Elegant, Fully Type-safe Module Composition Library.
6
+ <div align="center">The Elegant, Fully Type-safe Composable Module Library.
7
7
  </div>
8
8
 
9
9
  ---
package/esm/index.d.ts CHANGED
@@ -75,6 +75,9 @@ export interface LifecycleHooks<S extends object = Record<never, never>> {
75
75
  afterEachShutdown?(ctx: ContextWriter<S>,
76
76
  /** The module that just finished shutting down. */
77
77
  module: Module<any>): Promise<void> | void;
78
+ onError?(error: Error, ctx: ContextWriter<S>,
79
+ /** The module that just finished shutting down. */
80
+ module: Module<any>): Promise<void> | void;
78
81
  }
79
82
  /**
80
83
  * Module<S, Sl>
package/esm/index.js CHANGED
@@ -74,7 +74,7 @@ export function defineModule() {
74
74
  export default function start(roots_1) {
75
75
  return __awaiter(this, arguments, void 0, function* (roots, options = {}) {
76
76
  var _a, _b, _c;
77
- const { beforeBoot, afterBoot, beforeShutdown, afterShutdown, beforeEachBoot, afterEachBoot, beforeEachShutdown, afterEachShutdown, } = options;
77
+ const { beforeBoot, afterBoot, beforeShutdown, afterShutdown, beforeEachBoot, afterEachBoot, beforeEachShutdown, afterEachShutdown, onError, } = options;
78
78
  const ctx = {};
79
79
  const writer = makeWriter(ctx);
80
80
  const modWriter = writer;
@@ -97,7 +97,13 @@ export default function start(roots_1) {
97
97
  yield ((_c = mod.afterShutdown) === null || _c === void 0 ? void 0 : _c.call(mod, modWriter));
98
98
  }
99
99
  catch (err) {
100
- throw new Error(`Module "${mod.name}" stop failed: ${errorMessage(err)}`);
100
+ const error = new Error(`Module "${mod.name}" stop failed: ${errorMessage(err)}`);
101
+ if (onError) {
102
+ yield (onError === null || onError === void 0 ? void 0 : onError(error, writer, mod));
103
+ }
104
+ else {
105
+ throw error;
106
+ }
101
107
  }
102
108
  }
103
109
  yield (afterShutdown === null || afterShutdown === void 0 ? void 0 : afterShutdown(writer));
@@ -116,7 +122,13 @@ export default function start(roots_1) {
116
122
  catch (err) {
117
123
  stopped = true;
118
124
  yield rollback(booted, modWriter);
119
- throw new Error(`Module "${mod.name}" boot failed: ${errorMessage(err)}`);
125
+ const error = new Error(`Module "${mod.name}" boot failed: ${errorMessage(err)}`);
126
+ if (onError) {
127
+ yield (onError === null || onError === void 0 ? void 0 : onError(error, writer, mod));
128
+ }
129
+ else {
130
+ throw error;
131
+ }
120
132
  }
121
133
  }
122
134
  yield (afterBoot === null || afterBoot === void 0 ? void 0 : afterBoot(writer));
@@ -1 +1 @@
1
- {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/index.ts","../node_modules/@types/deep-eql/index.d.ts","../node_modules/assertion-error/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/estree/index.d.ts"],"fileIdsList":[[16,17]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"66d99e5eea1d583803f80816a7e5b264c4bac636deb853502918e2044ef1a5f7","signature":"5d3723bdf23914654d36eda00c37a16b499e89400a515fbecdb9b3741429f4e0"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[15],"options":{"declaration":true,"downlevelIteration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":5,"noImplicitAny":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictPropertyInitialization":false,"target":2},"referencedMap":[[18,1]],"version":"5.9.3"}
1
+ {"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/index.ts","../node_modules/@types/deep-eql/index.d.ts","../node_modules/assertion-error/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/estree/index.d.ts"],"fileIdsList":[[16,17]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"8c889829892f006580f4127d8aca6046c7902c4d55e8caefb7e885da10847f39","signature":"02a34f653ee8320a827383436b9bdfbc07b00f901b0894fbfda47a3fc85286f2"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[15],"options":{"declaration":true,"downlevelIteration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":5,"noImplicitAny":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictPropertyInitialization":false,"target":2},"referencedMap":[[18,1]],"version":"5.9.3"}
package/lib/index.d.ts CHANGED
@@ -75,6 +75,9 @@ export interface LifecycleHooks<S extends object = Record<never, never>> {
75
75
  afterEachShutdown?(ctx: ContextWriter<S>,
76
76
  /** The module that just finished shutting down. */
77
77
  module: Module<any>): Promise<void> | void;
78
+ onError?(error: Error, ctx: ContextWriter<S>,
79
+ /** The module that just finished shutting down. */
80
+ module: Module<any>): Promise<void> | void;
78
81
  }
79
82
  /**
80
83
  * Module<S, Sl>
package/lib/index.js CHANGED
@@ -81,7 +81,7 @@ function defineModule() {
81
81
  function start(roots_1) {
82
82
  return __awaiter(this, arguments, void 0, function* (roots, options = {}) {
83
83
  var _a, _b, _c;
84
- const { beforeBoot, afterBoot, beforeShutdown, afterShutdown, beforeEachBoot, afterEachBoot, beforeEachShutdown, afterEachShutdown, } = options;
84
+ const { beforeBoot, afterBoot, beforeShutdown, afterShutdown, beforeEachBoot, afterEachBoot, beforeEachShutdown, afterEachShutdown, onError, } = options;
85
85
  const ctx = {};
86
86
  const writer = makeWriter(ctx);
87
87
  const modWriter = writer;
@@ -104,7 +104,13 @@ function start(roots_1) {
104
104
  yield ((_c = mod.afterShutdown) === null || _c === void 0 ? void 0 : _c.call(mod, modWriter));
105
105
  }
106
106
  catch (err) {
107
- throw new Error(`Module "${mod.name}" stop failed: ${errorMessage(err)}`);
107
+ const error = new Error(`Module "${mod.name}" stop failed: ${errorMessage(err)}`);
108
+ if (onError) {
109
+ yield (onError === null || onError === void 0 ? void 0 : onError(error, writer, mod));
110
+ }
111
+ else {
112
+ throw error;
113
+ }
108
114
  }
109
115
  }
110
116
  yield (afterShutdown === null || afterShutdown === void 0 ? void 0 : afterShutdown(writer));
@@ -123,7 +129,13 @@ function start(roots_1) {
123
129
  catch (err) {
124
130
  stopped = true;
125
131
  yield rollback(booted, modWriter);
126
- throw new Error(`Module "${mod.name}" boot failed: ${errorMessage(err)}`);
132
+ const error = new Error(`Module "${mod.name}" boot failed: ${errorMessage(err)}`);
133
+ if (onError) {
134
+ yield (onError === null || onError === void 0 ? void 0 : onError(error, writer, mod));
135
+ }
136
+ else {
137
+ throw error;
138
+ }
127
139
  }
128
140
  }
129
141
  yield (afterBoot === null || afterBoot === void 0 ? void 0 : afterBoot(writer));
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "tsdkarc",
3
- "version": "1.0.0",
4
- "description": "Elegant and Fully type-safe module composition library",
3
+ "version": "1.0.1",
4
+ "description": "Elegant and Fully type-safe composable module library",
5
5
  "repository": "tsdk-monorepo/tsdkarc",
6
6
  "bugs": "https://github.com/tsdk-monorepo/tsdkarc/issues",
7
- "homepage": "https://www.npmjs.com/package/tsdkarc",
7
+ "homepage": "https://arc.tsdk.dev",
8
8
  "main": "lib/index.js",
9
9
  "module": "esm/index.js",
10
10
  "types": "./lib/index.d.ts",
@@ -17,8 +17,8 @@
17
17
  "keywords": [
18
18
  "typesafe",
19
19
  "tsdk",
20
- "dependency injection",
21
- "di"
20
+ "composable module",
21
+ "dependency injection"
22
22
  ],
23
23
  "license": "MIT"
24
24
  }