@platform/ts
Version:
TypesScript build, prepare and publish toolchain.
63 lines (62 loc) • 2.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.changeExtensions = void 0;
var tslib_1 = require("tslib");
var libs_1 = require("./libs");
function changeExtensions(args) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var dir, formatExtension, from, to, rename, _i, _a, name_1, path, info, isFile;
var _this = this;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
dir = args.dir;
formatExtension = function (ext) { return ".".concat(ext.replace(/^\./, '')); };
from = formatExtension(args.from);
to = formatExtension(args.to);
rename = function (before) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var after;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
after = "".concat(before.substr(0, before.length - from.length)).concat(to);
return [4, libs_1.fs.rename(before, after)];
case 1:
_a.sent();
return [2];
}
});
}); };
_i = 0;
return [4, libs_1.fs.readdir(args.dir)];
case 1:
_a = _b.sent();
_b.label = 2;
case 2:
if (!(_i < _a.length)) return [3, 8];
name_1 = _a[_i];
path = libs_1.fs.join(dir, name_1);
return [4, libs_1.fs.lstat(path)];
case 3:
info = _b.sent();
isFile = info.isFile();
if (!(isFile && name_1.endsWith(from))) return [3, 5];
return [4, rename(path)];
case 4:
_b.sent();
_b.label = 5;
case 5:
if (!(!isFile && info.isDirectory())) return [3, 7];
return [4, changeExtensions({ dir: libs_1.fs.join(dir, name_1), from: from, to: to })];
case 6:
_b.sent();
_b.label = 7;
case 7:
_i++;
return [3, 2];
case 8: return [2];
}
});
});
}
exports.changeExtensions = changeExtensions;
;