@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.
@@ -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
- done ? controller.close() : controller.enqueue(value);
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
- this.abortSubscribers.forEach((subscriber) => subscriber());
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,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,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,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
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;AAqC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,GAAG,OAAO,CAAC;IAE5F,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,CAAC,CAAC;IAEzD,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"}
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": "1.4.0",
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.8.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.8.0",
54
+ "@asenajs/asena": "^0.9.0",
51
55
  "typescript": "^5.9.3"
52
56
  },
53
57
  "dependencies": {