@asenajs/ergenecore 1.4.0 → 2.0.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.
- package/README.md +9 -3
- package/dist/lib/Ergenecore.d.ts +65 -63
- package/dist/lib/Ergenecore.js +320 -343
- package/dist/lib/Ergenecore.js.map +1 -1
- package/dist/lib/ErgenecoreContextWrapper.js +4 -1
- package/dist/lib/ErgenecoreContextWrapper.js.map +1 -1
- package/dist/lib/ErgenecoreWebsocketAdapter.js +4 -2
- package/dist/lib/ErgenecoreWebsocketAdapter.js.map +1 -1
- package/dist/lib/defaults/ConfigService.d.ts +19 -14
- package/dist/lib/defaults/ConfigService.js +5 -2
- package/dist/lib/defaults/ConfigService.js.map +1 -1
- package/dist/lib/defaults/MiddlewareService.d.ts +6 -2
- package/dist/lib/defaults/MiddlewareService.js.map +1 -1
- package/dist/lib/defaults/ValidationService.js.map +1 -1
- package/dist/lib/errors.d.ts +50 -1
- package/dist/lib/errors.js +68 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/stream/SSEStreamWriter.js +6 -1
- package/dist/lib/stream/SSEStreamWriter.js.map +1 -1
- package/dist/lib/stream/StreamWriter.js +9 -2
- package/dist/lib/stream/StreamWriter.js.map +1 -1
- package/dist/lib/utils/factory.d.ts +10 -0
- package/dist/lib/utils/factory.js +2 -2
- package/dist/lib/utils/factory.js.map +1 -1
- package/package.json +7 -3
|
@@ -21,7 +21,12 @@ export class StreamWriter {
|
|
|
21
21
|
this.responseReadable = new ReadableStream({
|
|
22
22
|
async pull(controller) {
|
|
23
23
|
const { done, value } = await reader.read();
|
|
24
|
-
|
|
24
|
+
if (done) {
|
|
25
|
+
controller.close();
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
controller.enqueue(value);
|
|
29
|
+
}
|
|
25
30
|
},
|
|
26
31
|
cancel: () => {
|
|
27
32
|
this.abort();
|
|
@@ -65,7 +70,9 @@ export class StreamWriter {
|
|
|
65
70
|
abort() {
|
|
66
71
|
if (!this.aborted) {
|
|
67
72
|
this.aborted = true;
|
|
68
|
-
|
|
73
|
+
// A subscriber may be async - `reader.cancel()` above is. `abort()` is called from a
|
|
74
|
+
// sync teardown path and cannot wait for them, so the promise is dropped deliberately.
|
|
75
|
+
this.abortSubscribers.forEach((subscriber) => void subscriber());
|
|
69
76
|
}
|
|
70
77
|
}
|
|
71
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamWriter.js","sourceRoot":"","sources":["../../../lib/stream/StreamWriter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAA8B;IAEpC,OAAO,CAAc;IAErB,QAAQ,CAAiB;IAEzB,gBAAgB,GAAmC,EAAE,CAAC;IAE9C,gBAAgB,CAAiB;IAE1C,OAAO,GAAG,KAAK,CAAC;IAEhB,MAAM,GAAG,KAAK,CAAC;IAEtB,YAAmB,QAAwB,EAAE,QAAwB;QACnE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,cAAc,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,
|
|
1
|
+
{"version":3,"file":"StreamWriter.js","sourceRoot":"","sources":["../../../lib/stream/StreamWriter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAA8B;IAEpC,OAAO,CAAc;IAErB,QAAQ,CAAiB;IAEzB,gBAAgB,GAAmC,EAAE,CAAC;IAE9C,gBAAgB,CAAiB;IAE1C,OAAO,GAAG,KAAK,CAAC;IAEhB,MAAM,GAAG,KAAK,CAAC;IAEtB,YAAmB,QAAwB,EAAE,QAAwB;QACnE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,cAAc,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,IAAI,EAAE,CAAC;oBACT,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,KAA0B;QAC3C,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa;QAChC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAoB;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IAEM,OAAO,CAAC,QAAoC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,qFAAqF;YACrF,uFAAuF;YACvF,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -48,6 +48,16 @@ export interface ErgenecoreOptions {
|
|
|
48
48
|
* Only used if enableWebSocket is true
|
|
49
49
|
*/
|
|
50
50
|
websocketAdapter?: ErgenecoreWebsocketAdapter;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the adapter logs an error before handing it to the application's `onError`.
|
|
53
|
+
*
|
|
54
|
+
* 5xx logs at `error` with a stack, 4xx at `debug` (falling back to `info`) without one.
|
|
55
|
+
* Set `false` when your own handler already logs with a correlation id - otherwise every
|
|
56
|
+
* failure produces two uncorrelatable lines.
|
|
57
|
+
*
|
|
58
|
+
* @default true
|
|
59
|
+
*/
|
|
60
|
+
logErrors?: boolean;
|
|
51
61
|
}
|
|
52
62
|
/**
|
|
53
63
|
* Creates a new Ergenecore adapter instance with optional configuration
|
|
@@ -48,13 +48,13 @@ import { Ergenecore } from '../Ergenecore';
|
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
50
|
export function createErgenecoreAdapter(options = {}) {
|
|
51
|
-
const { port = 3000, hostname, logger, enableWebSocket = true, websocketAdapter } = options;
|
|
51
|
+
const { port = 3000, hostname, logger, enableWebSocket = true, websocketAdapter, logErrors = true } = options;
|
|
52
52
|
// Create default logger if not provided
|
|
53
53
|
const adapterLogger = logger || createDefaultLogger();
|
|
54
54
|
// Create WebSocket adapter if enabled
|
|
55
55
|
const wsAdapter = enableWebSocket ? websocketAdapter || new ErgenecoreWebsocketAdapter(adapterLogger) : undefined;
|
|
56
56
|
// Create Ergenecore instance
|
|
57
|
-
const adapter = new Ergenecore(adapterLogger, wsAdapter);
|
|
57
|
+
const adapter = new Ergenecore(adapterLogger, wsAdapter, logErrors);
|
|
58
58
|
// Configure port and hostname
|
|
59
59
|
adapter.setPort(port);
|
|
60
60
|
if (hostname) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../lib/utils/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../lib/utils/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAgD3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA6B,EAAE;IACrE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,EAAE,gBAAgB,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE9G,wCAAwC;IACxC,MAAM,aAAa,GAAG,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEtD,sCAAsC;IACtC,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,IAAI,IAAI,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElH,6BAA6B;IAC7B,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEpE,8BAA8B;IAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB;IAC1B,OAAO;QACL,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACzC,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,EAAE,CAAC,OAAe,EAAE,GAAG,IAAW,EAAE,EAAE;YACxC,OAAO,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,OAAe,EAAE,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA6B,EAAE;IACrE,OAAO,uBAAuB,CAAC;QAC7B,GAAG,OAAO;QACV,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;KACjD,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAA6B,EAAE;IACtE,OAAO,uBAAuB,CAAC;QAC7B,IAAI,EAAE,IAAI;QACV,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,mBAAmB,EAAE;QAC/C,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,14 +9,18 @@
|
|
|
9
9
|
"README.md",
|
|
10
10
|
"LICENSE"
|
|
11
11
|
],
|
|
12
|
-
"version": "
|
|
12
|
+
"version": "2.0.0",
|
|
13
13
|
"author": "LibirSoft",
|
|
14
14
|
"license": "MIT",
|
|
15
|
+
"engines": {
|
|
16
|
+
"bun": ">=1.3.12"
|
|
17
|
+
},
|
|
15
18
|
"scripts": {
|
|
16
19
|
"test": "bun test",
|
|
17
20
|
"test:watch": "bun test --watch",
|
|
18
21
|
"test:coverage": "bun test --coverage",
|
|
19
22
|
"build": "bun run clean && tsc",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.typecheck.json",
|
|
20
24
|
"clean": "rm -rf dist",
|
|
21
25
|
"prepublishOnly": "bun run build",
|
|
22
26
|
"benchmark": "bun run benchmark/run-benchmark.ts",
|
|
@@ -30,7 +34,7 @@
|
|
|
30
34
|
"check:fix": "bun run lint:fix && bun run format"
|
|
31
35
|
},
|
|
32
36
|
"devDependencies": {
|
|
33
|
-
"@asenajs/asena": "^0.
|
|
37
|
+
"@asenajs/asena": "^0.9.0",
|
|
34
38
|
"@changesets/cli": "^2.30.0",
|
|
35
39
|
"@types/bun": "latest",
|
|
36
40
|
"@typescript-eslint/eslint-plugin": "^8.58.1",
|
|
@@ -47,7 +51,7 @@
|
|
|
47
51
|
"typescript-eslint": "^8.58.1"
|
|
48
52
|
},
|
|
49
53
|
"peerDependencies": {
|
|
50
|
-
"@asenajs/asena": "^0.
|
|
54
|
+
"@asenajs/asena": "^0.9.0",
|
|
51
55
|
"typescript": "^5.9.3"
|
|
52
56
|
},
|
|
53
57
|
"dependencies": {
|