edfcore 0.6.150 → 0.6.151
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/header/lookup.d.ts.map +1 -1
- package/dist/header/lookup.js +26 -0
- package/dist/header/lookup.js.map +1 -1
- package/docs/CHANGELOG.md +10 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
- package/src/header/lookup.ts +28 -0
package/dist/constants.d.ts
CHANGED
|
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
|
|
|
109
109
|
readonly reserved: 224;
|
|
110
110
|
};
|
|
111
111
|
/** Published package version. Kept in sync with package.json by a test. */
|
|
112
|
-
export declare const VERSION = "0.6.
|
|
112
|
+
export declare const VERSION = "0.6.151";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAaxD;
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAaxD;AAoED,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAMlF;AA6CD;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoDjF;AAED;;;;;;;;;;;;;;GAcG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAM5F;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAQpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAC3C,SAAS,SAAS,EAAE,CAgBtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAgBjE"}
|
package/dist/header/lookup.js
CHANGED
|
@@ -54,6 +54,28 @@ function assertSelector(selector, call, accepts) {
|
|
|
54
54
|
throw new RangeError(`${call}(): the selector is ${selector === null ? 'null' : 'missing'}. ` +
|
|
55
55
|
`Next: pass ${accepts}.`);
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* The selector's KIND, which `assertSelector` above never checked.
|
|
59
|
+
*
|
|
60
|
+
* It checks that a selector ARRIVED — the 0.6.86 fix — and then hands whatever did to
|
|
61
|
+
* `trimEdfField`, which slices it. `matchSignals` has been refusing the mirror of this since
|
|
62
|
+
* 0.6.103 and names `findSignals` while doing it: "the matcher is the string \"EEG\" ... pass a
|
|
63
|
+
* RegExp for a pattern, or findSignals(header, label) for an exact label". The same mistake in
|
|
64
|
+
* the other direction — `findSignals(header, /EEG/)`, or `getSignal(header, /EEG/)` — threw V8's
|
|
65
|
+
* "text.slice is not a function": an internal name, no `Next:` clause, and no mention of the
|
|
66
|
+
* function that does take a pattern. One of the two spellings of one confusion had the better
|
|
67
|
+
* message, and it was not the spelling the reader is more likely to write, because a montage is
|
|
68
|
+
* far more often a pattern than an exact label.
|
|
69
|
+
*
|
|
70
|
+
* A boolean reaches it too, from a ternary that resolved to a flag rather than to a name.
|
|
71
|
+
*/
|
|
72
|
+
function assertLabel(label, call) {
|
|
73
|
+
if (typeof label === 'string')
|
|
74
|
+
return;
|
|
75
|
+
throw new RangeError(`${call}(): the selector is ${describeValue(label)}, and this call matches on the label as ` +
|
|
76
|
+
'written. Next: pass the label as a string, or matchSignals(header, pattern) for a RegExp ' +
|
|
77
|
+
'or a predicate.');
|
|
78
|
+
}
|
|
57
79
|
/**
|
|
58
80
|
* The HEADER, which `declaredDurationSeconds` checks below and its three siblings did not.
|
|
59
81
|
*
|
|
@@ -76,6 +98,7 @@ function assertHeaderSignals(header, call) {
|
|
|
76
98
|
export function findSignals(header, label) {
|
|
77
99
|
assertHeaderSignals(header, 'findSignals');
|
|
78
100
|
assertSelector(label, 'findSignals', 'the label to look for');
|
|
101
|
+
assertLabel(label, 'findSignals');
|
|
79
102
|
const wanted = trimEdfField(label);
|
|
80
103
|
return Object.freeze(header.signals.filter((signal) => signal.label === wanted));
|
|
81
104
|
}
|
|
@@ -143,6 +166,9 @@ export function getSignal(header, selector) {
|
|
|
143
166
|
: 'is not a whole number, so it falls between two signals rather than outside them'}. Labels, in signal order: ${quoteLabels(header)}. Next: pass a whole index in ` +
|
|
144
167
|
`0..${header.signals.length - 1}, or a label.`, { selector, availableLabels: header.signals.map((signal) => signal.label) });
|
|
145
168
|
}
|
|
169
|
+
// Its own, before the delegation, and named for THIS call: `findSignals` carries the identical
|
|
170
|
+
// guard, and a reader who wrote `getSignal` should not be told about a function they did not.
|
|
171
|
+
assertLabel(selector, 'getSignal');
|
|
146
172
|
const matches = findSignals(header, selector);
|
|
147
173
|
const first = matches[0];
|
|
148
174
|
if (first === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/header/lookup.ts"],"names":[],"mappings":"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"}
|
package/docs/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,16 @@ alone does not tell you whether you were affected.
|
|
|
6
6
|
edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
|
|
7
7
|
defect; those are called out below.
|
|
8
8
|
|
|
9
|
+
## 0.6.151
|
|
10
|
+
|
|
11
|
+
- **Fixed** `findSignals` and `getSignal` walking a selector that is not a label. A RegExp threw
|
|
12
|
+
V8's `text.slice is not a function` and a predicate `text.charCodeAt is not a function` — an
|
|
13
|
+
internal name either way, with no `Next:` clause.
|
|
14
|
+
- `matchSignals` has refused the mirror of this since 0.6.103 and names `findSignals` while doing
|
|
15
|
+
it. The likelier spelling — a pattern where a label belongs, since a montage selector is more
|
|
16
|
+
often a pattern — had the worse message.
|
|
17
|
+
- `assertSelector` checked that a selector ARRIVED (0.6.86) and never what kind it was.
|
|
18
|
+
|
|
9
19
|
## 0.6.150
|
|
10
20
|
|
|
11
21
|
- **Documented** what "duplicates are dropped" is decided on. `api-reading.md` stated the rule and
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED
package/src/header/lookup.ts
CHANGED
|
@@ -62,6 +62,30 @@ function assertSelector(selector: unknown, call: string, accepts: string): void
|
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
/**
|
|
66
|
+
* The selector's KIND, which `assertSelector` above never checked.
|
|
67
|
+
*
|
|
68
|
+
* It checks that a selector ARRIVED — the 0.6.86 fix — and then hands whatever did to
|
|
69
|
+
* `trimEdfField`, which slices it. `matchSignals` has been refusing the mirror of this since
|
|
70
|
+
* 0.6.103 and names `findSignals` while doing it: "the matcher is the string \"EEG\" ... pass a
|
|
71
|
+
* RegExp for a pattern, or findSignals(header, label) for an exact label". The same mistake in
|
|
72
|
+
* the other direction — `findSignals(header, /EEG/)`, or `getSignal(header, /EEG/)` — threw V8's
|
|
73
|
+
* "text.slice is not a function": an internal name, no `Next:` clause, and no mention of the
|
|
74
|
+
* function that does take a pattern. One of the two spellings of one confusion had the better
|
|
75
|
+
* message, and it was not the spelling the reader is more likely to write, because a montage is
|
|
76
|
+
* far more often a pattern than an exact label.
|
|
77
|
+
*
|
|
78
|
+
* A boolean reaches it too, from a ternary that resolved to a flag rather than to a name.
|
|
79
|
+
*/
|
|
80
|
+
function assertLabel(label: unknown, call: string): void {
|
|
81
|
+
if (typeof label === 'string') return;
|
|
82
|
+
throw new RangeError(
|
|
83
|
+
`${call}(): the selector is ${describeValue(label)}, and this call matches on the label as ` +
|
|
84
|
+
'written. Next: pass the label as a string, or matchSignals(header, pattern) for a RegExp ' +
|
|
85
|
+
'or a predicate.',
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
65
89
|
/**
|
|
66
90
|
* The HEADER, which `declaredDurationSeconds` checks below and its three siblings did not.
|
|
67
91
|
*
|
|
@@ -86,6 +110,7 @@ function assertHeaderSignals(header: EdfHeader, call: string): void {
|
|
|
86
110
|
export function findSignals(header: EdfHeader, label: string): readonly EdfSignal[] {
|
|
87
111
|
assertHeaderSignals(header, 'findSignals');
|
|
88
112
|
assertSelector(label, 'findSignals', 'the label to look for');
|
|
113
|
+
assertLabel(label, 'findSignals');
|
|
89
114
|
const wanted = trimEdfField(label);
|
|
90
115
|
return Object.freeze(header.signals.filter((signal) => signal.label === wanted));
|
|
91
116
|
}
|
|
@@ -164,6 +189,9 @@ export function getSignal(header: EdfHeader, selector: number | string): EdfSign
|
|
|
164
189
|
);
|
|
165
190
|
}
|
|
166
191
|
|
|
192
|
+
// Its own, before the delegation, and named for THIS call: `findSignals` carries the identical
|
|
193
|
+
// guard, and a reader who wrote `getSignal` should not be told about a function they did not.
|
|
194
|
+
assertLabel(selector, 'getSignal');
|
|
167
195
|
const matches = findSignals(header, selector);
|
|
168
196
|
const first = matches[0];
|
|
169
197
|
if (first === undefined) {
|