@jbrowse/img 2.2.0 → 2.2.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderRegion.js","sourceRoot":"","sources":["../src/renderRegion.tsx"],"names":[],"mappings":"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"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export declare function booleanize(str: string): boolean;
2
+ export declare function convert(result: string, args: {
3
+ out: string;
4
+ pngwidth?: string;
5
+ }, spawnArgs?: string[]): void;
package/dist/util.js CHANGED
@@ -1,11 +1,33 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.booleanize = void 0;
7
- // nice helper function from https://stackoverflow.com/questions/263965/
8
- var booleanize = function booleanize(string) {
9
- return string === 'false' ? false : !!string;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
11
- exports.booleanize = booleanize;
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.convert = exports.booleanize = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const tmp_1 = __importDefault(require("tmp"));
9
+ const child_process_1 = require("child_process");
10
+ // nice helper function from https://stackoverflow.com/questions/263965/
11
+ function booleanize(str) {
12
+ return str === 'false' ? false : !!str;
13
+ }
14
+ exports.booleanize = booleanize;
15
+ function createTmp() {
16
+ return tmp_1.default.fileSync({
17
+ mode: 0o644,
18
+ prefix: 'prefix-',
19
+ postfix: '.svg',
20
+ });
21
+ }
22
+ function convert(result, args, spawnArgs = []) {
23
+ const { name } = createTmp();
24
+ const { pngwidth = '2048', out } = args;
25
+ fs_1.default.writeFileSync(name, result);
26
+ const a = ['-w', pngwidth, name, '-o', out, ...spawnArgs];
27
+ const ls = (0, child_process_1.spawnSync)('rsvg-convert', a);
28
+ console.error(`rsvg-convert stderr: ${ls.stderr.toString()}`);
29
+ console.log(`rsvg-convert stdout: ${ls.stdout.toString()}`); // eslint-disable-line no-console
30
+ fs_1.default.unlinkSync(name);
31
+ }
32
+ exports.convert = convert;
33
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,8CAAqB;AACrB,iDAAyC;AAEzC,wEAAwE;AACxE,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AACxC,CAAC;AAFD,gCAEC;AAED,SAAS,SAAS;IAChB,OAAO,aAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,MAAc,EACd,IAAwC,EACxC,YAAsB,EAAE;IAExB,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAA;IAC5B,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACvC,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,SAAS,CAAa,CAAA;IACrE,MAAM,EAAE,GAAG,IAAA,yBAAS,EAAC,cAAc,EAAE,CAAC,CAAC,CAAA;IAEvC,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA,CAAC,iCAAiC;IAC7F,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC;AAdD,0BAcC"}
package/esm/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/esm/bin.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ require('./index.js');
4
+ //# sourceMappingURL=bin.js.map
package/esm/bin.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.js"],"names":[],"mappings":";;AACA,OAAO,CAAC,YAAY,CAAC,CAAA"}
package/esm/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';
package/esm/index.js ADDED
@@ -0,0 +1,186 @@
1
+ import fs from 'fs';
2
+ import yargs from 'yargs';
3
+ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';
4
+ import fetch, { Headers, Response, Request } from 'node-fetch';
5
+ import { JSDOM } from 'jsdom';
6
+ import { Image, createCanvas } from 'canvas';
7
+ // locals
8
+ import { standardizeArgv, parseArgv } from './parseArgv';
9
+ import { renderRegion } from './renderRegion';
10
+ import { convert } from './util';
11
+ // @ts-ignore
12
+ global.nodeImage = Image;
13
+ // @ts-ignore
14
+ global.nodeCreateCanvas = createCanvas;
15
+ const { document } = new JSDOM(`...`).window;
16
+ global.document = document;
17
+ // force use of node-fetch polyfill, even if node 18+ fetch is available.
18
+ // native node 18+ fetch currently gives errors related to unidici and
19
+ // Uint8Array:
20
+ //
21
+ //
22
+ // % node --version
23
+ // v18.12.1
24
+ //
25
+ // % jb2export --fasta https://jbrowse.org/code/jb2/main/test_data/volvox/volvox.fa --bam https://jbrowse.org/code/jb2/main/test_data/volvox/volvox-sorted.bam --loc ctgA:1-1000 --out out4.svg
26
+ // [
27
+ // '(node:1387934) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time\n' +
28
+ // '(Use `node --trace-warnings ...` to show where the warning was created)'
29
+ // ]
30
+ // [
31
+ // RangeError: offset is out of bounds
32
+ // at Uint8Array.set (<anonymous>)
33
+ // at Response.arrayBuffer (node:internal/deps/undici/undici:6117:23)
34
+ // at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
35
+ // ]
36
+ // @ts-ignore
37
+ global.fetch = fetch;
38
+ // @ts-ignore
39
+ global.Headers = Headers;
40
+ // @ts-ignore
41
+ global.Response = Response;
42
+ // @ts-ignore
43
+ global.Request = Request;
44
+ const err = console.error;
45
+ console.error = (...p) => {
46
+ if (!`${p[0]}`.match('useLayoutEffect')) {
47
+ err(p);
48
+ }
49
+ };
50
+ const warn = console.warn;
51
+ console.warn = (...p) => {
52
+ if (!`${p[0]}`.match('estimation reached timeout')) {
53
+ warn(p);
54
+ }
55
+ };
56
+ // note: yargs is actually unused except for printing help
57
+ // we do custom command line parsing, see parseArgv.ts
58
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
59
+ yargs
60
+ .command('jb2export', 'Creates a jbrowse 2 image snapshot')
61
+ .option('config', {
62
+ description: 'Path to config file',
63
+ type: 'string',
64
+ })
65
+ .option('session', {
66
+ description: 'Path to session file',
67
+ type: 'string',
68
+ })
69
+ .option('assembly', {
70
+ description: 'Path to an assembly configuration, or a name of an assembly in the configFile',
71
+ type: 'string',
72
+ })
73
+ .option('tracks', {
74
+ description: 'Path to tracks portion of a session',
75
+ type: 'string',
76
+ })
77
+ .option('loc', {
78
+ description: 'A locstring to navigate to, or --loc all to view the whole genome',
79
+ type: 'string',
80
+ })
81
+ .option('fasta', {
82
+ description: 'Supply a fasta for the assembly',
83
+ type: 'string',
84
+ })
85
+ .option('aliases', {
86
+ description: 'Supply aliases for the assembly, e.g. mapping of 1 to chr1. Tab separated file where column 1 matches the names from the FASTA',
87
+ type: 'string',
88
+ })
89
+ .option('width', {
90
+ description: 'Set the width of the window that jbrowse renders to, default: 1500px',
91
+ type: 'number',
92
+ })
93
+ .option('pngwidth', {
94
+ description: 'Set the width of the png canvas if using png output, default 2048px',
95
+ type: 'number',
96
+ default: 2048,
97
+ })
98
+ // track types
99
+ .option('configtracks', {
100
+ description: 'A list of track labels from a config file',
101
+ type: 'array',
102
+ })
103
+ .option('bam', {
104
+ description: 'A bam file, flag --bam can be used multiple times to specify multiple bam files',
105
+ type: 'array',
106
+ })
107
+ .option('bigwig', {
108
+ description: 'A bigwig file, the --bigwig flag can be used multiple times to specify multiple bigwig files',
109
+ type: 'array',
110
+ })
111
+ .option('cram', {
112
+ description: 'A cram file, the --cram flag can be used multiple times to specify multiple cram files',
113
+ type: 'array',
114
+ })
115
+ .option('vcfgz', {
116
+ description: 'A tabixed VCF, the --vcfgz flag can be used multiple times to specify multiple vcfgz files',
117
+ type: 'array',
118
+ })
119
+ .option('gffgz', {
120
+ description: 'A tabixed GFF, the --gffgz can be used multiple times to specify multiple gffgz files',
121
+ type: 'array',
122
+ })
123
+ .option('hic', {
124
+ description: 'A .hic file, the --hic can be used multiple times to specify multiple hic files',
125
+ type: 'array',
126
+ })
127
+ .option('bigbed', {
128
+ description: 'A .bigBed file, the --bigbed can be used multiple times to specify multiple bigbed files',
129
+ type: 'array',
130
+ })
131
+ .option('bedgz', {
132
+ description: 'A bed tabix file, the --bedgz can be used multiple times to specify multiple bedtabix files',
133
+ type: 'array',
134
+ })
135
+ // other
136
+ .option('out', {
137
+ description: 'File to output to. Default: out.svg. If a filename with extension .png is supplied the program will try to automatically execute rsvg-convert to convert it to png',
138
+ type: 'string',
139
+ default: 'out.svg',
140
+ })
141
+ .option('noRasterize', {
142
+ description: 'Use full SVG rendering with no rasterized layers, this can substantially increase filesize',
143
+ type: 'boolean',
144
+ })
145
+ .option('defaultSession', {
146
+ description: 'Use the defaultSession from config.json',
147
+ type: 'boolean',
148
+ })
149
+ .help()
150
+ .alias('help', 'h')
151
+ .alias('width', 'w').argv;
152
+ const args = standardizeArgv(parseArgv(process.argv.slice(2)), [
153
+ 'bam',
154
+ 'cram',
155
+ 'vcfgz',
156
+ 'hic',
157
+ 'bigwig',
158
+ 'bigbed',
159
+ 'bedgz',
160
+ 'gffgz',
161
+ 'configtracks',
162
+ ]);
163
+ (async () => {
164
+ try {
165
+ const result = await renderRegion(args);
166
+ const { out = 'out.svg', pngwidth = '2048' } = args;
167
+ if (out.endsWith('.png')) {
168
+ convert(result, { out, pngwidth });
169
+ }
170
+ else if (out.endsWith('.pdf')) {
171
+ convert(result, { out, pngwidth }, ['-f', 'pdf']);
172
+ }
173
+ else {
174
+ fs.writeFileSync(out, result);
175
+ }
176
+ // manually exit the process after done rendering because autoruns or
177
+ // something similar otherwise keeps the nodejs process alive xref
178
+ // https://github.com/GMOD/jb2export/issues/6
179
+ process.exit(0);
180
+ }
181
+ catch (e) {
182
+ console.error(e);
183
+ process.exit(1);
184
+ }
185
+ })();
186
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,6DAA6D,CAAA;AACpE,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE5C,SAAS;AACT,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,YAAY,EAAQ,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,aAAa;AACb,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;AACxB,aAAa;AACb,MAAM,CAAC,gBAAgB,GAAG,YAAY,CAAA;AAEtC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;AAC5C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE1B,yEAAyE;AACzE,sEAAsE;AACtE,cAAc;AACd,EAAE;AACF,EAAE;AACF,mBAAmB;AACnB,WAAW;AACX,EAAE;AACF,+LAA+L;AAC/L,IAAI;AACJ,8HAA8H;AAC9H,gFAAgF;AAChF,IAAI;AACJ,IAAI;AACJ,wCAAwC;AACxC,wCAAwC;AACxC,2EAA2E;AAC3E,sFAAsF;AACtF,IAAI;AAEJ,aAAa;AACb,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;AACpB,aAAa;AACb,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;AACxB,aAAa;AACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAC1B,aAAa;AACb,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;AAExB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAA;AACzB,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,CAAY,EAAE,EAAE;IAClC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;QACvC,GAAG,CAAC,CAAC,CAAC,CAAA;KACP;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;AACzB,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,CAAY,EAAE,EAAE;IACjC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE;QAClD,IAAI,CAAC,CAAC,CAAC,CAAA;KACR;AACH,CAAC,CAAA;AAED,0DAA0D;AAC1D,sDAAsD;AACtD,mEAAmE;AACnE,KAAK;KACF,OAAO,CAAC,WAAW,EAAE,oCAAoC,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EAAE,qBAAqB;IAClC,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACjB,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,UAAU,EAAE;IAClB,WAAW,EACT,+EAA+E;IACjF,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EAAE,qCAAqC;IAClD,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EACT,mEAAmE;IACrE,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACjB,WAAW,EACT,gIAAgI;IAClI,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,WAAW,EACT,sEAAsE;IACxE,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,MAAM,CAAC,UAAU,EAAE;IAClB,WAAW,EACT,qEAAqE;IACvE,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;CACd,CAAC;IACF,cAAc;KACb,MAAM,CAAC,cAAc,EAAE;IACtB,WAAW,EAAE,2CAA2C;IACxD,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EACT,iFAAiF;IACnF,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EACT,8FAA8F;IAChG,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,MAAM,EAAE;IACd,WAAW,EACT,wFAAwF;IAC1F,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,WAAW,EACT,4FAA4F;IAC9F,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,WAAW,EACT,uFAAuF;IACzF,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EACT,iFAAiF;IACnF,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EACT,0FAA0F;IAC5F,IAAI,EAAE,OAAO;CACd,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,WAAW,EACT,6FAA6F;IAC/F,IAAI,EAAE,OAAO;CACd,CAAC;IAEF,QAAQ;KACP,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EACT,oKAAoK;IACtK,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,SAAS;CACnB,CAAC;KACD,MAAM,CAAC,aAAa,EAAE;IACrB,WAAW,EACT,4FAA4F;IAC9F,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,MAAM,CAAC,gBAAgB,EAAE;IACxB,WAAW,EAAE,yCAAyC;IACtD,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,IAAI,EAAE;KACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;KAClB,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAA;AAE3B,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;IAC7D,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,cAAc;CACf,CAAC,CAGD;AAAA,CAAC,KAAK,IAAI,EAAE;IACX,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAY,CAAC,CAAA;QAC/C,MAAM,EAAE,GAAG,GAAG,SAAS,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;QACnD,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACxB,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;SACnC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC/B,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;SAClD;aAAM;YACL,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;SAC9B;QAED,qEAAqE;QACrE,kEAAkE;QAClE,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC,CAAC,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ export type Entry = [string, string[]];
2
+ export declare function parseArgv(argv: string[]): Entry[];
3
+ export declare function standardizeArgv(args: Entry[], trackTypes: string[]): {
4
+ [key: string]: unknown;
5
+ trackList: Entry[];
6
+ out?: string | undefined;
7
+ pngwidth?: string | undefined;
8
+ };
@@ -0,0 +1,42 @@
1
+ // example (see parseArgv.test.js):
2
+ // const args =
3
+ // '--bam dad.bam color:red --vcf variants.vcf --bam mom.bam --defaultSession --out out.svg --noRasterize'
4
+ //
5
+ // expect(parseArgv(args.split(' '))).toEqual([
6
+ // ['bam', ['dad.bam', 'color:red']],
7
+ // ['vcf', ['variants.vcf']],
8
+ // ['bam', ['mom.bam']],
9
+ // ['defaultSession', []],
10
+ // ['out', ['out.svg']],
11
+ // ['noRasterize', []],
12
+ // ])
13
+ export function parseArgv(argv) {
14
+ const map = [];
15
+ while (argv.length) {
16
+ const val = argv[0].slice(2);
17
+ argv = argv.slice(1);
18
+ const next = argv.findIndex(arg => arg.startsWith('-'));
19
+ if (next !== -1) {
20
+ map.push([val, argv.slice(0, next)]);
21
+ argv = argv.slice(next);
22
+ }
23
+ else {
24
+ map.push([val, argv]);
25
+ break;
26
+ }
27
+ }
28
+ return map;
29
+ }
30
+ export function standardizeArgv(args, trackTypes) {
31
+ const result = { trackList: [] };
32
+ args.forEach(arg => {
33
+ if (trackTypes.includes(arg[0])) {
34
+ result.trackList.push(arg);
35
+ }
36
+ else {
37
+ result[arg[0]] = arg[1][0] || true;
38
+ }
39
+ });
40
+ return result;
41
+ }
42
+ //# sourceMappingURL=parseArgv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseArgv.js","sourceRoot":"","sources":["../src/parseArgv.ts"],"names":[],"mappings":"AAEA,mCAAmC;AACnC,eAAe;AACf,4GAA4G;AAC5G,EAAE;AACF,+CAA+C;AAC/C,uCAAuC;AACvC,+BAA+B;AAC/B,0BAA0B;AAC1B,4BAA4B;AAC5B,0BAA0B;AAC1B,yBAAyB;AACzB,KAAK;AACL,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,GAAG,GAAG,EAAa,CAAA;IACzB,OAAO,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QAEvD,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;YACf,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACxB;aAAM;YACL,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;YACrB,MAAK;SACN;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,UAAoB;IACjE,MAAM,MAAM,GAAG,EAAE,SAAS,EAAE,EAAE,EAK7B,CAAA;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACjB,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/B,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SAC3B;aAAM;YACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;SACnC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Entry } from './parseArgv';
2
+ export interface Opts {
3
+ noRasterize?: boolean;
4
+ loc?: string;
5
+ width?: number;
6
+ session?: string;
7
+ assembly?: string;
8
+ config?: string;
9
+ fasta?: string;
10
+ aliases?: string;
11
+ cytobands?: string;
12
+ defaultSession?: string;
13
+ trackList: Entry[];
14
+ tracks?: string;
15
+ }
16
+ interface Assembly {
17
+ name: string;
18
+ sequence: Record<string, unknown>;
19
+ refNameAliases?: Record<string, unknown>;
20
+ cytobands?: Record<string, unknown>;
21
+ }
22
+ interface Track {
23
+ trackId: string;
24
+ [key: string]: unknown;
25
+ }
26
+ interface Config {
27
+ assemblies: Assembly[];
28
+ assembly: Assembly;
29
+ tracks: Track[];
30
+ [key: string]: unknown;
31
+ }
32
+ export declare function readData({ assembly: asm, config, session, fasta, aliases, cytobands, defaultSession, tracks, trackList, }: Opts): Config;
33
+ export declare const muiCache: import("@emotion/utils").EmotionCache;
34
+ export declare function renderRegion(opts: Opts): Promise<string>;
35
+ export {};