UNPKG

3.68 kBJavaScriptView Raw
1import * as tar from 'tar';
2export const upload = async ({ dataPath, fileList, write, }) => {
3 await new Promise((resolve, reject) => {
4 const read = tar.create({
5 gzip: true,
6 cwd: dataPath,
7 strict: true,
8 portable: true,
9 }, fileList);
10 let done = false;
11 const cleanup = () => {
12 done = true;
13 };
14 const onDone = () => {
15 if (!done) {
16 cleanup();
17 resolve();
18 }
19 };
20 const onError = (error) => {
21 if (!done) {
22 cleanup();
23 reject(error);
24 }
25 };
26 read.once('error', onError);
27 write.once('error', onError);
28 write.once('finish', onDone);
29 write.once('complete', onDone);
30 read.pipe(write);
31 });
32};
33
34//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssR0FBRyxNQUFNLEtBQUssQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsS0FBSyxHQUtOLEVBQUUsRUFBRTtJQUNILE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDMUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FDckI7WUFDRSxJQUFJLEVBQUUsSUFBSTtZQUNWLEdBQUcsRUFBRSxRQUFRO1lBQ2IsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtTQUNmLEVBQ0QsUUFBUSxDQUNULENBQUM7UUFFRixJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ25CLElBQUksR0FBRyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDVCxPQUFPLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUIsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLW5vZGUtZGF0YS1iYWNrdXAvc3JjL3Byb3ZpZGVyL3VwbG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCAqIGFzIHRhciBmcm9tICd0YXInO1xuXG5leHBvcnQgY29uc3QgdXBsb2FkID0gYXN5bmMgKHtcbiAgZGF0YVBhdGgsXG4gIGZpbGVMaXN0LFxuICB3cml0ZSxcbn06IHtcbiAgcmVhZG9ubHkgZGF0YVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgZmlsZUxpc3Q6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSB3cml0ZTogV3JpdGFibGU7XG59KSA9PiB7XG4gIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByZWFkID0gdGFyLmNyZWF0ZShcbiAgICAgIHtcbiAgICAgICAgZ3ppcDogdHJ1ZSxcbiAgICAgICAgY3dkOiBkYXRhUGF0aCxcbiAgICAgICAgc3RyaWN0OiB0cnVlLFxuICAgICAgICBwb3J0YWJsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBmaWxlTGlzdCxcbiAgICApO1xuXG4gICAgbGV0IGRvbmUgPSBmYWxzZTtcbiAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgZG9uZSA9IHRydWU7XG4gICAgfTtcblxuICAgIGNvbnN0IG9uRG9uZSA9ICgpID0+IHtcbiAgICAgIGlmICghZG9uZSkge1xuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgb25FcnJvciA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICghZG9uZSkge1xuICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJlYWQub25jZSgnZXJyb3InLCBvbkVycm9yKTtcbiAgICB3cml0ZS5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgIHdyaXRlLm9uY2UoJ2ZpbmlzaCcsIG9uRG9uZSk7XG4gICAgd3JpdGUub25jZSgnY29tcGxldGUnLCBvbkRvbmUpO1xuXG4gICAgcmVhZC5waXBlKHdyaXRlKTtcbiAgfSk7XG59O1xuIl19