gff-nostream 1.3.7 → 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/dist/api.d.ts +23 -2
- package/dist/api.js +58 -3
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -0
- package/dist/parse.d.ts +3 -16
- package/dist/parse.js +78 -120
- package/dist/parse.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.js +92 -59
- package/dist/util.js.map +1 -1
- package/esm/api.d.ts +23 -2
- package/esm/api.js +55 -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 +101 -138
- package/esm/parse.js.map +1 -1
- package/esm/util.d.ts +1 -0
- package/esm/util.js +82 -58
- package/esm/util.js.map +1 -1
- package/package.json +31 -20
- package/src/api.ts +77 -12
- package/src/index.ts +6 -5
- package/src/parse.ts +76 -141
- package/src/util.ts +91 -62
package/dist/util.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.escape = escape;
|
|
|
7
7
|
exports.escapeColumn = escapeColumn;
|
|
8
8
|
exports.parseAttributes = parseAttributes;
|
|
9
9
|
exports.parseFeature = parseFeature;
|
|
10
|
+
exports.parseFieldsArray = parseFieldsArray;
|
|
10
11
|
exports.parseDirective = parseDirective;
|
|
11
12
|
exports.formatAttributes = formatAttributes;
|
|
12
13
|
exports.formatFeature = formatFeature;
|
|
@@ -14,6 +15,15 @@ exports.formatDirective = formatDirective;
|
|
|
14
15
|
exports.formatComment = formatComment;
|
|
15
16
|
exports.formatSequence = formatSequence;
|
|
16
17
|
exports.formatItem = formatItem;
|
|
18
|
+
const escapeRegex = /%([0-9A-Fa-f]{2})/g;
|
|
19
|
+
const directiveRegex = /^\s*##\s*(\S+)\s*(.*)/;
|
|
20
|
+
const lineEndRegex = /\r?\n$/;
|
|
21
|
+
const whitespaceRegex = /\s+/;
|
|
22
|
+
const nonDigitRegex = /\D/g;
|
|
23
|
+
// eslint-disable-next-line no-control-regex
|
|
24
|
+
const attrEscapeRegex = /[\n;\r\t=%&,\u0000-\u001f\u007f-\u00ff]/g;
|
|
25
|
+
// eslint-disable-next-line no-control-regex
|
|
26
|
+
const columnEscapeRegex = /[\n\r\t%\u0000-\u001f\u007f-\u00ff]/g;
|
|
17
27
|
/**
|
|
18
28
|
* Unescape a string value used in a GFF3 attribute.
|
|
19
29
|
*
|
|
@@ -21,7 +31,10 @@ exports.formatItem = formatItem;
|
|
|
21
31
|
* @returns An unescaped string value
|
|
22
32
|
*/
|
|
23
33
|
function unescape(stringVal) {
|
|
24
|
-
|
|
34
|
+
if (!stringVal.includes('%')) {
|
|
35
|
+
return stringVal;
|
|
36
|
+
}
|
|
37
|
+
return stringVal.replaceAll(escapeRegex, (_match, seq) => String.fromCharCode(parseInt(seq, 16)));
|
|
25
38
|
}
|
|
26
39
|
function _escape(regex, s) {
|
|
27
40
|
return String(s).replace(regex, ch => {
|
|
@@ -36,7 +49,7 @@ function _escape(regex, s) {
|
|
|
36
49
|
* @returns An escaped string value
|
|
37
50
|
*/
|
|
38
51
|
function escape(rawVal) {
|
|
39
|
-
return _escape(
|
|
52
|
+
return _escape(attrEscapeRegex, rawVal);
|
|
40
53
|
}
|
|
41
54
|
/**
|
|
42
55
|
* Escape a value for use in a GFF3 column value.
|
|
@@ -45,7 +58,7 @@ function escape(rawVal) {
|
|
|
45
58
|
* @returns An escaped column value
|
|
46
59
|
*/
|
|
47
60
|
function escapeColumn(rawVal) {
|
|
48
|
-
return _escape(
|
|
61
|
+
return _escape(columnEscapeRegex, rawVal);
|
|
49
62
|
}
|
|
50
63
|
/**
|
|
51
64
|
* Parse the 9th column (attributes) of a GFF3 feature line.
|
|
@@ -58,26 +71,29 @@ function parseAttributes(attrString) {
|
|
|
58
71
|
return {};
|
|
59
72
|
}
|
|
60
73
|
const attrs = {};
|
|
61
|
-
attrString
|
|
62
|
-
|
|
63
|
-
.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const
|
|
67
|
-
if (
|
|
68
|
-
|
|
74
|
+
let str = attrString;
|
|
75
|
+
if (str.endsWith('\n')) {
|
|
76
|
+
str = str.slice(0, str.endsWith('\r\n') ? -2 : -1);
|
|
77
|
+
}
|
|
78
|
+
for (const a of str.split(';')) {
|
|
79
|
+
const eqIdx = a.indexOf('=');
|
|
80
|
+
if (eqIdx === -1) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const value = a.slice(eqIdx + 1);
|
|
84
|
+
if (!value.length) {
|
|
85
|
+
continue;
|
|
69
86
|
}
|
|
70
|
-
|
|
71
|
-
let arec = attrs[
|
|
87
|
+
const tag = a.slice(0, eqIdx).trim();
|
|
88
|
+
let arec = attrs[tag];
|
|
72
89
|
if (!arec) {
|
|
73
90
|
arec = [];
|
|
74
|
-
attrs[
|
|
91
|
+
attrs[tag] = arec;
|
|
75
92
|
}
|
|
76
|
-
|
|
77
|
-
.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
});
|
|
93
|
+
for (const s of value.split(',')) {
|
|
94
|
+
arec.push(unescape(s.trim()));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
81
97
|
return attrs;
|
|
82
98
|
}
|
|
83
99
|
/**
|
|
@@ -87,21 +103,38 @@ function parseAttributes(attrString) {
|
|
|
87
103
|
* @returns The parsed feature
|
|
88
104
|
*/
|
|
89
105
|
function parseFeature(line) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
106
|
+
return parseFieldsArray(line.split('\t'));
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Parse a GFF3 feature from a pre-split fields array
|
|
110
|
+
*
|
|
111
|
+
* @param f - Array of 9 GFF3 column values (use null or '.' for empty values)
|
|
112
|
+
* @returns The parsed feature
|
|
113
|
+
*/
|
|
114
|
+
function norm(a) {
|
|
115
|
+
return a === '.' || a === '' || a === undefined ? null : a;
|
|
116
|
+
}
|
|
117
|
+
function parseFieldsArray(f) {
|
|
118
|
+
const seq_id = norm(f[0]);
|
|
119
|
+
const source = norm(f[1]);
|
|
120
|
+
const type = norm(f[2]);
|
|
121
|
+
const start = norm(f[3]);
|
|
122
|
+
const end = norm(f[4]);
|
|
123
|
+
const score = norm(f[5]);
|
|
124
|
+
const strand = norm(f[6]);
|
|
125
|
+
const phase = norm(f[7]);
|
|
126
|
+
const attrString = norm(f[8]);
|
|
127
|
+
return {
|
|
128
|
+
seq_id: seq_id ? unescape(seq_id) : null,
|
|
129
|
+
source: source ? unescape(source) : null,
|
|
130
|
+
type: type ? unescape(type) : null,
|
|
131
|
+
start: start === null ? null : parseInt(start, 10),
|
|
132
|
+
end: end === null ? null : parseInt(end, 10),
|
|
133
|
+
score: score === null ? null : parseFloat(score),
|
|
134
|
+
strand,
|
|
135
|
+
phase,
|
|
136
|
+
attributes: attrString === null ? null : parseAttributes(attrString),
|
|
103
137
|
};
|
|
104
|
-
return parsed;
|
|
105
138
|
}
|
|
106
139
|
/**
|
|
107
140
|
* Parse a GFF3 directive line.
|
|
@@ -110,8 +143,7 @@ function parseFeature(line) {
|
|
|
110
143
|
* @returns The parsed directive
|
|
111
144
|
*/
|
|
112
145
|
function parseDirective(line) {
|
|
113
|
-
|
|
114
|
-
const match = /^\s*##\s*(\S+)\s*(.*)/.exec(line);
|
|
146
|
+
const match = directiveRegex.exec(line);
|
|
115
147
|
if (!match) {
|
|
116
148
|
return null;
|
|
117
149
|
}
|
|
@@ -119,18 +151,26 @@ function parseDirective(line) {
|
|
|
119
151
|
let [, , contents] = match;
|
|
120
152
|
const parsed = { directive: name };
|
|
121
153
|
if (contents.length) {
|
|
122
|
-
contents = contents.replace(
|
|
154
|
+
contents = contents.replace(lineEndRegex, '');
|
|
123
155
|
parsed.value = contents;
|
|
124
156
|
}
|
|
125
157
|
// do a little additional parsing for sequence-region and genome-build directives
|
|
126
158
|
if (name === 'sequence-region') {
|
|
127
|
-
const c = contents.split(
|
|
128
|
-
return
|
|
159
|
+
const c = contents.split(whitespaceRegex, 3);
|
|
160
|
+
return {
|
|
161
|
+
...parsed,
|
|
162
|
+
seq_id: c[0],
|
|
163
|
+
start: c[1]?.replaceAll(nonDigitRegex, ''),
|
|
164
|
+
end: c[2]?.replaceAll(nonDigitRegex, ''),
|
|
165
|
+
};
|
|
129
166
|
}
|
|
130
167
|
else if (name === 'genome-build') {
|
|
131
|
-
const [source, buildName] = contents.split(
|
|
132
|
-
return
|
|
133
|
-
|
|
168
|
+
const [source, buildName] = contents.split(whitespaceRegex, 2);
|
|
169
|
+
return {
|
|
170
|
+
...parsed,
|
|
171
|
+
source,
|
|
172
|
+
buildName,
|
|
173
|
+
};
|
|
134
174
|
}
|
|
135
175
|
return parsed;
|
|
136
176
|
}
|
|
@@ -142,28 +182,18 @@ function parseDirective(line) {
|
|
|
142
182
|
*/
|
|
143
183
|
function formatAttributes(attrs) {
|
|
144
184
|
const attrOrder = [];
|
|
145
|
-
|
|
185
|
+
for (const [tag, val] of Object.entries(attrs)) {
|
|
146
186
|
if (!val) {
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
let valstring;
|
|
150
|
-
if (val.hasOwnProperty('toString')) {
|
|
151
|
-
valstring = escape(val.toString());
|
|
152
|
-
// } else if (Array.isArray(val.values)) {
|
|
153
|
-
// valstring = val.values.map(escape).join(',')
|
|
187
|
+
continue;
|
|
154
188
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
valstring = escape(val);
|
|
160
|
-
}
|
|
161
|
-
attrOrder.push(`${escape(tag)}=${valstring}`);
|
|
162
|
-
});
|
|
189
|
+
attrOrder.push(`${escape(tag)}=${val.map(escape).join(',')}`);
|
|
190
|
+
}
|
|
163
191
|
return attrOrder.length ? attrOrder.join(';') : '.';
|
|
164
192
|
}
|
|
165
193
|
function _formatSingleFeature(f, seenFeature) {
|
|
166
|
-
const attrString =
|
|
194
|
+
const attrString =
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
196
|
+
f.attributes === null || f.attributes === undefined
|
|
167
197
|
? '.'
|
|
168
198
|
: formatAttributes(f.attributes);
|
|
169
199
|
const fields = [
|
|
@@ -268,7 +298,10 @@ function formatItem(itemOrItems) {
|
|
|
268
298
|
return formatSingleItem(itemOrItems);
|
|
269
299
|
}
|
|
270
300
|
function _isFeatureLineWithRefs(featureLine) {
|
|
271
|
-
return (
|
|
301
|
+
return (
|
|
302
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
303
|
+
featureLine.child_features !== undefined &&
|
|
304
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
272
305
|
featureLine.derived_features !== undefined);
|
|
273
306
|
}
|
|
274
307
|
//# 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":";AAAA,6DAA6D;AAC7D,qEAAqE;;
|
|
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,21 @@ 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
|
+
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 } 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,56 @@ 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
|
+
}
|
|
25
78
|
//# 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":"AAAA,OAAO,MAAM,MAAM,YAAY,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAS5C;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACvC,4BAA4B,EAAE,IAAI;QAClC,aAAa,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,CAAA;IAEf,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAa;IAC1C,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACvC,4BAA4B,EAAE,IAAI;QAClC,aAAa,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,CAAA;IAEf,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QACvC,4BAA4B,EAAE,IAAI;QAClC,aAAa,EAAE,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAA;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAoB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACpE,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC5B,WAAW,CAAC,UAAU,GAAG,EAAE,CAAA;YAC7B,CAAC;YACD,WAAW,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9D,CAAC;QACD,MAAM,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,CAAA;IAEf,OAAO,KAAK,CAAA;AACd,CAAC"}
|
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, parseStringSync } from './api.ts';
|
|
2
|
+
export { parseArraySync, parseRecordsSync, 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, parseStringSync } from "./api.js";
|
|
2
|
+
export { parseArraySync, parseRecordsSync, 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,eAAe,EAAE,MAAM,UAAU,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,gBAAgB,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;
|