@jbrowse/img 2.2.0 → 2.2.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.
Files changed (51) hide show
  1. package/README.md +1 -4
  2. package/dist/bin.d.ts +2 -0
  3. package/dist/bin.js +2 -2
  4. package/dist/bin.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.js +206 -202
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.testmod.d.ts +1 -0
  9. package/dist/index.testmod.js +165 -206
  10. package/dist/index.testmod.js.map +1 -0
  11. package/dist/parseArgv.d.ts +8 -0
  12. package/dist/parseArgv.js +42 -33
  13. package/dist/parseArgv.js.map +1 -0
  14. package/dist/parseArgv.testmod.d.ts +1 -0
  15. package/dist/parseArgv.testmod.js +25 -6
  16. package/dist/parseArgv.testmod.js.map +1 -0
  17. package/dist/renderRegion.d.ts +35 -0
  18. package/dist/renderRegion.js +345 -425
  19. package/dist/renderRegion.js.map +1 -0
  20. package/dist/util.d.ts +5 -0
  21. package/dist/util.js +31 -9
  22. package/dist/util.js.map +1 -0
  23. package/esm/bin.d.ts +2 -0
  24. package/esm/bin.js +4 -0
  25. package/esm/bin.js.map +1 -0
  26. package/esm/index.d.ts +1 -0
  27. package/esm/index.js +185 -0
  28. package/esm/index.js.map +1 -0
  29. package/esm/index.testmod.d.ts +1 -0
  30. package/esm/index.testmod.js +141 -0
  31. package/esm/index.testmod.js.map +1 -0
  32. package/esm/parseArgv.d.ts +8 -0
  33. package/esm/parseArgv.js +42 -0
  34. package/esm/parseArgv.js.map +1 -0
  35. package/esm/parseArgv.testmod.d.ts +1 -0
  36. package/esm/parseArgv.testmod.js +24 -0
  37. package/esm/parseArgv.testmod.js.map +1 -0
  38. package/esm/renderRegion.d.ts +35 -0
  39. package/esm/renderRegion.js +366 -0
  40. package/esm/renderRegion.js.map +1 -0
  41. package/esm/util.d.ts +5 -0
  42. package/esm/util.js +25 -0
  43. package/esm/util.js.map +1 -0
  44. package/package.json +15 -10
  45. package/src/bin.js +2 -0
  46. package/src/index.testmod.js +163 -0
  47. package/src/index.ts +209 -0
  48. package/src/parseArgv.testmod.js +29 -0
  49. package/src/parseArgv.ts +48 -0
  50. package/src/renderRegion.tsx +456 -0
  51. package/src/util.ts +32 -0
@@ -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,185 @@
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
+ yargs
59
+ .command('jb2export', 'Creates a jbrowse 2 image snapshot')
60
+ .option('config', {
61
+ description: 'Path to config file',
62
+ type: 'string',
63
+ })
64
+ .option('session', {
65
+ description: 'Path to session file',
66
+ type: 'string',
67
+ })
68
+ .option('assembly', {
69
+ description: 'Path to an assembly configuration, or a name of an assembly in the configFile',
70
+ type: 'string',
71
+ })
72
+ .option('tracks', {
73
+ description: 'Path to tracks portion of a session',
74
+ type: 'string',
75
+ })
76
+ .option('loc', {
77
+ description: 'A locstring to navigate to, or --loc all to view the whole genome',
78
+ type: 'string',
79
+ })
80
+ .option('fasta', {
81
+ description: 'Supply a fasta for the assembly',
82
+ type: 'string',
83
+ })
84
+ .option('aliases', {
85
+ 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',
86
+ type: 'string',
87
+ })
88
+ .option('width', {
89
+ description: 'Set the width of the window that jbrowse renders to, default: 1500px',
90
+ type: 'number',
91
+ })
92
+ .option('pngwidth', {
93
+ description: 'Set the width of the png canvas if using png output, default 2048px',
94
+ type: 'number',
95
+ default: 2048,
96
+ })
97
+ // track types
98
+ .option('configtracks', {
99
+ description: 'A list of track labels from a config file',
100
+ type: 'array',
101
+ })
102
+ .option('bam', {
103
+ description: 'A bam file, flag --bam can be used multiple times to specify multiple bam files',
104
+ type: 'array',
105
+ })
106
+ .option('bigwig', {
107
+ description: 'A bigwig file, the --bigwig flag can be used multiple times to specify multiple bigwig files',
108
+ type: 'array',
109
+ })
110
+ .option('cram', {
111
+ description: 'A cram file, the --cram flag can be used multiple times to specify multiple cram files',
112
+ type: 'array',
113
+ })
114
+ .option('vcfgz', {
115
+ description: 'A tabixed VCF, the --vcfgz flag can be used multiple times to specify multiple vcfgz files',
116
+ type: 'array',
117
+ })
118
+ .option('gffgz', {
119
+ description: 'A tabixed GFF, the --gffgz can be used multiple times to specify multiple gffgz files',
120
+ type: 'array',
121
+ })
122
+ .option('hic', {
123
+ description: 'A .hic file, the --hic can be used multiple times to specify multiple hic files',
124
+ type: 'array',
125
+ })
126
+ .option('bigbed', {
127
+ description: 'A .bigBed file, the --bigbed can be used multiple times to specify multiple bigbed files',
128
+ type: 'array',
129
+ })
130
+ .option('bedgz', {
131
+ description: 'A bed tabix file, the --bedgz can be used multiple times to specify multiple bedtabix files',
132
+ type: 'array',
133
+ })
134
+ // other
135
+ .option('out', {
136
+ 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',
137
+ type: 'string',
138
+ default: 'out.svg',
139
+ })
140
+ .option('noRasterize', {
141
+ description: 'Use full SVG rendering with no rasterized layers, this can substantially increase filesize',
142
+ type: 'boolean',
143
+ })
144
+ .option('defaultSession', {
145
+ description: 'Use the defaultSession from config.json',
146
+ type: 'boolean',
147
+ })
148
+ .help()
149
+ .alias('help', 'h')
150
+ .alias('width', 'w').argv;
151
+ const args = standardizeArgv(parseArgv(process.argv.slice(2)), [
152
+ 'bam',
153
+ 'cram',
154
+ 'vcfgz',
155
+ 'hic',
156
+ 'bigwig',
157
+ 'bigbed',
158
+ 'bedgz',
159
+ 'gffgz',
160
+ 'configtracks',
161
+ ]);
162
+ (async () => {
163
+ try {
164
+ const result = await renderRegion(args);
165
+ const { out = 'out.svg', pngwidth = '2048' } = args;
166
+ if (out.endsWith('.png')) {
167
+ convert(result, { out, pngwidth });
168
+ }
169
+ else if (out.endsWith('.pdf')) {
170
+ convert(result, { out, pngwidth }, ['-f', 'pdf']);
171
+ }
172
+ else {
173
+ fs.writeFileSync(out, result);
174
+ }
175
+ // manually exit the process after done rendering because autoruns or
176
+ // something similar otherwise keeps the nodejs process alive xref
177
+ // https://github.com/GMOD/jb2export/issues/6
178
+ process.exit(0);
179
+ }
180
+ catch (e) {
181
+ console.error(e);
182
+ process.exit(1);
183
+ }
184
+ })();
185
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,141 @@
1
+ import { renderRegion } from './renderRegion';
2
+ import fs from 'fs';
3
+ import { JSDOM } from 'jsdom';
4
+ import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';
5
+ import { Image, createCanvas } from 'canvas';
6
+ import fetch, { Headers, Response, Request } from 'node-fetch';
7
+ global.fetch = fetch;
8
+ global.Headers = Headers;
9
+ global.Response = Response;
10
+ global.Request = Request;
11
+ const { document } = new JSDOM(`...`).window;
12
+ global.document = document;
13
+ global.nodeImage = Image;
14
+ global.nodeCreateCanvas = createCanvas;
15
+ xtest('renders a region with --session and --config args', async () => {
16
+ const result = await renderRegion({
17
+ session: require.resolve('../test/clingen_session.json'),
18
+ config: require.resolve('../data/config.json'),
19
+ });
20
+ fs.writeFileSync('svg_from_config_and_session_param.svg', result);
21
+ expect(result).toMatchSnapshot();
22
+ }, 40000);
23
+ xtest('renders a region with --session, --tracks, and --assembly args', async () => {
24
+ const result = await renderRegion({
25
+ session: require.resolve('../test/clingen_session.json'),
26
+ tracks: require.resolve('../data/tracks.json'),
27
+ assembly: require.resolve('../data/assembly.json'),
28
+ });
29
+ fs.writeFileSync('svg_from_separate_session_and_tracks.svg', result);
30
+ expect(result).toMatchSnapshot();
31
+ }, 40000);
32
+ test('renders volvox with variety of args', async () => {
33
+ const fp = f => require.resolve('../data/volvox/' + f);
34
+ console.error = jest.fn();
35
+ const result = await renderRegion({
36
+ fasta: fp('volvox.fa'),
37
+ trackList: [
38
+ ['bam', [fp('volvox-sorted.bam')]],
39
+ ['cram', [fp('volvox-sorted.cram')]],
40
+ ['bigwig', [fp('volvox-sorted.bam.coverage.bw')]],
41
+ ['vcfgz', [fp('volvox.filtered.vcf.gz')]],
42
+ ['gffgz', [fp('volvox.sort.gff3.gz')]],
43
+ ['bigbed', [fp('volvox.bb')]],
44
+ ['bedgz', [fp('volvox-bed12.bed.gz')]],
45
+ ],
46
+ loc: 'ctgA:1000-2000',
47
+ });
48
+ fs.writeFileSync(require.resolve('../test/svg_from_volvox_fasta_and_bam.svg'), result);
49
+ expect(result).toBeTruthy();
50
+ }, 40000);
51
+ xtest('renders human large region with remote urls', async () => {
52
+ const result = await renderRegion({
53
+ fasta: 'https://jbrowse.org/genomes/GRCh38/fasta/hg38.prefix.fa.gz',
54
+ trackList: [
55
+ [
56
+ 'cram',
57
+ [
58
+ 'https://s3.amazonaws.com/jbrowse.org/genomes/GRCh38/skbr3/skbr3.ont.sort.mod.cram',
59
+ 'force:true',
60
+ ],
61
+ ],
62
+ ],
63
+ loc: '1:10,000,000-10,030,000',
64
+ });
65
+ fs.writeFileSync(require.resolve('../test/human_remote_urls_large_region.svg'), result);
66
+ expect(result).toBeTruthy();
67
+ }, 120000);
68
+ xtest('renders volvox with remote urls', async () => {
69
+ const result = await renderRegion({
70
+ fasta: 'https://jbrowse.org/code/jb2/main/test_data/volvox/volvox.fa',
71
+ trackList: [
72
+ [
73
+ 'bam',
74
+ [
75
+ 'https://jbrowse.org/code/jb2/main/test_data/volvox/volvox-sorted.bam',
76
+ ],
77
+ ],
78
+ ],
79
+ loc: 'ctgA:1-1000',
80
+ });
81
+ fs.writeFileSync(require.resolve('../test/volvox_remote_region.svg'), result);
82
+ expect(result).toBeTruthy();
83
+ }, 20000);
84
+ test('renders volvox with variety of args (noRasterize)', async () => {
85
+ const fp = f => require.resolve('../data/volvox/' + f);
86
+ console.error = jest.fn();
87
+ const result = await renderRegion({
88
+ fasta: fp('volvox.fa'),
89
+ trackList: [
90
+ ['bam', [fp('volvox-sorted.bam')]],
91
+ ['cram', [fp('volvox-sorted.cram')]],
92
+ ['bigwig', [fp('volvox-sorted.bam.coverage.bw')]],
93
+ ['vcfgz', [fp('volvox.filtered.vcf.gz')]],
94
+ ['gffgz', [fp('volvox.sort.gff3.gz')]],
95
+ ['bigbed', [fp('volvox.bb')]],
96
+ ['bedgz', [fp('volvox-bed12.bed.gz')]],
97
+ ],
98
+ loc: 'ctgA:1000-2000',
99
+ noRasterize: true,
100
+ });
101
+ fs.writeFileSync(require.resolve('../test/svg_from_volvox_fasta_and_bam_norasterize.svg'), result);
102
+ expect(result).toBeTruthy();
103
+ }, 40000);
104
+ // commented out for using remote files currently
105
+ xtest('configtracks arg with urls', async () => {
106
+ const result = await renderRegion({
107
+ config: 'data/config.json',
108
+ trackList: [['configtracks', ['ncbi_refseq_109_hg38']]],
109
+ assembly: 'GRCh38',
110
+ loc: 'chr1:50,000-60,000',
111
+ });
112
+ fs.writeFileSync('svg_configtracks_simple.svg', result);
113
+ expect(result).toBeTruthy();
114
+ }, 40000);
115
+ test('configtracks arg with local files', async () => {
116
+ const result = await renderRegion({
117
+ config: require.resolve('../data/volvox/config.json'),
118
+ trackList: [['configtracks', ['volvox_sv']]],
119
+ assembly: 'volvox',
120
+ loc: 'ctgA:1-50,000',
121
+ });
122
+ fs.writeFileSync(require.resolve('../test/svg_configtracks_local.svg'), result);
123
+ expect(result).toBeTruthy();
124
+ }, 40000);
125
+ xtest('renders --hic', async () => {
126
+ const result = await renderRegion({
127
+ fasta: 'https://jbrowse.org/genomes/hg19/fasta/hg19.fa.gz',
128
+ trackList: [
129
+ [
130
+ 'hic',
131
+ [
132
+ 'https://s3.amazonaws.com/igv.broadinstitute.org/data/hic/intra_nofrag_30.hic',
133
+ ],
134
+ ],
135
+ ],
136
+ loc: '1:2,000,000-10,000,000',
137
+ });
138
+ fs.writeFileSync(require.resolve('../test/svg_from_human_hic.svg'), result);
139
+ expect(result).toBeTruthy();
140
+ }, 20000);
141
+ //# sourceMappingURL=index.testmod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.testmod.js","sourceRoot":"","sources":["../src/index.testmod.js"],"names":[],"mappings":"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"}
@@ -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 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import { parseArgv } from './parseArgv';
2
+ test('parse', () => {
3
+ const args = '--bam dad.bam color:red --vcf variants.vcf --bam mom.bam --defaultSession --out out.svg --noRasterize';
4
+ expect(parseArgv(args.split(' '))).toEqual([
5
+ ['bam', ['dad.bam', 'color:red']],
6
+ ['vcf', ['variants.vcf']],
7
+ ['bam', ['mom.bam']],
8
+ ['defaultSession', []],
9
+ ['out', ['out.svg']],
10
+ ['noRasterize', []],
11
+ ]);
12
+ });
13
+ test('parse', () => {
14
+ const args = '--bam dad.bam color:red --vcf variants.vcf --bam mom.bam force:true --defaultSession --out out.svg --noRasterize';
15
+ expect(parseArgv(args.split(' '))).toEqual([
16
+ ['bam', ['dad.bam', 'color:red']],
17
+ ['vcf', ['variants.vcf']],
18
+ ['bam', ['mom.bam', 'force:true']],
19
+ ['defaultSession', []],
20
+ ['out', ['out.svg']],
21
+ ['noRasterize', []],
22
+ ]);
23
+ });
24
+ //# sourceMappingURL=parseArgv.testmod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseArgv.testmod.js","sourceRoot":"","sources":["../src/parseArgv.testmod.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;IACjB,MAAM,IAAI,GACR,uGAAuG,CAAA;IAEzG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzC,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACjC,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC;QACzB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACtB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC,aAAa,EAAE,EAAE,CAAC;KACpB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;IACjB,MAAM,IAAI,GACR,kHAAkH,CAAA;IAEpH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzC,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACjC,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,CAAC;QACzB,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAClC,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACtB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC,aAAa,EAAE,EAAE,CAAC;KACpB,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -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 {};