-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtask.js
42 lines (35 loc) · 1.22 KB
/
task.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { fork } from 'node:child_process'
import path from 'node:path'
const libDir = path.join(process.cwd(), 'lib')
function task(script, args) {
return new Promise((resolve, reject) => {
const child = fork(`${libDir}/${script}`, args)
child.on('message', resolve)
child.on('error', reject)
})
}
export function parseTSV(id, rootDir) {
const input = `${rootDir}/${id}`
const output = `${rootDir}/${id}.json`
return task('tsv-parser.js', [input, output])
}
export function download(id, rootDir) {
const input = `${rootDir}/${id}.json`
const output = `${rootDir}/${id}.ziplist`
return task('downloader.js', [input, output])
}
export function decompress(id, rootDir) {
const input = `${rootDir}/${id}.ziplist`
const output = `${rootDir}/decompressed/`
return task('decompressor.js', [input, output])
}
export function parseCustomizationData(id, rootDir) {
const input = `${rootDir}/decompressed`
const output = `${rootDir}/${id}.customization.json`
return task('customization-data-parser.js', [input, output])
}
export function generateCSV(id, rootDir) {
const input = `${rootDir}/${id}.json`
const output = `${rootDir}/${id}.customization.json`
return task('csv-generator.js', [input, output])
}