gff-nostream 1.3.9 → 2.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/dist/api.d.ts +33 -2
- package/dist/api.js +91 -3
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/parse.d.ts +3 -16
- package/dist/parse.js +80 -124
- package/dist/parse.js.map +1 -1
- package/dist/util.d.ts +17 -0
- package/dist/util.js +160 -59
- package/dist/util.js.map +1 -1
- package/esm/api.d.ts +33 -2
- package/esm/api.js +87 -2
- package/esm/api.js.map +1 -1
- package/esm/index.d.ts +3 -3
- package/esm/index.js +2 -2
- package/esm/index.js.map +1 -1
- package/esm/parse.d.ts +3 -16
- package/esm/parse.js +103 -142
- package/esm/parse.js.map +1 -1
- package/esm/util.d.ts +17 -0
- package/esm/util.js +148 -58
- package/esm/util.js.map +1 -1
- package/package.json +27 -16
- package/src/api.ts +113 -12
- package/src/index.ts +6 -5
- package/src/parse.ts +80 -146
- package/src/util.ts +165 -62
package/dist/util.d.ts
CHANGED
|
@@ -26,6 +26,14 @@ export declare function escapeColumn(rawVal: string | number): string;
|
|
|
26
26
|
* @returns Parsed attributes
|
|
27
27
|
*/
|
|
28
28
|
export declare function parseAttributes(attrString: string): GFF3Attributes;
|
|
29
|
+
/**
|
|
30
|
+
* Parse the 9th column (attributes) of a GFF3 feature line without unescaping.
|
|
31
|
+
* Fast path for data known to contain no escaped characters.
|
|
32
|
+
*
|
|
33
|
+
* @param attrString - String of GFF3 9th column
|
|
34
|
+
* @returns Parsed attributes
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseAttributesNoUnescape(attrString: string): GFF3Attributes;
|
|
29
37
|
/**
|
|
30
38
|
* Parse a GFF3 feature line
|
|
31
39
|
*
|
|
@@ -33,6 +41,15 @@ export declare function parseAttributes(attrString: string): GFF3Attributes;
|
|
|
33
41
|
* @returns The parsed feature
|
|
34
42
|
*/
|
|
35
43
|
export declare function parseFeature(line: string): GFF3FeatureLine;
|
|
44
|
+
export declare function parseFieldsArray(f: (string | null | undefined)[]): GFF3FeatureLine;
|
|
45
|
+
/**
|
|
46
|
+
* Parse a GFF3 feature from a pre-split fields array without unescaping.
|
|
47
|
+
* Fast path for data known to contain no escaped characters.
|
|
48
|
+
*
|
|
49
|
+
* @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
|
|
50
|
+
* @returns The parsed feature
|
|
51
|
+
*/
|
|
52
|
+
export declare function parseFieldsArrayNoUnescape(f: (string | null | undefined)[]): GFF3FeatureLine;
|
|
36
53
|
/**
|
|
37
54
|
* Parse a GFF3 directive line.
|
|
38
55
|
*
|
package/dist/util.js
CHANGED
|
@@ -6,7 +6,10 @@ exports.unescape = unescape;
|
|
|
6
6
|
exports.escape = escape;
|
|
7
7
|
exports.escapeColumn = escapeColumn;
|
|
8
8
|
exports.parseAttributes = parseAttributes;
|
|
9
|
+
exports.parseAttributesNoUnescape = parseAttributesNoUnescape;
|
|
9
10
|
exports.parseFeature = parseFeature;
|
|
11
|
+
exports.parseFieldsArray = parseFieldsArray;
|
|
12
|
+
exports.parseFieldsArrayNoUnescape = parseFieldsArrayNoUnescape;
|
|
10
13
|
exports.parseDirective = parseDirective;
|
|
11
14
|
exports.formatAttributes = formatAttributes;
|
|
12
15
|
exports.formatFeature = formatFeature;
|
|
@@ -14,6 +17,15 @@ exports.formatDirective = formatDirective;
|
|
|
14
17
|
exports.formatComment = formatComment;
|
|
15
18
|
exports.formatSequence = formatSequence;
|
|
16
19
|
exports.formatItem = formatItem;
|
|
20
|
+
const escapeRegex = /%([0-9A-Fa-f]{2})/g;
|
|
21
|
+
const directiveRegex = /^\s*##\s*(\S+)\s*(.*)/;
|
|
22
|
+
const lineEndRegex = /\r?\n$/;
|
|
23
|
+
const whitespaceRegex = /\s+/;
|
|
24
|
+
const nonDigitRegex = /\D/g;
|
|
25
|
+
// eslint-disable-next-line no-control-regex
|
|
26
|
+
const attrEscapeRegex = /[\n;\r\t=%&,\u0000-\u001f\u007f-\u00ff]/g;
|
|
27
|
+
// eslint-disable-next-line no-control-regex
|
|
28
|
+
const columnEscapeRegex = /[\n\r\t%\u0000-\u001f\u007f-\u00ff]/g;
|
|
17
29
|
/**
|
|
18
30
|
* Unescape a string value used in a GFF3 attribute.
|
|
19
31
|
*
|
|
@@ -21,7 +33,10 @@ exports.formatItem = formatItem;
|
|
|
21
33
|
* @returns An unescaped string value
|
|
22
34
|
*/
|
|
23
35
|
function unescape(stringVal) {
|
|
24
|
-
|
|
36
|
+
if (!stringVal.includes('%')) {
|
|
37
|
+
return stringVal;
|
|
38
|
+
}
|
|
39
|
+
return stringVal.replaceAll(escapeRegex, (_match, seq) => String.fromCharCode(parseInt(seq, 16)));
|
|
25
40
|
}
|
|
26
41
|
function _escape(regex, s) {
|
|
27
42
|
return String(s).replace(regex, ch => {
|
|
@@ -36,7 +51,7 @@ function _escape(regex, s) {
|
|
|
36
51
|
* @returns An escaped string value
|
|
37
52
|
*/
|
|
38
53
|
function escape(rawVal) {
|
|
39
|
-
return _escape(
|
|
54
|
+
return _escape(attrEscapeRegex, rawVal);
|
|
40
55
|
}
|
|
41
56
|
/**
|
|
42
57
|
* Escape a value for use in a GFF3 column value.
|
|
@@ -45,7 +60,7 @@ function escape(rawVal) {
|
|
|
45
60
|
* @returns An escaped column value
|
|
46
61
|
*/
|
|
47
62
|
function escapeColumn(rawVal) {
|
|
48
|
-
return _escape(
|
|
63
|
+
return _escape(columnEscapeRegex, rawVal);
|
|
49
64
|
}
|
|
50
65
|
/**
|
|
51
66
|
* Parse the 9th column (attributes) of a GFF3 feature line.
|
|
@@ -58,26 +73,66 @@ function parseAttributes(attrString) {
|
|
|
58
73
|
return {};
|
|
59
74
|
}
|
|
60
75
|
const attrs = {};
|
|
61
|
-
attrString
|
|
62
|
-
|
|
63
|
-
.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
if (
|
|
68
|
-
|
|
76
|
+
let str = attrString;
|
|
77
|
+
if (str.endsWith('\n')) {
|
|
78
|
+
str = str.slice(0, str.endsWith('\r\n') ? -2 : -1);
|
|
79
|
+
}
|
|
80
|
+
for (const a of str.split(';')) {
|
|
81
|
+
const eqIdx = a.indexOf('=');
|
|
82
|
+
if (eqIdx === -1) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const value = a.slice(eqIdx + 1);
|
|
86
|
+
if (!value.length) {
|
|
87
|
+
continue;
|
|
69
88
|
}
|
|
70
|
-
|
|
71
|
-
let arec = attrs[
|
|
89
|
+
const tag = a.slice(0, eqIdx).trim();
|
|
90
|
+
let arec = attrs[tag];
|
|
72
91
|
if (!arec) {
|
|
73
92
|
arec = [];
|
|
74
|
-
attrs[
|
|
93
|
+
attrs[tag] = arec;
|
|
75
94
|
}
|
|
76
|
-
|
|
77
|
-
.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
95
|
+
for (const s of value.split(',')) {
|
|
96
|
+
arec.push(unescape(s.trim()));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return attrs;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Parse the 9th column (attributes) of a GFF3 feature line without unescaping.
|
|
103
|
+
* Fast path for data known to contain no escaped characters.
|
|
104
|
+
*
|
|
105
|
+
* @param attrString - String of GFF3 9th column
|
|
106
|
+
* @returns Parsed attributes
|
|
107
|
+
*/
|
|
108
|
+
function parseAttributesNoUnescape(attrString) {
|
|
109
|
+
if (!attrString.length || attrString === '.') {
|
|
110
|
+
return {};
|
|
111
|
+
}
|
|
112
|
+
const attrs = {};
|
|
113
|
+
let str = attrString;
|
|
114
|
+
if (str.endsWith('\n')) {
|
|
115
|
+
str = str.slice(0, str.endsWith('\r\n') ? -2 : -1);
|
|
116
|
+
}
|
|
117
|
+
for (const a of str.split(';')) {
|
|
118
|
+
const eqIdx = a.indexOf('=');
|
|
119
|
+
if (eqIdx === -1) {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
const value = a.slice(eqIdx + 1);
|
|
123
|
+
if (!value.length) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const tag = a.slice(0, eqIdx).trim();
|
|
127
|
+
let arec = attrs[tag];
|
|
128
|
+
if (!arec) {
|
|
129
|
+
arec = [];
|
|
130
|
+
attrs[tag] = arec;
|
|
131
|
+
}
|
|
132
|
+
for (const s of value.split(',')) {
|
|
133
|
+
arec.push(s.trim());
|
|
134
|
+
}
|
|
135
|
+
}
|
|
81
136
|
return attrs;
|
|
82
137
|
}
|
|
83
138
|
/**
|
|
@@ -87,21 +142,67 @@ function parseAttributes(attrString) {
|
|
|
87
142
|
* @returns The parsed feature
|
|
88
143
|
*/
|
|
89
144
|
function parseFeature(line) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
145
|
+
return parseFieldsArray(line.split('\t'));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Parse a GFF3 feature from a pre-split fields array
|
|
149
|
+
*
|
|
150
|
+
* @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
|
|
151
|
+
* @returns The parsed feature
|
|
152
|
+
*/
|
|
153
|
+
function norm(a) {
|
|
154
|
+
return a === '.' || a === '' || a === undefined ? null : a;
|
|
155
|
+
}
|
|
156
|
+
function parseFieldsArray(f) {
|
|
157
|
+
const seq_id = norm(f[0]);
|
|
158
|
+
const source = norm(f[1]);
|
|
159
|
+
const type = norm(f[2]);
|
|
160
|
+
const start = norm(f[3]);
|
|
161
|
+
const end = norm(f[4]);
|
|
162
|
+
const score = norm(f[5]);
|
|
163
|
+
const strand = norm(f[6]);
|
|
164
|
+
const phase = norm(f[7]);
|
|
165
|
+
const attrString = norm(f[8]);
|
|
166
|
+
return {
|
|
167
|
+
seq_id: seq_id ? unescape(seq_id) : null,
|
|
168
|
+
source: source ? unescape(source) : null,
|
|
169
|
+
type: type ? unescape(type) : null,
|
|
170
|
+
start: start === null ? null : parseInt(start, 10),
|
|
171
|
+
end: end === null ? null : parseInt(end, 10),
|
|
172
|
+
score: score === null ? null : parseFloat(score),
|
|
173
|
+
strand,
|
|
174
|
+
phase,
|
|
175
|
+
attributes: attrString === null ? null : parseAttributes(attrString),
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Parse a GFF3 feature from a pre-split fields array without unescaping.
|
|
180
|
+
* Fast path for data known to contain no escaped characters.
|
|
181
|
+
*
|
|
182
|
+
* @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
|
|
183
|
+
* @returns The parsed feature
|
|
184
|
+
*/
|
|
185
|
+
function parseFieldsArrayNoUnescape(f) {
|
|
186
|
+
const seq_id = norm(f[0]);
|
|
187
|
+
const source = norm(f[1]);
|
|
188
|
+
const type = norm(f[2]);
|
|
189
|
+
const start = norm(f[3]);
|
|
190
|
+
const end = norm(f[4]);
|
|
191
|
+
const score = norm(f[5]);
|
|
192
|
+
const strand = norm(f[6]);
|
|
193
|
+
const phase = norm(f[7]);
|
|
194
|
+
const attrString = norm(f[8]);
|
|
195
|
+
return {
|
|
196
|
+
seq_id,
|
|
197
|
+
source,
|
|
198
|
+
type,
|
|
199
|
+
start: start === null ? null : parseInt(start, 10),
|
|
200
|
+
end: end === null ? null : parseInt(end, 10),
|
|
201
|
+
score: score === null ? null : parseFloat(score),
|
|
202
|
+
strand,
|
|
203
|
+
phase,
|
|
204
|
+
attributes: attrString === null ? null : parseAttributesNoUnescape(attrString),
|
|
103
205
|
};
|
|
104
|
-
return parsed;
|
|
105
206
|
}
|
|
106
207
|
/**
|
|
107
208
|
* Parse a GFF3 directive line.
|
|
@@ -110,8 +211,7 @@ function parseFeature(line) {
|
|
|
110
211
|
* @returns The parsed directive
|
|
111
212
|
*/
|
|
112
213
|
function parseDirective(line) {
|
|
113
|
-
|
|
114
|
-
const match = /^\s*##\s*(\S+)\s*(.*)/.exec(line);
|
|
214
|
+
const match = directiveRegex.exec(line);
|
|
115
215
|
if (!match) {
|
|
116
216
|
return null;
|
|
117
217
|
}
|
|
@@ -119,18 +219,26 @@ function parseDirective(line) {
|
|
|
119
219
|
let [, , contents] = match;
|
|
120
220
|
const parsed = { directive: name };
|
|
121
221
|
if (contents.length) {
|
|
122
|
-
contents = contents.replace(
|
|
222
|
+
contents = contents.replace(lineEndRegex, '');
|
|
123
223
|
parsed.value = contents;
|
|
124
224
|
}
|
|
125
225
|
// do a little additional parsing for sequence-region and genome-build directives
|
|
126
226
|
if (name === 'sequence-region') {
|
|
127
|
-
const c = contents.split(
|
|
128
|
-
return
|
|
227
|
+
const c = contents.split(whitespaceRegex, 3);
|
|
228
|
+
return {
|
|
229
|
+
...parsed,
|
|
230
|
+
seq_id: c[0],
|
|
231
|
+
start: c[1]?.replaceAll(nonDigitRegex, ''),
|
|
232
|
+
end: c[2]?.replaceAll(nonDigitRegex, ''),
|
|
233
|
+
};
|
|
129
234
|
}
|
|
130
235
|
else if (name === 'genome-build') {
|
|
131
|
-
const [source, buildName] = contents.split(
|
|
132
|
-
return
|
|
133
|
-
|
|
236
|
+
const [source, buildName] = contents.split(whitespaceRegex, 2);
|
|
237
|
+
return {
|
|
238
|
+
...parsed,
|
|
239
|
+
source,
|
|
240
|
+
buildName,
|
|
241
|
+
};
|
|
134
242
|
}
|
|
135
243
|
return parsed;
|
|
136
244
|
}
|
|
@@ -142,28 +250,18 @@ function parseDirective(line) {
|
|
|
142
250
|
*/
|
|
143
251
|
function formatAttributes(attrs) {
|
|
144
252
|
const attrOrder = [];
|
|
145
|
-
|
|
253
|
+
for (const [tag, val] of Object.entries(attrs)) {
|
|
146
254
|
if (!val) {
|
|
147
|
-
|
|
255
|
+
continue;
|
|
148
256
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
valstring = escape(val.toString());
|
|
152
|
-
// } else if (Array.isArray(val.values)) {
|
|
153
|
-
// valstring = val.values.map(escape).join(',')
|
|
154
|
-
}
|
|
155
|
-
else if (Array.isArray(val)) {
|
|
156
|
-
valstring = val.map(escape).join(',');
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
valstring = escape(val);
|
|
160
|
-
}
|
|
161
|
-
attrOrder.push(`${escape(tag)}=${valstring}`);
|
|
162
|
-
});
|
|
257
|
+
attrOrder.push(`${escape(tag)}=${val.map(escape).join(',')}`);
|
|
258
|
+
}
|
|
163
259
|
return attrOrder.length ? attrOrder.join(';') : '.';
|
|
164
260
|
}
|
|
165
261
|
function _formatSingleFeature(f, seenFeature) {
|
|
166
|
-
const attrString =
|
|
262
|
+
const attrString =
|
|
263
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
264
|
+
f.attributes === null || f.attributes === undefined
|
|
167
265
|
? '.'
|
|
168
266
|
: formatAttributes(f.attributes);
|
|
169
267
|
const fields = [
|
|
@@ -268,7 +366,10 @@ function formatItem(itemOrItems) {
|
|
|
268
366
|
return formatSingleItem(itemOrItems);
|
|
269
367
|
}
|
|
270
368
|
function _isFeatureLineWithRefs(featureLine) {
|
|
271
|
-
return (
|
|
369
|
+
return (
|
|
370
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
371
|
+
featureLine.child_features !== undefined &&
|
|
372
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
272
373
|
featureLine.derived_features !== undefined);
|
|
273
374
|
}
|
|
274
375
|
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/esm/api.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { GFF3Feature } from './util';
|
|
1
|
+
import type { GFF3Feature } from './util.ts';
|
|
2
|
+
export interface LineRecord {
|
|
3
|
+
fields: string[];
|
|
4
|
+
lineHash?: string | number;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
7
|
* Synchronously parse a string containing GFF3 and return an array of the
|
|
4
8
|
* parsed items.
|
|
@@ -8,4 +12,31 @@ import { GFF3Feature } from './util';
|
|
|
8
12
|
* @returns array of parsed features, directives, comments and/or sequences
|
|
9
13
|
*/
|
|
10
14
|
export declare function parseStringSync(str: string): GFF3Feature[];
|
|
11
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Synchronously parse an array of strings containing GFF3 and return an array of the
|
|
17
|
+
* parsed items.
|
|
18
|
+
*
|
|
19
|
+
* @param arr - GFF3 array of strings
|
|
20
|
+
* @param inputOptions - Parsing options
|
|
21
|
+
* @returns array of parsed features, directives, comments and/or sequences
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseArraySync(arr: string[]): GFF3Feature[];
|
|
24
|
+
/**
|
|
25
|
+
* Synchronously parse an array of LineRecord objects containing pre-split GFF3
|
|
26
|
+
* fields and return an array of the parsed items.
|
|
27
|
+
*
|
|
28
|
+
* @param records - Array of LineRecord objects with fields array and optional lineHash
|
|
29
|
+
* @returns array of parsed features
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseRecordsSync(records: LineRecord[]): GFF3Feature[];
|
|
32
|
+
/**
|
|
33
|
+
* Synchronously parse an array of LineRecord objects containing pre-split GFF3
|
|
34
|
+
* fields and return an array of the parsed items. Uses a fast path that skips
|
|
35
|
+
* unescaping when hasEscapes is false.
|
|
36
|
+
*
|
|
37
|
+
* @param records - Array of LineRecord objects with fields array and optional lineHash
|
|
38
|
+
* @param hasEscapes - Whether the records contain percent-encoded characters
|
|
39
|
+
* @returns array of parsed features
|
|
40
|
+
*/
|
|
41
|
+
export declare function parseRecordsSyncFast(records: LineRecord[], hasEscapes: boolean): GFF3Feature[];
|
|
42
|
+
export type { GFF3Comment, GFF3Directive, GFF3Feature, GFF3FeatureLine, GFF3FeatureLineWithRefs, GFF3Item, GFF3Sequence, } from './util.ts';
|
package/esm/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import Parser from
|
|
1
|
+
import Parser from "./parse.js";
|
|
2
|
+
import { parseFieldsArray, parseFieldsArrayNoUnescape } from "./util.js";
|
|
2
3
|
/**
|
|
3
4
|
* Synchronously parse a string containing GFF3 and return an array of the
|
|
4
5
|
* parsed items.
|
|
@@ -13,7 +14,7 @@ export function parseStringSync(str) {
|
|
|
13
14
|
featureCallback: arg => items.push(arg),
|
|
14
15
|
disableDerivesFromReferences: true,
|
|
15
16
|
errorCallback: err => {
|
|
16
|
-
throw err;
|
|
17
|
+
throw new Error(err);
|
|
17
18
|
},
|
|
18
19
|
});
|
|
19
20
|
for (const line of str.split(/\r?\n/)) {
|
|
@@ -22,4 +23,88 @@ export function parseStringSync(str) {
|
|
|
22
23
|
parser.finish();
|
|
23
24
|
return items;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Synchronously parse an array of strings containing GFF3 and return an array of the
|
|
28
|
+
* parsed items.
|
|
29
|
+
*
|
|
30
|
+
* @param arr - GFF3 array of strings
|
|
31
|
+
* @param inputOptions - Parsing options
|
|
32
|
+
* @returns array of parsed features, directives, comments and/or sequences
|
|
33
|
+
*/
|
|
34
|
+
export function parseArraySync(arr) {
|
|
35
|
+
const items = [];
|
|
36
|
+
const parser = new Parser({
|
|
37
|
+
featureCallback: arg => items.push(arg),
|
|
38
|
+
disableDerivesFromReferences: true,
|
|
39
|
+
errorCallback: err => {
|
|
40
|
+
throw new Error(err);
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
for (const line of arr) {
|
|
44
|
+
parser.addLine(line);
|
|
45
|
+
}
|
|
46
|
+
parser.finish();
|
|
47
|
+
return items;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Synchronously parse an array of LineRecord objects containing pre-split GFF3
|
|
51
|
+
* fields and return an array of the parsed items.
|
|
52
|
+
*
|
|
53
|
+
* @param records - Array of LineRecord objects with fields array and optional lineHash
|
|
54
|
+
* @returns array of parsed features
|
|
55
|
+
*/
|
|
56
|
+
export function parseRecordsSync(records) {
|
|
57
|
+
const items = [];
|
|
58
|
+
const parser = new Parser({
|
|
59
|
+
featureCallback: arg => items.push(arg),
|
|
60
|
+
disableDerivesFromReferences: true,
|
|
61
|
+
errorCallback: err => {
|
|
62
|
+
throw new Error(err);
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
for (const record of records) {
|
|
66
|
+
const featureLine = parseFieldsArray(record.fields);
|
|
67
|
+
if (record.lineHash !== undefined) {
|
|
68
|
+
if (!featureLine.attributes) {
|
|
69
|
+
featureLine.attributes = {};
|
|
70
|
+
}
|
|
71
|
+
featureLine.attributes._lineHash = [String(record.lineHash)];
|
|
72
|
+
}
|
|
73
|
+
parser.addParsedFeatureLine(featureLine);
|
|
74
|
+
}
|
|
75
|
+
parser.finish();
|
|
76
|
+
return items;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Synchronously parse an array of LineRecord objects containing pre-split GFF3
|
|
80
|
+
* fields and return an array of the parsed items. Uses a fast path that skips
|
|
81
|
+
* unescaping when hasEscapes is false.
|
|
82
|
+
*
|
|
83
|
+
* @param records - Array of LineRecord objects with fields array and optional lineHash
|
|
84
|
+
* @param hasEscapes - Whether the records contain percent-encoded characters
|
|
85
|
+
* @returns array of parsed features
|
|
86
|
+
*/
|
|
87
|
+
export function parseRecordsSyncFast(records, hasEscapes) {
|
|
88
|
+
const items = [];
|
|
89
|
+
const parser = new Parser({
|
|
90
|
+
featureCallback: arg => items.push(arg),
|
|
91
|
+
disableDerivesFromReferences: true,
|
|
92
|
+
errorCallback: err => {
|
|
93
|
+
throw new Error(err);
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
const parseFunc = hasEscapes ? parseFieldsArray : parseFieldsArrayNoUnescape;
|
|
97
|
+
for (const record of records) {
|
|
98
|
+
const featureLine = parseFunc(record.fields);
|
|
99
|
+
if (record.lineHash !== undefined) {
|
|
100
|
+
if (!featureLine.attributes) {
|
|
101
|
+
featureLine.attributes = {};
|
|
102
|
+
}
|
|
103
|
+
featureLine.attributes._lineHash = [String(record.lineHash)];
|
|
104
|
+
}
|
|
105
|
+
parser.addParsedFeatureLine(featureLine);
|
|
106
|
+
}
|
|
107
|
+
parser.finish();
|
|
108
|
+
return items;
|
|
109
|
+
}
|
|
25
110
|
//# sourceMappingURL=api.js.map
|
package/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { parseStringSync } from './api';
|
|
2
|
-
export { parseStringSync };
|
|
3
|
-
export type { GFF3Comment, GFF3Feature,
|
|
1
|
+
import { parseArraySync, parseRecordsSync, parseRecordsSyncFast, parseStringSync } from './api.ts';
|
|
2
|
+
export { parseArraySync, parseRecordsSync, parseRecordsSyncFast, parseStringSync };
|
|
3
|
+
export type { GFF3Comment, GFF3Directive, GFF3Feature, GFF3FeatureLine, GFF3FeatureLineWithRefs, GFF3Item, GFF3Sequence, LineRecord, } from './api.ts';
|
package/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { parseStringSync } from
|
|
2
|
-
export { parseStringSync };
|
|
1
|
+
import { parseArraySync, parseRecordsSync, parseRecordsSyncFast, parseStringSync } from "./api.js";
|
|
2
|
+
export { parseArraySync, parseRecordsSync, parseRecordsSyncFast, parseStringSync };
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAClG,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAA"}
|
package/esm/parse.d.ts
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
import * as GFF3 from './util';
|
|
2
|
-
export declare class FASTAParser {
|
|
3
|
-
seqCallback: (sequence: GFF3.GFF3Sequence) => void;
|
|
4
|
-
currentSequence: {
|
|
5
|
-
id: string;
|
|
6
|
-
sequence: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
} | undefined;
|
|
9
|
-
constructor(seqCallback: (sequence: GFF3.GFF3Sequence) => void);
|
|
10
|
-
addLine(line: string): void;
|
|
11
|
-
private _flush;
|
|
12
|
-
finish(): void;
|
|
13
|
-
}
|
|
1
|
+
import * as GFF3 from './util.ts';
|
|
14
2
|
interface ParserArgs {
|
|
15
3
|
featureCallback?(feature: GFF3.GFF3Feature): void;
|
|
16
4
|
endCallback?(): void;
|
|
17
5
|
commentCallback?(comment: GFF3.GFF3Comment): void;
|
|
18
6
|
errorCallback?(error: string): void;
|
|
19
7
|
directiveCallback?(directive: GFF3.GFF3Directive): void;
|
|
20
|
-
sequenceCallback?(sequence: GFF3.GFF3Sequence): void;
|
|
21
8
|
bufferSize?: number;
|
|
22
9
|
disableDerivesFromReferences?: boolean;
|
|
23
10
|
}
|
|
@@ -28,9 +15,7 @@ export default class Parser {
|
|
|
28
15
|
errorCallback: (error: string) => void;
|
|
29
16
|
disableDerivesFromReferences: boolean;
|
|
30
17
|
directiveCallback: (directive: GFF3.GFF3Directive) => void;
|
|
31
|
-
sequenceCallback: (sequence: GFF3.GFF3Sequence) => void;
|
|
32
18
|
bufferSize: number;
|
|
33
|
-
fastaParser: FASTAParser | undefined;
|
|
34
19
|
eof: boolean;
|
|
35
20
|
lineNumber: number;
|
|
36
21
|
private _underConstructionTopLevel;
|
|
@@ -39,6 +24,7 @@ export default class Parser {
|
|
|
39
24
|
private _underConstructionOrphans;
|
|
40
25
|
constructor(args: ParserArgs);
|
|
41
26
|
addLine(line: string): void;
|
|
27
|
+
addParsedFeatureLine(featureLine: GFF3.GFF3FeatureLine): void;
|
|
42
28
|
finish(): void;
|
|
43
29
|
private _emitItem;
|
|
44
30
|
private _enforceBufferSizeLimit;
|
|
@@ -48,6 +34,7 @@ export default class Parser {
|
|
|
48
34
|
*/
|
|
49
35
|
private _emitAllUnderConstructionFeatures;
|
|
50
36
|
private _bufferLine;
|
|
37
|
+
private _bufferParsedLine;
|
|
51
38
|
private _resolveReferencesTo;
|
|
52
39
|
private _parseError;
|
|
53
40
|
private _resolveReferencesFrom;
|