@echecs/pgn 3.8.2 → 3.8.3
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/CHANGELOG.md +10 -0
- package/dist/index.d.ts +14 -4
- package/dist/index.js +25 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,16 @@ and this project adheres to
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [3.8.3] - 2026-03-15
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- `stream()` now accepts a Web Streams `ReadableStream<string>` in addition to
|
|
16
|
+
`AsyncIterable<string>`. This covers
|
|
17
|
+
`fetch().body.pipeThrough(new TextDecoderStream())` in browser and edge
|
|
18
|
+
runtimes. The type signature is widened accordingly — no behaviour change for
|
|
19
|
+
existing `AsyncIterable` callers.
|
|
20
|
+
|
|
11
21
|
## [3.8.2] - 2026-03-15
|
|
12
22
|
|
|
13
23
|
### Fixed
|
package/dist/index.d.ts
CHANGED
|
@@ -51,14 +51,24 @@ export interface ParseWarning {
|
|
|
51
51
|
* @param input
|
|
52
52
|
*/
|
|
53
53
|
export default function parse(input: string, options?: ParseOptions): PGN[];
|
|
54
|
+
interface StringReadableStream {
|
|
55
|
+
getReader(): {
|
|
56
|
+
read(): Promise<{
|
|
57
|
+
done: boolean;
|
|
58
|
+
value: string | undefined;
|
|
59
|
+
}>;
|
|
60
|
+
releaseLock(): void;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
54
63
|
/**
|
|
55
|
-
* Stream-parse a PGN AsyncIterable
|
|
56
|
-
* Memory usage stays proportional to one game at a time.
|
|
64
|
+
* Stream-parse a PGN AsyncIterable or Web Streams ReadableStream, yielding
|
|
65
|
+
* one PGN object per game. Memory usage stays proportional to one game at a time.
|
|
57
66
|
*
|
|
58
|
-
* @param input - Any AsyncIterable<string>
|
|
67
|
+
* @param input - Any AsyncIterable<string> or ReadableStream<string>
|
|
68
|
+
* (Node.js readable stream, fetch body piped through TextDecoderStream, etc.)
|
|
59
69
|
* @param options - Optional. Pass `onError` to observe parse failures instead of
|
|
60
70
|
* silently skipping malformed games. Not called for truncated streams (input
|
|
61
71
|
* ending without a result token).
|
|
62
72
|
*/
|
|
63
|
-
export declare function stream(input: AsyncIterable<string
|
|
73
|
+
export declare function stream(input: AsyncIterable<string> | StringReadableStream, options?: ParseOptions): AsyncGenerator<PGN>;
|
|
64
74
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -85,16 +85,38 @@ export default function parse(input, options) {
|
|
|
85
85
|
return [];
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
async function* readableStreamToIterable(rs) {
|
|
89
|
+
const reader = rs.getReader();
|
|
90
|
+
try {
|
|
91
|
+
while (true) {
|
|
92
|
+
const { done, value } = await reader.read();
|
|
93
|
+
if (done) {
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
if (value !== undefined) {
|
|
97
|
+
yield value;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
reader.releaseLock();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
88
105
|
/**
|
|
89
|
-
* Stream-parse a PGN AsyncIterable
|
|
90
|
-
* Memory usage stays proportional to one game at a time.
|
|
106
|
+
* Stream-parse a PGN AsyncIterable or Web Streams ReadableStream, yielding
|
|
107
|
+
* one PGN object per game. Memory usage stays proportional to one game at a time.
|
|
91
108
|
*
|
|
92
|
-
* @param input - Any AsyncIterable<string>
|
|
109
|
+
* @param input - Any AsyncIterable<string> or ReadableStream<string>
|
|
110
|
+
* (Node.js readable stream, fetch body piped through TextDecoderStream, etc.)
|
|
93
111
|
* @param options - Optional. Pass `onError` to observe parse failures instead of
|
|
94
112
|
* silently skipping malformed games. Not called for truncated streams (input
|
|
95
113
|
* ending without a result token).
|
|
96
114
|
*/
|
|
97
115
|
export async function* stream(input, options) {
|
|
116
|
+
if ('getReader' in input) {
|
|
117
|
+
yield* stream(readableStreamToIterable(input), options);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
98
120
|
let buffer = '';
|
|
99
121
|
let depth = 0; // brace depth — tracks {…} comment nesting
|
|
100
122
|
let inString = false; // whether we're inside a "…" tag value string
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|