@pristine-ts/file 0.0.364 → 0.0.366

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.
Files changed (36) hide show
  1. package/dist/lib/cjs/interfaces/interfaces.js +2 -0
  2. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
  3. package/dist/lib/cjs/interfaces/replace-in-file-operation.interface.js +3 -0
  4. package/dist/lib/cjs/interfaces/replace-in-file-operation.interface.js.map +1 -0
  5. package/dist/lib/cjs/interfaces/replace-in-file.interface.js +3 -0
  6. package/dist/lib/cjs/interfaces/replace-in-file.interface.js.map +1 -0
  7. package/dist/lib/cjs/managers/directory.manager.js +56 -4
  8. package/dist/lib/cjs/managers/directory.manager.js.map +1 -1
  9. package/dist/lib/cjs/managers/file.manager.js +29 -0
  10. package/dist/lib/cjs/managers/file.manager.js.map +1 -1
  11. package/dist/lib/cjs/options/directory-copy.options.js +3 -0
  12. package/dist/lib/cjs/options/directory-copy.options.js.map +1 -0
  13. package/dist/lib/cjs/options/options.js +1 -0
  14. package/dist/lib/cjs/options/options.js.map +1 -1
  15. package/dist/lib/esm/interfaces/interfaces.js +2 -0
  16. package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
  17. package/dist/lib/esm/interfaces/replace-in-file-operation.interface.js +2 -0
  18. package/dist/lib/esm/interfaces/replace-in-file-operation.interface.js.map +1 -0
  19. package/dist/lib/esm/interfaces/replace-in-file.interface.js +2 -0
  20. package/dist/lib/esm/interfaces/replace-in-file.interface.js.map +1 -0
  21. package/dist/lib/esm/managers/directory.manager.js +32 -3
  22. package/dist/lib/esm/managers/directory.manager.js.map +1 -1
  23. package/dist/lib/esm/managers/file.manager.js +29 -0
  24. package/dist/lib/esm/managers/file.manager.js.map +1 -1
  25. package/dist/lib/esm/options/directory-copy.options.js +2 -0
  26. package/dist/lib/esm/options/directory-copy.options.js.map +1 -0
  27. package/dist/lib/esm/options/options.js +1 -0
  28. package/dist/lib/esm/options/options.js.map +1 -1
  29. package/dist/types/interfaces/interfaces.d.ts +2 -0
  30. package/dist/types/interfaces/replace-in-file-operation.interface.d.ts +10 -0
  31. package/dist/types/interfaces/replace-in-file.interface.d.ts +6 -0
  32. package/dist/types/managers/directory.manager.d.ts +5 -0
  33. package/dist/types/managers/file.manager.d.ts +3 -0
  34. package/dist/types/options/directory-copy.options.d.ts +7 -0
  35. package/dist/types/options/options.d.ts +1 -0
  36. package/package.json +6 -6
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=replace-in-file-operation.interface.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=replace-in-file.interface.js.map
@@ -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,31 @@ 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, _d;
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
+ // Inform the monitor that a file is being copied
218
+ (_a = options === null || options === void 0 ? void 0 : options.monitor) === null || _a === void 0 ? void 0 : _a.call(options, file);
219
+ if (((_c = (_b = options === null || options === void 0 ? void 0 : options.replaceOperations) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
220
+ yield this.fileManager.replaceInFile(srcPath, (_d = options === null || options === void 0 ? void 0 : options.replaceOperations) !== null && _d !== void 0 ? _d : [], { outputFilePath: destPath });
221
+ }
222
+ else {
223
+ // Copy the file
224
+ yield fs_1.promises.copyFile(srcPath, destPath);
225
+ }
226
+ }
227
+ });
228
+ }
178
229
  exists(filePath) {
179
230
  return new Promise((resolve, reject) => {
180
- fs_2.default.access(filePath, err => {
231
+ fs_1.default.access(filePath, err => {
181
232
  if (err) {
182
233
  return resolve(false);
183
234
  }
@@ -188,6 +239,7 @@ let DirectoryManager = class DirectoryManager {
188
239
  };
189
240
  exports.DirectoryManager = DirectoryManager;
190
241
  exports.DirectoryManager = DirectoryManager = __decorate([
191
- (0, tsyringe_1.injectable)()
242
+ (0, tsyringe_1.injectable)(),
243
+ __metadata("design:paramtypes", [file_manager_1.FileManager])
192
244
  ], DirectoryManager);
193
245
  //# sourceMappingURL=directory.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4BAAyB;AACzB,uCAAoC;AAGpC,8DAAuD;AACvD,oDAA8C;AAC9C,oFAA4E;AAC5E,yCAAuC;AACvC,gDAAwB;AAExB,iDAA2C;AAGpC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAEzB,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IACrD,CAAC;IAEa,eAAe,CAAC,GAAW,EAAE,OAA6B;;;YAEpE,iDAAiD;YACjD,MAAM,IAAI,GAAG,EAAE,CAAC;YAEhB,MAAM,KAAK,GAAG,MAAM,aAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;YAC5D,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC7B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAkB,qCAAqC;gBACnG,IAAI,QAAQ,GAAG,QAAQ,CAAC;gBACxB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACb,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAU,iCAAiC;gBAC/F,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,GAAG,GAAsB,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAC,CAAC;gBAExF,oBAAoB;gBACpB,IAAI,IAAI,GAAG,WAAW,CAAC;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClB,IAAI,GAAG,MAAM,CAAC;oBACd,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,sBAAS,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,sBAAS,CAAC,GAAG,CAAC;gBAClF,CAAC;qBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,IAAI,GAAG,KAAK,CAAC;oBACb,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,sBAAS,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,sBAAS,CAAC,GAAG,CAAC;oBACnF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAa,gCAAgC;gBAChE,CAAC;gBACD,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;gBAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACX,SAAS,CAAW,4CAA4C;gBACpE,CAAC;gBAED,wCAAwC;gBACxC,IAAI,OAAO,CAAC,iBAAiB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/C,SAAS;gBACb,CAAC;gBAED,oBAAoB;gBACpB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,MAAM,CAAC;oBACX,IAAI,OAAO,CAAC,SAAS,KAAK,+BAAa,CAAC,SAAS,EAAE,CAAC;wBAChD,MAAM,GAAG,GAAG,CAAC;oBACjB,CAAC;yBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,+BAAa,CAAC,IAAI,EAAE,CAAC;wBAClD,MAAM,GAAG,QAAQ,CAAC;oBACtB,CAAC;yBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,+BAAa,CAAC,QAAQ,EAAE,CAAC;wBACtD,MAAM,GAAG,QAAQ,CAAC;oBACtB,CAAC;yBAAM,IAAI,OAAO,CAAC,SAAS,KAAK,+BAAa,CAAC,IAAI,EAAE,CAAC;wBAClD,MAAM,GAAG,QAAQ,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACJ,MAAM,IAAI,KAAK,CAAC,4EAA4E,OAAO,CAAC,SAAS,0FAA0F,CAAC,CAAC;oBAC7M,CAAC;oBACD,QAAQ,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;wBAC3B,KAAK,QAAQ;4BACT,kDAAkD;4BAClD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;gCAC/B,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;4BAClC,CAAC;4BACD,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;gCAAE,SAAS;4BACvC,MAAM;wBACV,KAAK,QAAQ;4BACT,uCAAuC;4BACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gCAAE,SAAS;4BAC1C,MAAM;wBACV,KAAK,UAAU;4BACX,iEAAiE;4BACjE,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAAE,SAAS;4BAC1C,MAAM;wBACV;4BACI,MAAM,IAAI,SAAS,CAAC,4GAA4G,CAAC,CAAC;oBAC1I,CAAC;gBACL,CAAC;gBAED,IAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3E,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;gBACzB,CAAC;gBAED,8DAA8D;gBAC9D,IAAI,OAAO,CAAC,UAAU,KAAK,oDAAuB,CAAC,cAAc,EAAE,CAAC;oBAChE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,CAAC;YAEL,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAQ,8BAA8B;gBACxE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACnB,IAAI,OAAO,GAAG,IAAI,CAAC;oBACnB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;wBACxC,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACvC,CAAC;oBACD,IAAI,OAAO,EAAE,CAAC;wBACV,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACpD,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;;KAChC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,SAAiB,EAAE,OAA8B;QAClD,uEAAuE;QAEvE,sDAAsD;QACtD,uFAAuF;QACvF,4EAA4E;QAC5E,MAAM,QAAQ,GAAyB;YACnC,SAAS,EAAE,+BAAa,CAAC,SAAS;YAClC,KAAK,EAAE,sBAAS,CAAC,IAAI;YACrB,UAAU,EAAE,oDAAuB,CAAC,QAAQ;YAC5C,OAAO,EAAE,EAAE;SACd,CAAC;QAEF,IAAG,OAAO,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACpC,QAAQ,CAAC,oBAAoB,GAAG,IAAI,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACJ,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,MAAM,IAAI,SAAS,CAAC,kHAAkH,CAAC,CAAC;gBAC5I,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE3C,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACrF,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC;QAED,gCAAgC;QAChC,IAAI,GAAG,GAAG,SAAS,CAAC;QACpB,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEK,IAAI,CAAC,SAAiB,EAAE,OAAe,EAAE,OAA8B;;;YACzE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,kBACzC,UAAU,EAAE,oDAAuB,CAAC,cAAc,IAC/C,OAAO,EACZ,CAAC;YAEH,mFAAmF;YACnF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAI,IAA0B,CAAC,QAAQ,CAAC;gBACrD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;gBAEvE,uDAAuD;gBACvD,MAAM,aAAG,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE7D,iDAAiD;gBACjD,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,wDAAG,IAAyB,CAAC,CAAC;gBAE9C,IAAG,CAAC,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,EAAE,EAAE,EAAC,cAAc,EAAE,QAAQ,EAAC,CAAC,CAAC;gBAChH,CAAC;qBAAM,CAAC;oBACJ,gBAAgB;oBAChB,MAAM,aAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;YACL,CAAC;;KACJ;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;gBACtB,IAAG,GAAG,EAAE,CAAC;oBACL,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AAnMY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,qBAAU,GAAE;qCAGiC,0BAAW;GAF5C,gBAAgB,CAmM5B"}
@@ -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;AAK9B,IAAM,WAAW,GAAjB,MAAM,WAAW;IACd,UAAU,CAAC,MAAuB,EAAE,QAAgB;;;YACtD,MAAM,UAAU,GAAG,YAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAChC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,QAAQ;aACtB,CAAC,CAAC;YAEH,MAAM,WAAW,GAA0B,EAAE,CAAC;YAE9C,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;;gBACjB,KAAwB,eAAA,OAAA,cAAA,EAAE,CAAA,QAAA,gEAAE,CAAC;oBAAL,kBAAE;oBAAF,WAAE;oBAAhB,MAAM,IAAI,KAAA,CAAA;oBAChB,QAAQ,GAAG,CAAC,CAAC;oBACb,SAAS,EAAE,CAAC;oBAEZ,GAAG,CAAC;wBACA,IAAG,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC5B,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACJ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4BAC9C,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAEnD,IAAG,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;gCACvB,8FAA8F;gCAC9F,QAAQ,IAAI,cAAc,CAAC;4BAC/B,CAAC;iCAAM,CAAC;gCACJ,QAAQ,GAAG,CAAC,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC;wBAED,yDAAyD;wBACzD,IAAG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjB,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;4BAE7D,iDAAiD;4BACjD,QAAQ,EAAE,CAAC;wBACf,CAAC;oBACL,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAC;gBACvD,CAAC;;;;;;;;;YAED,OAAO,WAAW,CAAC;;KACtB;IAED,QAAQ,CAAC,QAAgB;QACrB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,YAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAO,GAAG,EAAE,IAAI,EAAE,EAAE;gBACtC,IAAG,GAAG,EAAE,CAAC;oBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAA,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;gBACtB,IAAG,GAAG,EAAE,CAAC;oBACL,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AApEY,kCAAW;sBAAX,WAAW;IADvB,IAAA,qBAAU,GAAE;GACA,WAAW,CAoEvB"}
1
+ {"version":3,"file":"file.manager.js","sourceRoot":"","sources":["../../../../src/managers/file.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=directory-copy.options.js.map
@@ -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,3 +1,5 @@
1
1
  export * from "./file-cursor.interface";
2
2
  export * from "./file-info.interface";
3
+ export * from "./replace-in-file.interface";
4
+ export * from "./replace-in-file-operation.interface";
3
5
  //# sourceMappingURL=interfaces.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=replace-in-file-operation.interface.js.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=replace-in-file.interface.js.map
@@ -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,28 @@ 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, _d;
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
+ // Inform the monitor that a file is being copied
189
+ (_a = options === null || options === void 0 ? void 0 : options.monitor) === null || _a === void 0 ? void 0 : _a.call(options, file);
190
+ if (((_c = (_b = options === null || options === void 0 ? void 0 : options.replaceOperations) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
191
+ yield this.fileManager.replaceInFile(srcPath, (_d = options === null || options === void 0 ? void 0 : options.replaceOperations) !== null && _d !== void 0 ? _d : [], { outputFilePath: destPath });
192
+ }
193
+ else {
194
+ // Copy the file
195
+ yield fsp.copyFile(srcPath, destPath);
196
+ }
197
+ }
198
+ });
199
+ }
172
200
  exists(filePath) {
173
201
  return new Promise((resolve, reject) => {
174
202
  fs.access(filePath, err => {
@@ -181,7 +209,8 @@ let DirectoryManager = class DirectoryManager {
181
209
  }
182
210
  };
183
211
  DirectoryManager = __decorate([
184
- injectable()
212
+ injectable(),
213
+ __metadata("design:paramtypes", [FileManager])
185
214
  ], DirectoryManager);
186
215
  export { DirectoryManager };
187
216
  //# sourceMappingURL=directory.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory.manager.js","sourceRoot":"","sources":["../../../../src/managers/directory.manager.ts"],"names":[],"mappings":"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"}
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":"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"}
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;AAKrC,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAGpC,IAAM,WAAW,GAAjB,MAAM,WAAW;IACd,UAAU,CAAC,MAAuB,EAAE,QAAgB;;;YACtD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAChC,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,QAAQ;aACtB,CAAC,CAAC;YAEH,MAAM,WAAW,GAA0B,EAAE,CAAC;YAE9C,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;;gBACjB,KAAwB,eAAA,OAAA,cAAA,EAAE,CAAA,QAAA,gEAAE,CAAC;oBAAL,kBAAE;oBAAF,WAAE;oBAAhB,MAAM,IAAI,KAAA,CAAA;oBAChB,QAAQ,GAAG,CAAC,CAAC;oBACb,SAAS,EAAE,CAAC;oBAEZ,GAAG,CAAC;wBACA,IAAG,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;4BAC5B,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACJ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;4BAC9C,MAAM,cAAc,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;4BAEnD,IAAG,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;gCACvB,8FAA8F;gCAC9F,QAAQ,IAAI,cAAc,CAAC;4BAC/B,CAAC;iCAAM,CAAC;gCACJ,QAAQ,GAAG,CAAC,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC;wBAED,yDAAyD;wBACzD,IAAG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;4BACjB,WAAW,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;4BAE7D,iDAAiD;4BACjD,QAAQ,EAAE,CAAC;wBACf,CAAC;oBACL,CAAC,QAAQ,QAAQ,IAAI,CAAC,CAAC,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAC;gBACvD,CAAC;;;;;;;;;YAED,OAAO,WAAW,CAAC;;KACtB;IAEK,aAAa,CAAC,aAAqB,EAAE,iBAAoD,EAAE,OAAgC;;YAC7H,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEtD,oLAAoL;YACpL,8CAA8C;YAC9C,IAAI,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE/C,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;gBACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;gBACvC,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBACzC,IAAI,KAAa,CAAC;gBAElB,IAAG,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC5B,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACJ,KAAK,GAAG,MAAM,CAAC;gBACnB,CAAC;gBAED,qGAAqG;gBACrG,6HAA6H;gBAC7H,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,kCAAkC;YAClC,IAAI,cAAc,GAAG,aAAa,CAAC;YAEnC,IAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,EAAE,CAAC;gBACzB,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;YAC5C,CAAC;YAED,MAAM,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;KAAA;IAED,QAAQ,CAAC,QAAgB;QACrB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAO,GAAG,EAAE,IAAI,EAAE,EAAE;gBACtC,IAAG,GAAG,EAAE,CAAC;oBACL,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAA,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;IAED,MAAM,CAAC,QAAgB;QACnB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE;gBACtB,IAAG,GAAG,EAAE,CAAC;oBACL,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AArGY,WAAW;IADvB,UAAU,EAAE;GACA,WAAW,CAqGvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=directory-copy.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directory-copy.options.js","sourceRoot":"","sources":["../../../../src/options/directory-copy.options.ts"],"names":[],"mappings":""}
@@ -1,2 +1,3 @@
1
+ export * from "./directory-copy.options";
1
2
  export * from "./directory-list.options";
2
3
  //# sourceMappingURL=options.js.map
@@ -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"}
@@ -1,2 +1,4 @@
1
1
  export * from "./file-cursor.interface";
2
2
  export * from "./file-info.interface";
3
+ export * from "./replace-in-file.interface";
4
+ export * from "./replace-in-file-operation.interface";
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ export interface ReplaceInFileInterface {
2
+ /**
3
+ * The file path to write the result to. If not specified, the input file will be overwritten.
4
+ */
5
+ outputFilePath?: string;
6
+ }
@@ -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,7 @@
1
+ import { DirectoryListOptions } from "./directory-list.options";
2
+ import { ReplaceInFileOperationInterface } from "../interfaces/replace-in-file-operation.interface";
3
+ import { FileInfoInterface } from "../interfaces/file-info.interface";
4
+ export interface DirectoryCopyOptions extends Omit<DirectoryListOptions, "types" | "resultType" | "results"> {
5
+ replaceOperations?: ReplaceInFileOperationInterface[];
6
+ monitor?: (file: FileInfoInterface) => void;
7
+ }
@@ -1 +1,2 @@
1
+ export * from "./directory-copy.options";
1
2
  export * from "./directory-list.options";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pristine-ts/file",
3
- "version": "0.0.364",
3
+ "version": "0.0.366",
4
4
  "description": "",
5
5
  "module": "dist/lib/esm/file.module.js",
6
6
  "main": "dist/lib/cjs/file.module.js",
@@ -21,10 +21,10 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@pristine-ts/class-validator": "^2.0.4",
24
- "@pristine-ts/common": "^0.0.364",
25
- "@pristine-ts/configuration": "^0.0.364",
26
- "@pristine-ts/data-mapping": "^0.0.364",
27
- "@pristine-ts/data-mapping-common": "^0.0.364"
24
+ "@pristine-ts/common": "^0.0.366",
25
+ "@pristine-ts/configuration": "^0.0.366",
26
+ "@pristine-ts/data-mapping": "^0.0.366",
27
+ "@pristine-ts/data-mapping-common": "^0.0.366"
28
28
  },
29
29
  "jest": {
30
30
  "transform": {
@@ -60,5 +60,5 @@
60
60
  "src/*.{js,ts}"
61
61
  ]
62
62
  },
63
- "gitHead": "84a5d29d1be5cfe5abd930244e330dc804edeb94"
63
+ "gitHead": "9bd2ef08324a3a4528e88a47712aa50b512b99ad"
64
64
  }