@pristine-ts/file 0.0.363 → 0.0.365
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/interfaces/interfaces.js +2 -0
- package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
- package/dist/lib/cjs/interfaces/replace-in-file-operation.interface.js +3 -0
- package/dist/lib/cjs/interfaces/replace-in-file-operation.interface.js.map +1 -0
- package/dist/lib/cjs/interfaces/replace-in-file.interface.js +3 -0
- package/dist/lib/cjs/interfaces/replace-in-file.interface.js.map +1 -0
- package/dist/lib/cjs/managers/directory.manager.js +54 -4
- package/dist/lib/cjs/managers/directory.manager.js.map +1 -1
- package/dist/lib/cjs/managers/file.manager.js +29 -0
- package/dist/lib/cjs/managers/file.manager.js.map +1 -1
- package/dist/lib/cjs/options/directory-copy.options.js +3 -0
- package/dist/lib/cjs/options/directory-copy.options.js.map +1 -0
- package/dist/lib/cjs/options/options.js +1 -0
- package/dist/lib/cjs/options/options.js.map +1 -1
- package/dist/lib/esm/interfaces/interfaces.js +2 -0
- package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
- package/dist/lib/esm/interfaces/replace-in-file-operation.interface.js +2 -0
- package/dist/lib/esm/interfaces/replace-in-file-operation.interface.js.map +1 -0
- package/dist/lib/esm/interfaces/replace-in-file.interface.js +2 -0
- package/dist/lib/esm/interfaces/replace-in-file.interface.js.map +1 -0
- package/dist/lib/esm/managers/directory.manager.js +30 -3
- package/dist/lib/esm/managers/directory.manager.js.map +1 -1
- package/dist/lib/esm/managers/file.manager.js +29 -0
- package/dist/lib/esm/managers/file.manager.js.map +1 -1
- package/dist/lib/esm/options/directory-copy.options.js +2 -0
- package/dist/lib/esm/options/directory-copy.options.js.map +1 -0
- package/dist/lib/esm/options/options.js +1 -0
- package/dist/lib/esm/options/options.js.map +1 -1
- package/dist/types/interfaces/interfaces.d.ts +2 -0
- package/dist/types/interfaces/replace-in-file-operation.interface.d.ts +10 -0
- package/dist/types/interfaces/replace-in-file.interface.d.ts +6 -0
- package/dist/types/managers/directory.manager.d.ts +5 -0
- package/dist/types/managers/file.manager.d.ts +3 -0
- package/dist/types/options/directory-copy.options.d.ts +5 -0
- package/dist/types/options/options.d.ts +1 -0
- package/package.json +7 -7
|
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./file-cursor.interface"), exports);
|
|
18
18
|
__exportStar(require("./file-info.interface"), exports);
|
|
19
|
+
__exportStar(require("./replace-in-file.interface"), exports);
|
|
20
|
+
__exportStar(require("./replace-in-file-operation.interface"), exports);
|
|
19
21
|
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC;AACtC,8DAA4C;AAC5C,wEAAsD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-in-file-operation.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/replace-in-file-operation.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-in-file.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/replace-in-file.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
2
18
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
20
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
21
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
22
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
23
|
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
25
|
+
if (mod && mod.__esModule) return mod;
|
|
26
|
+
var result = {};
|
|
27
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
28
|
+
__setModuleDefault(result, mod);
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
32
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
33
|
+
};
|
|
8
34
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
35
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
36
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -24,10 +50,13 @@ const tsyringe_1 = require("tsyringe");
|
|
|
24
50
|
const match_type_enum_1 = require("../enums/match-type.enum");
|
|
25
51
|
const types_enum_1 = require("../enums/types.enum");
|
|
26
52
|
const directory_list_result_enum_1 = require("../enums/directory-list-result.enum");
|
|
27
|
-
const fs_1 = require("fs");
|
|
28
|
-
const fs_2 = __importDefault(require("fs"));
|
|
53
|
+
const fs_1 = __importStar(require("fs"));
|
|
29
54
|
const path_1 = __importDefault(require("path"));
|
|
55
|
+
const file_manager_1 = require("./file.manager");
|
|
30
56
|
let DirectoryManager = class DirectoryManager {
|
|
57
|
+
constructor(fileManager) {
|
|
58
|
+
this.fileManager = fileManager;
|
|
59
|
+
}
|
|
31
60
|
listRecursively(dir, options) {
|
|
32
61
|
var _a;
|
|
33
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -175,9 +204,29 @@ let DirectoryManager = class DirectoryManager {
|
|
|
175
204
|
}
|
|
176
205
|
return this.listRecursively(src, options);
|
|
177
206
|
}
|
|
207
|
+
copy(sourceDir, destDir, options) {
|
|
208
|
+
var _a, _b, _c;
|
|
209
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
210
|
+
const directories = yield this.list(sourceDir, Object.assign({ resultType: directory_list_result_enum_1.DirectoryListResultEnum.FileInfoObject }, options));
|
|
211
|
+
// For each files and directories listed, we copy them to the destination directory
|
|
212
|
+
for (const file of directories) {
|
|
213
|
+
const srcPath = file.fullPath;
|
|
214
|
+
const destPath = path_1.default.join(destDir, path_1.default.relative(sourceDir, srcPath));
|
|
215
|
+
// Create the destination directory if it doesn't exist
|
|
216
|
+
yield fs_1.promises.mkdir(path_1.default.dirname(destPath), { recursive: true });
|
|
217
|
+
if (((_b = (_a = options === null || options === void 0 ? void 0 : options.replaceOperations) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
218
|
+
yield this.fileManager.replaceInFile(srcPath, (_c = options === null || options === void 0 ? void 0 : options.replaceOperations) !== null && _c !== void 0 ? _c : [], { outputFilePath: destPath });
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
// Copy the file
|
|
222
|
+
yield fs_1.promises.copyFile(srcPath, destPath);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
178
227
|
exists(filePath) {
|
|
179
228
|
return new Promise((resolve, reject) => {
|
|
180
|
-
|
|
229
|
+
fs_1.default.access(filePath, err => {
|
|
181
230
|
if (err) {
|
|
182
231
|
return resolve(false);
|
|
183
232
|
}
|
|
@@ -188,6 +237,7 @@ let DirectoryManager = class DirectoryManager {
|
|
|
188
237
|
};
|
|
189
238
|
exports.DirectoryManager = DirectoryManager;
|
|
190
239
|
exports.DirectoryManager = DirectoryManager = __decorate([
|
|
191
|
-
(0, tsyringe_1.injectable)()
|
|
240
|
+
(0, tsyringe_1.injectable)(),
|
|
241
|
+
__metadata("design:paramtypes", [file_manager_1.FileManager])
|
|
192
242
|
], DirectoryManager);
|
|
193
243
|
//# sourceMappingURL=directory.manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,7 @@ require("reflect-metadata");
|
|
|
53
53
|
const tsyringe_1 = require("tsyringe");
|
|
54
54
|
const fs_1 = __importDefault(require("fs"));
|
|
55
55
|
const readline = __importStar(require("readline"));
|
|
56
|
+
const promises_1 = require("node:fs/promises");
|
|
56
57
|
let FileManager = class FileManager {
|
|
57
58
|
findInFile(search, filePath) {
|
|
58
59
|
var _a, e_1, _b, _c;
|
|
@@ -106,6 +107,34 @@ let FileManager = class FileManager {
|
|
|
106
107
|
return fileCursors;
|
|
107
108
|
});
|
|
108
109
|
}
|
|
110
|
+
replaceInFile(inputFilePath, replaceOperations, options) {
|
|
111
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
const fileBuffer = yield this.readFile(inputFilePath);
|
|
113
|
+
// This isn't particularly efficient. Ideally, we would stream and track if we have found the first token in the regex so that we must append chunks while the regex isn't complete.
|
|
114
|
+
// For now, we will load everything in memory.
|
|
115
|
+
let fileContent = fileBuffer.toString("utf-8");
|
|
116
|
+
replaceOperations.forEach(replaceOperation => {
|
|
117
|
+
const search = replaceOperation.search;
|
|
118
|
+
const replace = replaceOperation.replace;
|
|
119
|
+
let regex;
|
|
120
|
+
if (typeof search === "string") {
|
|
121
|
+
regex = new RegExp(search, "gim");
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
regex = search;
|
|
125
|
+
}
|
|
126
|
+
// @ts-expect-error: Replace is either a string or a function. When we check if it's a string or else
|
|
127
|
+
// (by calling the same method with same parameters), it works. Therefore, this seems to be a bug in the typescript compiler.
|
|
128
|
+
fileContent = fileContent.replace(regex, replace);
|
|
129
|
+
});
|
|
130
|
+
// Replace the content of the file
|
|
131
|
+
let outputFilePath = inputFilePath;
|
|
132
|
+
if (options === null || options === void 0 ? void 0 : options.outputFilePath) {
|
|
133
|
+
outputFilePath = options.outputFilePath;
|
|
134
|
+
}
|
|
135
|
+
yield (0, promises_1.writeFile)(outputFilePath, fileContent);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
109
138
|
readFile(filePath) {
|
|
110
139
|
return new Promise((resolve, reject) => {
|
|
111
140
|
fs_1.default.readFile(filePath, (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.manager.js","sourceRoot":"","sources":["../../../../src/managers/file.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAEpC,4CAAoB;AACpB,mDAAqC;
|
|
1
|
+
{"version":3,"file":"file.manager.js","sourceRoot":"","sources":["../../../../src/managers/file.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-copy.options.js","sourceRoot":"","sources":["../../../../src/options/directory-copy.options.ts"],"names":[],"mappings":""}
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./directory-copy.options"), exports);
|
|
17
18
|
__exportStar(require("./directory-list.options"), exports);
|
|
18
19
|
//# sourceMappingURL=options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/options/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC"}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/options/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,2DAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-in-file-operation.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/replace-in-file-operation.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-in-file.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/replace-in-file.interface.ts"],"names":[],"mappings":""}
|
|
@@ -4,6 +4,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
7
10
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
11
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
12
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -18,10 +21,13 @@ import { injectable } from "tsyringe";
|
|
|
18
21
|
import { MatchTypeEnum } from "../enums/match-type.enum";
|
|
19
22
|
import { TypesEnum } from "../enums/types.enum";
|
|
20
23
|
import { DirectoryListResultEnum } from "../enums/directory-list-result.enum";
|
|
21
|
-
import { promises as fsp } from "fs";
|
|
22
|
-
import fs from "fs";
|
|
24
|
+
import fs, { promises as fsp } from "fs";
|
|
23
25
|
import path from "path";
|
|
26
|
+
import { FileManager } from "./file.manager";
|
|
24
27
|
let DirectoryManager = class DirectoryManager {
|
|
28
|
+
constructor(fileManager) {
|
|
29
|
+
this.fileManager = fileManager;
|
|
30
|
+
}
|
|
25
31
|
listRecursively(dir, options) {
|
|
26
32
|
var _a;
|
|
27
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -169,6 +175,26 @@ let DirectoryManager = class DirectoryManager {
|
|
|
169
175
|
}
|
|
170
176
|
return this.listRecursively(src, options);
|
|
171
177
|
}
|
|
178
|
+
copy(sourceDir, destDir, options) {
|
|
179
|
+
var _a, _b, _c;
|
|
180
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
const directories = yield this.list(sourceDir, Object.assign({ resultType: DirectoryListResultEnum.FileInfoObject }, options));
|
|
182
|
+
// For each files and directories listed, we copy them to the destination directory
|
|
183
|
+
for (const file of directories) {
|
|
184
|
+
const srcPath = file.fullPath;
|
|
185
|
+
const destPath = path.join(destDir, path.relative(sourceDir, srcPath));
|
|
186
|
+
// Create the destination directory if it doesn't exist
|
|
187
|
+
yield fsp.mkdir(path.dirname(destPath), { recursive: true });
|
|
188
|
+
if (((_b = (_a = options === null || options === void 0 ? void 0 : options.replaceOperations) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
189
|
+
yield this.fileManager.replaceInFile(srcPath, (_c = options === null || options === void 0 ? void 0 : options.replaceOperations) !== null && _c !== void 0 ? _c : [], { outputFilePath: destPath });
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
// Copy the file
|
|
193
|
+
yield fsp.copyFile(srcPath, destPath);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
172
198
|
exists(filePath) {
|
|
173
199
|
return new Promise((resolve, reject) => {
|
|
174
200
|
fs.access(filePath, err => {
|
|
@@ -181,7 +207,8 @@ let DirectoryManager = class DirectoryManager {
|
|
|
181
207
|
}
|
|
182
208
|
};
|
|
183
209
|
DirectoryManager = __decorate([
|
|
184
|
-
injectable()
|
|
210
|
+
injectable(),
|
|
211
|
+
__metadata("design:paramtypes", [FileManager])
|
|
185
212
|
], DirectoryManager);
|
|
186
213
|
export { DirectoryManager };
|
|
187
214
|
//# sourceMappingURL=directory.manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ import "reflect-metadata";
|
|
|
24
24
|
import { injectable } from "tsyringe";
|
|
25
25
|
import fs from "fs";
|
|
26
26
|
import * as readline from "readline";
|
|
27
|
+
import { writeFile } from "node:fs/promises";
|
|
27
28
|
let FileManager = class FileManager {
|
|
28
29
|
findInFile(search, filePath) {
|
|
29
30
|
var _a, e_1, _b, _c;
|
|
@@ -77,6 +78,34 @@ let FileManager = class FileManager {
|
|
|
77
78
|
return fileCursors;
|
|
78
79
|
});
|
|
79
80
|
}
|
|
81
|
+
replaceInFile(inputFilePath, replaceOperations, options) {
|
|
82
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
+
const fileBuffer = yield this.readFile(inputFilePath);
|
|
84
|
+
// This isn't particularly efficient. Ideally, we would stream and track if we have found the first token in the regex so that we must append chunks while the regex isn't complete.
|
|
85
|
+
// For now, we will load everything in memory.
|
|
86
|
+
let fileContent = fileBuffer.toString("utf-8");
|
|
87
|
+
replaceOperations.forEach(replaceOperation => {
|
|
88
|
+
const search = replaceOperation.search;
|
|
89
|
+
const replace = replaceOperation.replace;
|
|
90
|
+
let regex;
|
|
91
|
+
if (typeof search === "string") {
|
|
92
|
+
regex = new RegExp(search, "gim");
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
regex = search;
|
|
96
|
+
}
|
|
97
|
+
// @ts-expect-error: Replace is either a string or a function. When we check if it's a string or else
|
|
98
|
+
// (by calling the same method with same parameters), it works. Therefore, this seems to be a bug in the typescript compiler.
|
|
99
|
+
fileContent = fileContent.replace(regex, replace);
|
|
100
|
+
});
|
|
101
|
+
// Replace the content of the file
|
|
102
|
+
let outputFilePath = inputFilePath;
|
|
103
|
+
if (options === null || options === void 0 ? void 0 : options.outputFilePath) {
|
|
104
|
+
outputFilePath = options.outputFilePath;
|
|
105
|
+
}
|
|
106
|
+
yield writeFile(outputFilePath, fileContent);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
80
109
|
readFile(filePath) {
|
|
81
110
|
return new Promise((resolve, reject) => {
|
|
82
111
|
fs.readFile(filePath, (err, data) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.manager.js","sourceRoot":"","sources":["../../../../src/managers/file.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"file.manager.js","sourceRoot":"","sources":["../../../../src/managers/file.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-copy.options.js","sourceRoot":"","sources":["../../../../src/options/directory-copy.options.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/options/options.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/options/options.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ReplaceInFileOperationInterface {
|
|
2
|
+
/**
|
|
3
|
+
* The search string or regex to find in the file.
|
|
4
|
+
*/
|
|
5
|
+
search: string | RegExp;
|
|
6
|
+
/**
|
|
7
|
+
* The replacement string or function to replace the found string.
|
|
8
|
+
*/
|
|
9
|
+
replace: string | ((substring: string, ...args: any[]) => string);
|
|
10
|
+
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { DirectoryListOptions } from "../options/directory-list.options";
|
|
3
3
|
import { FileInfoInterface } from "../interfaces/file-info.interface";
|
|
4
|
+
import { DirectoryCopyOptions } from "../options/directory-copy.options";
|
|
5
|
+
import { FileManager } from "./file.manager";
|
|
4
6
|
export declare class DirectoryManager {
|
|
7
|
+
private readonly fileManager;
|
|
8
|
+
constructor(fileManager: FileManager);
|
|
5
9
|
private listRecursively;
|
|
6
10
|
/**
|
|
7
11
|
* If you just call list(someDir) with no options, it just gets you
|
|
@@ -13,5 +17,6 @@ export declare class DirectoryManager {
|
|
|
13
17
|
* @param options
|
|
14
18
|
*/
|
|
15
19
|
list(directory: string, options?: DirectoryListOptions): Promise<(string | FileInfoInterface)[]>;
|
|
20
|
+
copy(sourceDir: string, destDir: string, options?: DirectoryCopyOptions): Promise<void>;
|
|
16
21
|
exists(filePath: string): Promise<boolean>;
|
|
17
22
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import "reflect-metadata";
|
|
3
3
|
import { FileCursorInterface } from "../interfaces/file-cursor.interface";
|
|
4
|
+
import { ReplaceInFileInterface } from "../interfaces/replace-in-file.interface";
|
|
5
|
+
import { ReplaceInFileOperationInterface } from "../interfaces/replace-in-file-operation.interface";
|
|
4
6
|
export declare class FileManager {
|
|
5
7
|
findInFile(search: string | RegExp, filePath: string): Promise<FileCursorInterface[]>;
|
|
8
|
+
replaceInFile(inputFilePath: string, replaceOperations: ReplaceInFileOperationInterface[], options?: ReplaceInFileInterface): Promise<void>;
|
|
6
9
|
readFile(filePath: string): Promise<Buffer>;
|
|
7
10
|
exists(filePath: string): Promise<boolean>;
|
|
8
11
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DirectoryListOptions } from "./directory-list.options";
|
|
2
|
+
import { ReplaceInFileOperationInterface } from "../interfaces/replace-in-file-operation.interface";
|
|
3
|
+
export interface DirectoryCopyOptions extends Omit<DirectoryListOptions, "types" | "resultType" | "results"> {
|
|
4
|
+
replaceOperations?: ReplaceInFileOperationInterface[];
|
|
5
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pristine-ts/file",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.365",
|
|
4
4
|
"description": "",
|
|
5
5
|
"module": "dist/lib/esm/file.module.js",
|
|
6
6
|
"main": "dist/lib/cjs/file.module.js",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@pristine-ts/class-validator": "^2.0.
|
|
24
|
-
"@pristine-ts/common": "^0.0.
|
|
25
|
-
"@pristine-ts/configuration": "^0.0.
|
|
26
|
-
"@pristine-ts/data-mapping": "^0.0.
|
|
27
|
-
"@pristine-ts/data-mapping-common": "^0.0.
|
|
23
|
+
"@pristine-ts/class-validator": "^2.0.4",
|
|
24
|
+
"@pristine-ts/common": "^0.0.365",
|
|
25
|
+
"@pristine-ts/configuration": "^0.0.365",
|
|
26
|
+
"@pristine-ts/data-mapping": "^0.0.365",
|
|
27
|
+
"@pristine-ts/data-mapping-common": "^0.0.365"
|
|
28
28
|
},
|
|
29
29
|
"jest": {
|
|
30
30
|
"transform": {
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"src/*.{js,ts}"
|
|
61
61
|
]
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "c743d872ebf08394c7b91bebfbc7a937b3227218"
|
|
64
64
|
}
|