@neo-one/node-data-backup
Version:
NEO•ONE node data path backup and restore.
38 lines (36 loc) • 3.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const tar = tslib_1.__importStar(require("tar"));
exports.upload = async ({ dataPath, fileList, write, }) => {
await new Promise((resolve, reject) => {
const read = tar.create({
gzip: true,
cwd: dataPath,
strict: true,
portable: true,
}, fileList);
let done = false;
const cleanup = () => {
done = true;
};
const onDone = () => {
if (!done) {
cleanup();
resolve();
}
};
const onError = (error) => {
if (!done) {
cleanup();
reject(error);
}
};
read.once('error', onError);
write.once('error', onError);
write.once('finish', onDone);
write.once('complete', onDone);
read.pipe(write);
});
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVwbG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFBMkI7QUFFZCxRQUFBLE1BQU0sR0FBRyxLQUFLLEVBQUUsRUFDM0IsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEdBS04sRUFBRSxFQUFFO0lBQ0gsTUFBTSxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMxQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUNyQjtZQUNFLElBQUksRUFBRSxJQUFJO1lBQ1YsR0FBRyxFQUFFLFFBQVE7WUFDYixNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJO1NBQ2YsRUFDRCxRQUFRLENBQ1QsQ0FBQztRQUVGLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNqQixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU8sRUFBRSxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUM7UUFFRixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwiZmlsZSI6Im5lby1vbmUtbm9kZS1kYXRhLWJhY2t1cC9zcmMvcHJvdmlkZXIvdXBsb2FkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGFyIGZyb20gJ3Rhcic7XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQgPSBhc3luYyAoe1xuICBkYXRhUGF0aCxcbiAgZmlsZUxpc3QsXG4gIHdyaXRlLFxufToge1xuICByZWFkb25seSBkYXRhUGF0aDogc3RyaW5nO1xuICByZWFkb25seSBmaWxlTGlzdDogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlYWRvbmx5IHdyaXRlOiBXcml0YWJsZTtcbn0pID0+IHtcbiAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWQgPSB0YXIuY3JlYXRlKFxuICAgICAge1xuICAgICAgICBnemlwOiB0cnVlLFxuICAgICAgICBjd2Q6IGRhdGFQYXRoLFxuICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgIHBvcnRhYmxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGZpbGVMaXN0LFxuICAgICk7XG5cbiAgICBsZXQgZG9uZSA9IGZhbHNlO1xuICAgIGNvbnN0IGNsZWFudXAgPSAoKSA9PiB7XG4gICAgICBkb25lID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25Eb25lID0gKCkgPT4ge1xuICAgICAgaWYgKCFkb25lKSB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbkVycm9yID0gKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgaWYgKCFkb25lKSB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmVhZC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgIHdyaXRlLm9uY2UoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgd3JpdGUub25jZSgnZmluaXNoJywgb25Eb25lKTtcbiAgICB3cml0ZS5vbmNlKCdjb21wbGV0ZScsIG9uRG9uZSk7XG5cbiAgICByZWFkLnBpcGUod3JpdGUpO1xuICB9KTtcbn07XG4iXX0=