UNPKG

2.67 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.changeExtensions = void 0;
4var tslib_1 = require("tslib");
5var libs_1 = require("./libs");
6function changeExtensions(args) {
7 return tslib_1.__awaiter(this, void 0, void 0, function () {
8 var dir, formatExtension, from, to, rename, _i, _a, name_1, path, info, isFile;
9 var _this = this;
10 return tslib_1.__generator(this, function (_b) {
11 switch (_b.label) {
12 case 0:
13 dir = args.dir;
14 formatExtension = function (ext) { return "." + ext.replace(/^\./, ''); };
15 from = formatExtension(args.from);
16 to = formatExtension(args.to);
17 rename = function (before) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
18 var after;
19 return tslib_1.__generator(this, function (_a) {
20 switch (_a.label) {
21 case 0:
22 after = "" + before.substr(0, before.length - from.length) + to;
23 return [4, libs_1.fs.rename(before, after)];
24 case 1:
25 _a.sent();
26 return [2];
27 }
28 });
29 }); };
30 _i = 0;
31 return [4, libs_1.fs.readdir(args.dir)];
32 case 1:
33 _a = _b.sent();
34 _b.label = 2;
35 case 2:
36 if (!(_i < _a.length)) return [3, 8];
37 name_1 = _a[_i];
38 path = libs_1.fs.join(dir, name_1);
39 return [4, libs_1.fs.lstat(path)];
40 case 3:
41 info = _b.sent();
42 isFile = info.isFile();
43 if (!(isFile && name_1.endsWith(from))) return [3, 5];
44 return [4, rename(path)];
45 case 4:
46 _b.sent();
47 _b.label = 5;
48 case 5:
49 if (!(!isFile && info.isDirectory())) return [3, 7];
50 return [4, changeExtensions({ dir: libs_1.fs.join(dir, name_1), from: from, to: to })];
51 case 6:
52 _b.sent();
53 _b.label = 7;
54 case 7:
55 _i++;
56 return [3, 2];
57 case 8: return [2];
58 }
59 });
60 });
61}
62exports.changeExtensions = changeExtensions;