UNPKG

msync

Version:

Easily manage building and syncing multiple node-modules in a flexibly defined workspace.

104 lines (103 loc) 4.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.logUpdate = exports.module = void 0; var tslib_1 = require("tslib"); var Rsync = require("rsync"); var libs_1 = require("./libs"); function rsyncExecute(rsync) { return new Promise(function (resolve, reject) { rsync.execute(function (err, code, cmd) { if (err) { reject(err); } else { resolve({ err: err, code: code, cmd: cmd }); } }); }); } function module(from, to) { return tslib_1.__awaiter(this, void 0, void 0, function () { var IGNORE, FROM_DIR, TO_DIR, rsync; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: IGNORE = ['.DS_Store', 'node_modules', '.tmp']; FROM_DIR = libs_1.fs.join(from.dir, '/'); TO_DIR = libs_1.fs.join(to.dir, 'node_modules', from.name, '/'); return [4, libs_1.fs.ensureDir(TO_DIR)]; case 1: _a.sent(); rsync = new Rsync() .source(FROM_DIR) .destination(TO_DIR) .exclude(IGNORE) .delete() .flags('aW'); return [4, rsyncExecute(rsync)]; case 2: _a.sent(); return [2]; } }); }); } exports.module = module; function logUpdate(target) { return tslib_1.__awaiter(this, void 0, void 0, function () { var dir, parentDir, _a, file, getTotal, total, text; var _this = this; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (target.isIgnored || !target.tsconfig) { return [2]; } dir = libs_1.fs.join(target.dir, target.tsconfig.compilerOptions.outDir || ''); parentDir = libs_1.fs.basename(libs_1.fs.dirname(dir)); _a = parentDir !== 'node_modules'; if (_a) return [3, 2]; return [4, libs_1.fs.pathExists(dir)]; case 1: _a = !(_b.sent()); _b.label = 2; case 2: if (_a) { return [2]; } file = libs_1.fs.join(dir, '.__msync.js'); getTotal = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { var text, _i, _a, line; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4, libs_1.fs.pathExists(file)]; case 1: if (!(_b.sent())) { return [2, 0]; } return [4, libs_1.fs.readFile(file)]; case 2: text = (_b.sent()).toString(); for (_i = 0, _a = text.split('\n'); _i < _a.length; _i++) { line = _a[_i]; if (line.trim().startsWith('saveTotal')) { return [2, parseInt(line.split(':')[1], 10) + 1]; } } return [2, 0]; } }); }); }; return [4, getTotal()]; case 3: total = _b.sent(); text = "\n/*\n TEMPORARY FILE GENERATED BY\n MSync (https://github.com/philcockfield/msync)\n This file causes [nodemon] to restart. It is safe to delete this file.\n\n saveTotal: ".concat(total, "\n*/\n"); return [4, libs_1.fs.writeFile(file, text)]; case 4: _b.sent(); return [2]; } }); }); } exports.logUpdate = logUpdate;