pwd-fs 3.1.3 → 3.1.4

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 (62) hide show
  1. package/lib/src/index.d.ts +3 -5
  2. package/lib/src/index.js +21 -0
  3. package/lib/src/powered-file-system.d.ts +2 -1
  4. package/lib/{powered-file-system.js → src/powered-file-system.js} +58 -54
  5. package/lib/{recurse-io-sync.js → src/recurse-io-sync.js} +25 -27
  6. package/lib/{recurse-io.js → src/recurse-io.js} +31 -33
  7. package/lib/test/__fmock.js +40 -0
  8. package/lib/test/append.spec.js +58 -0
  9. package/lib/test/bitmask.spec.js +26 -0
  10. package/lib/test/chmod.spec.js +62 -0
  11. package/lib/test/chown.spec.js +68 -0
  12. package/lib/test/constructor.spec.js +17 -0
  13. package/lib/test/copy.spec.js +80 -0
  14. package/lib/test/mkdir.spec.js +90 -0
  15. package/lib/test/read.spec.js +73 -0
  16. package/lib/test/readdir.spec.js +70 -0
  17. package/lib/test/remove.spec.js +63 -0
  18. package/lib/test/rename.spec.js +66 -0
  19. package/lib/test/stat.spec.js +76 -0
  20. package/lib/test/symlink.spec.js +74 -0
  21. package/lib/test/test.spec.js +60 -0
  22. package/lib/test/write.spec.js +82 -0
  23. package/package.json +7 -14
  24. package/readme.md +10 -8
  25. package/src/index.ts +4 -26
  26. package/src/powered-file-system.ts +22 -20
  27. package/{__tests__ → test}/append.spec.ts +2 -3
  28. package/{__tests__ → test}/chmod.spec.ts +2 -3
  29. package/{__tests__ → test}/chown.spec.ts +2 -4
  30. package/{__tests__ → test}/constructor.spec.ts +1 -1
  31. package/{__tests__ → test}/copy.spec.ts +2 -3
  32. package/{__tests__ → test}/mkdir.spec.ts +2 -1
  33. package/{__tests__ → test}/read.spec.ts +2 -3
  34. package/{__tests__ → test}/readdir.spec.ts +3 -4
  35. package/{__tests__ → test}/remove.spec.ts +3 -3
  36. package/{__tests__ → test}/rename.spec.ts +2 -2
  37. package/{__tests__ → test}/stat.spec.ts +2 -3
  38. package/{__tests__ → test}/symlink.spec.ts +3 -3
  39. package/{__tests__ → test}/test.spec.ts +1 -3
  40. package/{__tests__ → test}/write.spec.ts +2 -2
  41. package/tsconfig.json +5 -5
  42. package/jest.config.ts +0 -14
  43. package/lib/index.js +0 -24
  44. package/rollup.config.js +0 -16
  45. /package/lib/{__tests__ → test}/__fmock.d.ts +0 -0
  46. /package/lib/{__tests__ → test}/append.spec.d.ts +0 -0
  47. /package/lib/{__tests__ → test}/bitmask.spec.d.ts +0 -0
  48. /package/lib/{__tests__ → test}/chmod.spec.d.ts +0 -0
  49. /package/lib/{__tests__ → test}/chown.spec.d.ts +0 -0
  50. /package/lib/{__tests__ → test}/constructor.spec.d.ts +0 -0
  51. /package/lib/{__tests__ → test}/copy.spec.d.ts +0 -0
  52. /package/lib/{__tests__ → test}/mkdir.spec.d.ts +0 -0
  53. /package/lib/{__tests__ → test}/read.spec.d.ts +0 -0
  54. /package/lib/{__tests__ → test}/readdir.spec.d.ts +0 -0
  55. /package/lib/{__tests__ → test}/remove.spec.d.ts +0 -0
  56. /package/lib/{__tests__ → test}/rename.spec.d.ts +0 -0
  57. /package/lib/{__tests__ → test}/stat.spec.d.ts +0 -0
  58. /package/lib/{__tests__ → test}/symlink.spec.d.ts +0 -0
  59. /package/lib/{__tests__ → test}/test.spec.d.ts +0 -0
  60. /package/lib/{__tests__ → test}/write.spec.d.ts +0 -0
  61. /package/{__tests__ → test}/__fmock.ts +0 -0
  62. /package/{__tests__ → test}/bitmask.spec.ts +0 -0
@@ -1,6 +1,4 @@
1
- import { type Mode as TMode, type Flag as TFlag, type Stats as TStats, PoweredFileSystem } from './powered-file-system';
2
- export type Mode = TMode;
3
- export type Flag = TFlag;
4
- export type Stats = TStats;
5
- export declare const bitmask: typeof PoweredFileSystem.bitmask;
1
+ import { PoweredFileSystem } from './powered-file-system';
2
+ export declare const pfs: PoweredFileSystem;
6
3
  export default PoweredFileSystem;
4
+ export * from './powered-file-system';
@@ -0,0 +1,21 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.pfs = void 0;
18
+ const powered_file_system_1 = require("./powered-file-system");
19
+ exports.pfs = new powered_file_system_1.PoweredFileSystem();
20
+ exports.default = powered_file_system_1.PoweredFileSystem;
21
+ __exportStar(require("./powered-file-system"), exports);
@@ -10,12 +10,13 @@ export interface IConstants {
10
10
  w: number;
11
11
  x: number;
12
12
  }
13
+ export declare function bitmask(mode: number): number;
13
14
  export declare class PoweredFileSystem {
14
15
  readonly pwd: string;
15
16
  readonly constants: IConstants;
17
+ static bitmask: typeof bitmask;
16
18
  constructor(pwd?: string);
17
19
  private resolve;
18
- static bitmask(mode: number): number;
19
20
  test(src: string, options: {
20
21
  sync: true;
21
22
  flag?: Mode;
@@ -1,10 +1,13 @@
1
- 'use strict';
2
-
3
- var fs = require('node:fs');
4
- var path = require('node:path');
5
- var recurseIo = require('./recurse-io.js');
6
- var recurseIoSync = require('./recurse-io-sync.js');
7
-
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PoweredFileSystem = exports.bitmask = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const recurse_io_1 = __importDefault(require("./recurse-io"));
10
+ const recurse_io_sync_1 = __importDefault(require("./recurse-io-sync"));
8
11
  const permissions = [
9
12
  0o400, // OWNER_READ
10
13
  0o200, // OWNER_WRITE
@@ -16,41 +19,43 @@ const permissions = [
16
19
  0o002, // OTHERS_WRITE
17
20
  0o001 // OTHERS_EXECUTE
18
21
  ];
22
+ function bitmask(mode) {
23
+ const type = typeof mode;
24
+ if (type !== 'number') {
25
+ throw new Error(`Argument of type '${type}' is not assignable to parameter of type 'number'.`);
26
+ }
27
+ let umask = 0o000;
28
+ for (const flag of permissions) {
29
+ if (mode & flag) {
30
+ umask += flag;
31
+ }
32
+ }
33
+ return umask;
34
+ }
35
+ exports.bitmask = bitmask;
19
36
  class PoweredFileSystem {
20
37
  pwd;
21
38
  constants = {
22
- e: fs.constants.F_OK,
23
- r: fs.constants.R_OK,
24
- w: fs.constants.W_OK,
25
- x: fs.constants.X_OK
39
+ e: node_fs_1.default.constants.F_OK,
40
+ r: node_fs_1.default.constants.R_OK,
41
+ w: node_fs_1.default.constants.W_OK,
42
+ x: node_fs_1.default.constants.X_OK
26
43
  };
44
+ static bitmask = bitmask;
27
45
  constructor(pwd) {
28
- this.pwd = pwd ? path.resolve(pwd) : process.cwd();
46
+ this.pwd = pwd ? node_path_1.default.resolve(pwd) : process.cwd();
29
47
  }
30
48
  resolve(src) {
31
- return path.resolve(this.pwd, src);
32
- }
33
- static bitmask(mode) {
34
- const type = typeof mode;
35
- if (type !== 'number') {
36
- throw new Error(`Argument of type '${type}' is not assignable to parameter of type 'number'.`);
37
- }
38
- let umask = 0o000;
39
- for (const flag of permissions) {
40
- if (mode & flag) {
41
- umask += flag;
42
- }
43
- }
44
- return umask;
49
+ return node_path_1.default.resolve(this.pwd, src);
45
50
  }
46
51
  test(src, { sync = false, flag = 'e' } = {}) {
47
52
  const mode = this.constants[flag];
48
- src = path.resolve(this.pwd, src);
53
+ src = node_path_1.default.resolve(this.pwd, src);
49
54
  if (sync) {
50
- return fs.existsSync(src);
55
+ return node_fs_1.default.existsSync(src);
51
56
  }
52
57
  return new Promise((resolve) => {
53
- fs.access(src, mode, (err) => {
58
+ node_fs_1.default.access(src, mode, (err) => {
54
59
  if (err) {
55
60
  return resolve(false);
56
61
  }
@@ -61,10 +66,10 @@ class PoweredFileSystem {
61
66
  stat(src, { sync = false } = {}) {
62
67
  src = this.resolve(src);
63
68
  if (sync) {
64
- return fs.lstatSync(src);
69
+ return node_fs_1.default.lstatSync(src);
65
70
  }
66
71
  return new Promise((resolve, reject) => {
67
- fs.lstat(src, (err, stats) => {
72
+ node_fs_1.default.lstat(src, (err, stats) => {
68
73
  if (err) {
69
74
  return reject(err);
70
75
  }
@@ -75,10 +80,10 @@ class PoweredFileSystem {
75
80
  chmod(src, mode, { sync = false } = {}) {
76
81
  src = this.resolve(src);
77
82
  if (sync) {
78
- return recurseIoSync.default.chmod(src, mode);
83
+ return recurse_io_sync_1.default.chmod(src, mode);
79
84
  }
80
85
  return new Promise((resolve, reject) => {
81
- recurseIo.default.chmod(src, mode, (err) => {
86
+ recurse_io_1.default.chmod(src, mode, (err) => {
82
87
  if (err) {
83
88
  return reject(err);
84
89
  }
@@ -89,10 +94,10 @@ class PoweredFileSystem {
89
94
  chown(src, uid, gid, { sync = false } = {}) {
90
95
  src = this.resolve(src);
91
96
  if (sync) {
92
- return recurseIoSync.default.chown(src, uid, gid);
97
+ return recurse_io_sync_1.default.chown(src, uid, gid);
93
98
  }
94
99
  return new Promise((resolve, reject) => {
95
- recurseIo.default.chown(src, uid, gid, (err) => {
100
+ recurse_io_1.default.chown(src, uid, gid, (err) => {
96
101
  if (err) {
97
102
  return reject(err);
98
103
  }
@@ -104,10 +109,10 @@ class PoweredFileSystem {
104
109
  src = this.resolve(src);
105
110
  use = this.resolve(use);
106
111
  if (sync) {
107
- return fs.symlinkSync(src, use);
112
+ return node_fs_1.default.symlinkSync(src, use);
108
113
  }
109
114
  return new Promise((resolve, reject) => {
110
- fs.symlink(src, use, (err) => {
115
+ node_fs_1.default.symlink(src, use, (err) => {
111
116
  if (err) {
112
117
  return reject(err);
113
118
  }
@@ -119,10 +124,10 @@ class PoweredFileSystem {
119
124
  src = this.resolve(src);
120
125
  dir = this.resolve(dir);
121
126
  if (sync) {
122
- return recurseIoSync.default.copy(src, dir, umask);
127
+ return recurse_io_sync_1.default.copy(src, dir, umask);
123
128
  }
124
129
  return new Promise((resolve, reject) => {
125
- recurseIo.default.copy(src, dir, umask, (err) => {
130
+ recurse_io_1.default.copy(src, dir, umask, (err) => {
126
131
  if (err) {
127
132
  return reject(err);
128
133
  }
@@ -134,10 +139,10 @@ class PoweredFileSystem {
134
139
  src = this.resolve(src);
135
140
  use = this.resolve(use);
136
141
  if (sync) {
137
- return fs.renameSync(src, use);
142
+ return node_fs_1.default.renameSync(src, use);
138
143
  }
139
144
  return new Promise((resolve, reject) => {
140
- fs.rename(src, use, (err) => {
145
+ node_fs_1.default.rename(src, use, (err) => {
141
146
  if (err) {
142
147
  return reject(err);
143
148
  }
@@ -148,10 +153,10 @@ class PoweredFileSystem {
148
153
  remove(src, { sync = false } = {}) {
149
154
  src = this.resolve(src);
150
155
  if (sync) {
151
- return recurseIoSync.default.remove(src);
156
+ return recurse_io_sync_1.default.remove(src);
152
157
  }
153
158
  return new Promise((resolve, reject) => {
154
- recurseIo.default.remove(src, (err) => {
159
+ recurse_io_1.default.remove(src, (err) => {
155
160
  if (err) {
156
161
  return reject(err);
157
162
  }
@@ -162,13 +167,13 @@ class PoweredFileSystem {
162
167
  read(src, { sync = false, encoding = 'utf8', flag = 'r' } = {}) {
163
168
  src = this.resolve(src);
164
169
  if (sync) {
165
- return fs.readFileSync(src, {
170
+ return node_fs_1.default.readFileSync(src, {
166
171
  encoding,
167
172
  flag
168
173
  });
169
174
  }
170
175
  return new Promise((resolve, reject) => {
171
- fs.readFile(src, {
176
+ node_fs_1.default.readFile(src, {
172
177
  encoding,
173
178
  flag
174
179
  }, (err, raw) => {
@@ -183,14 +188,14 @@ class PoweredFileSystem {
183
188
  src = this.resolve(src);
184
189
  const mode = 0o666 - umask;
185
190
  if (sync) {
186
- return fs.writeFileSync(src, data, {
191
+ return node_fs_1.default.writeFileSync(src, data, {
187
192
  encoding,
188
193
  mode,
189
194
  flag
190
195
  });
191
196
  }
192
197
  return new Promise((resolve, reject) => {
193
- fs.writeFile(src, data, {
198
+ node_fs_1.default.writeFile(src, data, {
194
199
  encoding,
195
200
  mode,
196
201
  flag
@@ -206,14 +211,14 @@ class PoweredFileSystem {
206
211
  src = this.resolve(src);
207
212
  const mode = 0o666 - umask;
208
213
  if (sync) {
209
- return fs.appendFileSync(src, data, {
214
+ return node_fs_1.default.appendFileSync(src, data, {
210
215
  encoding,
211
216
  mode,
212
217
  flag
213
218
  });
214
219
  }
215
220
  return new Promise((resolve, reject) => {
216
- fs.appendFile(src, data, {
221
+ node_fs_1.default.appendFile(src, data, {
217
222
  encoding,
218
223
  mode,
219
224
  flag
@@ -228,12 +233,12 @@ class PoweredFileSystem {
228
233
  readdir(dir, { sync = false, encoding = 'utf8' } = {}) {
229
234
  dir = this.resolve(dir);
230
235
  if (sync) {
231
- return fs.readdirSync(dir, {
236
+ return node_fs_1.default.readdirSync(dir, {
232
237
  encoding
233
238
  });
234
239
  }
235
240
  return new Promise((resolve, reject) => {
236
- fs.readdir(dir, { encoding }, (err, list) => {
241
+ node_fs_1.default.readdir(dir, { encoding }, (err, list) => {
237
242
  if (err) {
238
243
  return reject(err);
239
244
  }
@@ -244,10 +249,10 @@ class PoweredFileSystem {
244
249
  mkdir(dir, { umask = 0o000, sync = false } = {}) {
245
250
  dir = this.resolve(dir);
246
251
  if (sync) {
247
- return recurseIoSync.default.mkdir(dir, umask);
252
+ return recurse_io_sync_1.default.mkdir(dir, umask);
248
253
  }
249
254
  return new Promise((resolve, reject) => {
250
- recurseIo.default.mkdir(dir, umask, (err) => {
255
+ recurse_io_1.default.mkdir(dir, umask, (err) => {
251
256
  if (err) {
252
257
  return reject(err);
253
258
  }
@@ -256,5 +261,4 @@ class PoweredFileSystem {
256
261
  });
257
262
  }
258
263
  }
259
-
260
264
  exports.PoweredFileSystem = PoweredFileSystem;
@@ -1,61 +1,61 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var fs = require('node:fs');
6
- var path = require('node:path');
7
-
8
- const { sep } = path;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const { sep } = node_path_1.default;
9
9
  function chmod(src, mode) {
10
- const stat = fs.statSync(src);
10
+ const stat = node_fs_1.default.statSync(src);
11
11
  if (stat.isDirectory()) {
12
- const list = fs.readdirSync(src);
12
+ const list = node_fs_1.default.readdirSync(src);
13
13
  for (const loc of list) {
14
14
  chmod(`${src}${sep}${loc}`, mode);
15
15
  }
16
16
  }
17
- fs.chmodSync(src, mode);
17
+ node_fs_1.default.chmodSync(src, mode);
18
18
  }
19
19
  function chown(src, uid, gid) {
20
- const stat = fs.statSync(src);
20
+ const stat = node_fs_1.default.statSync(src);
21
21
  if (stat.isDirectory()) {
22
- const list = fs.readdirSync(src);
22
+ const list = node_fs_1.default.readdirSync(src);
23
23
  for (const loc of list) {
24
24
  chown(`${src}${sep}${loc}`, uid, gid);
25
25
  }
26
26
  }
27
- fs.chownSync(src, uid, gid);
27
+ node_fs_1.default.chownSync(src, uid, gid);
28
28
  }
29
29
  function copy(src, dir, umask) {
30
- const stat = fs.statSync(src);
30
+ const stat = node_fs_1.default.statSync(src);
31
31
  if (stat.isDirectory()) {
32
- const list = fs.readdirSync(src);
32
+ const list = node_fs_1.default.readdirSync(src);
33
33
  const paths = src.split(sep);
34
34
  const loc = paths[paths.length - 1];
35
35
  const mode = 0o777 - umask;
36
36
  dir = `${dir}${sep}${loc}`;
37
- fs.mkdirSync(dir, mode);
37
+ node_fs_1.default.mkdirSync(dir, mode);
38
38
  for (const loc of list) {
39
39
  copy(`${src}${sep}${loc}`, dir, umask);
40
40
  }
41
41
  }
42
42
  else {
43
- const loc = path.basename(src);
43
+ const loc = node_path_1.default.basename(src);
44
44
  const use = `${dir}${sep}${loc}`;
45
- fs.copyFileSync(src, use);
45
+ node_fs_1.default.copyFileSync(src, use);
46
46
  }
47
47
  }
48
48
  function remove(src) {
49
- const stat = fs.statSync(src);
49
+ const stat = node_fs_1.default.statSync(src);
50
50
  if (stat.isDirectory()) {
51
- const list = fs.readdirSync(src);
51
+ const list = node_fs_1.default.readdirSync(src);
52
52
  for (const loc of list) {
53
53
  remove(`${src}${sep}${loc}`);
54
54
  }
55
- fs.rmdirSync(src);
55
+ node_fs_1.default.rmdirSync(src);
56
56
  }
57
57
  else {
58
- fs.unlinkSync(src);
58
+ node_fs_1.default.unlinkSync(src);
59
59
  }
60
60
  }
61
61
  function mkdir(dir, umask) {
@@ -70,7 +70,7 @@ function mkdir(dir, umask) {
70
70
  for (const loc of ways) {
71
71
  use += `${sep}${loc}`;
72
72
  try {
73
- fs.mkdirSync(use, { mode });
73
+ node_fs_1.default.mkdirSync(use, { mode });
74
74
  }
75
75
  catch (err) {
76
76
  if (err.errno !== -17) {
@@ -79,12 +79,10 @@ function mkdir(dir, umask) {
79
79
  }
80
80
  }
81
81
  }
82
- var recurseSync = {
82
+ exports.default = {
83
83
  chmod,
84
84
  chown,
85
85
  copy,
86
86
  remove,
87
87
  mkdir
88
88
  };
89
-
90
- exports.default = recurseSync;
@@ -1,24 +1,24 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var fs = require('node:fs');
6
- var path = require('node:path');
7
-
8
- const { sep } = path;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_fs_1 = __importDefault(require("node:fs"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const { sep } = node_path_1.default;
9
9
  function chmod(src, mode, callback) {
10
10
  let reduce = 0;
11
- fs.stat(src, (err, stat) => {
11
+ node_fs_1.default.stat(src, (err, stat) => {
12
12
  if (err) {
13
13
  return callback(err);
14
14
  }
15
15
  if (stat.isDirectory()) {
16
- fs.readdir(src, (err, list) => {
16
+ node_fs_1.default.readdir(src, (err, list) => {
17
17
  if (err) {
18
18
  return callback(err);
19
19
  }
20
20
  if (list.length === 0) {
21
- return fs.chmod(src, mode, callback);
21
+ return node_fs_1.default.chmod(src, mode, callback);
22
22
  }
23
23
  reduce += list.length;
24
24
  for (const loc of list) {
@@ -27,30 +27,30 @@ function chmod(src, mode, callback) {
27
27
  return callback(err);
28
28
  }
29
29
  if (--reduce === 0) {
30
- fs.chmod(src, mode, callback);
30
+ node_fs_1.default.chmod(src, mode, callback);
31
31
  }
32
32
  });
33
33
  }
34
34
  });
35
35
  }
36
36
  else {
37
- fs.chmod(src, mode, callback);
37
+ node_fs_1.default.chmod(src, mode, callback);
38
38
  }
39
39
  });
40
40
  }
41
41
  function chown(src, uid, gid, callback) {
42
42
  let reduce = 0;
43
- fs.stat(src, (err, stats) => {
43
+ node_fs_1.default.stat(src, (err, stats) => {
44
44
  if (err) {
45
45
  return callback(err);
46
46
  }
47
47
  if (stats.isDirectory()) {
48
- fs.readdir(src, (err, list) => {
48
+ node_fs_1.default.readdir(src, (err, list) => {
49
49
  if (err) {
50
50
  return callback(err);
51
51
  }
52
52
  if (list.length === 0) {
53
- return fs.chown(src, uid, gid, callback);
53
+ return node_fs_1.default.chown(src, uid, gid, callback);
54
54
  }
55
55
  reduce += list.length;
56
56
  for (const loc of list) {
@@ -59,25 +59,25 @@ function chown(src, uid, gid, callback) {
59
59
  return callback(err);
60
60
  }
61
61
  if (--reduce === 0) {
62
- fs.chown(src, uid, gid, callback);
62
+ node_fs_1.default.chown(src, uid, gid, callback);
63
63
  }
64
64
  });
65
65
  }
66
66
  });
67
67
  }
68
68
  else {
69
- fs.chown(src, uid, gid, callback);
69
+ node_fs_1.default.chown(src, uid, gid, callback);
70
70
  }
71
71
  });
72
72
  }
73
73
  function copy(src, dir, umask, callback) {
74
74
  let reduce = 0;
75
- fs.stat(src, (err, stat) => {
75
+ node_fs_1.default.stat(src, (err, stat) => {
76
76
  if (err) {
77
77
  return callback(err);
78
78
  }
79
79
  if (stat.isDirectory()) {
80
- fs.readdir(src, (err, list) => {
80
+ node_fs_1.default.readdir(src, (err, list) => {
81
81
  if (err) {
82
82
  return callback(err);
83
83
  }
@@ -86,7 +86,7 @@ function copy(src, dir, umask, callback) {
86
86
  const loc = paths[paths.length - 1];
87
87
  const mode = 0o777 - umask;
88
88
  dir = `${dir}${sep}${loc}`;
89
- fs.mkdir(dir, { mode }, (err) => {
89
+ node_fs_1.default.mkdir(dir, { mode }, (err) => {
90
90
  if (err) {
91
91
  return callback(err);
92
92
  }
@@ -108,9 +108,9 @@ function copy(src, dir, umask, callback) {
108
108
  }
109
109
  else {
110
110
  const mode = 0o666 - umask;
111
- const loc = path.basename(src);
112
- const readStream = fs.createReadStream(src);
113
- const writeStream = fs.createWriteStream(`${dir}${sep}${loc}`, {
111
+ const loc = node_path_1.default.basename(src);
112
+ const readStream = node_fs_1.default.createReadStream(src);
113
+ const writeStream = node_fs_1.default.createWriteStream(`${dir}${sep}${loc}`, {
114
114
  mode
115
115
  });
116
116
  readStream.on('error', callback);
@@ -123,18 +123,18 @@ function copy(src, dir, umask, callback) {
123
123
  });
124
124
  }
125
125
  function remove(src, callback) {
126
- fs.stat(src, (err, stat) => {
126
+ node_fs_1.default.stat(src, (err, stat) => {
127
127
  if (err) {
128
128
  return callback(err);
129
129
  }
130
130
  if (stat.isDirectory()) {
131
- fs.readdir(src, (err, list) => {
131
+ node_fs_1.default.readdir(src, (err, list) => {
132
132
  if (err) {
133
133
  return callback(err);
134
134
  }
135
135
  let reduce = list.length;
136
136
  if (reduce === 0) {
137
- return fs.rmdir(src, callback);
137
+ return node_fs_1.default.rmdir(src, callback);
138
138
  }
139
139
  for (const loc of list) {
140
140
  remove(`${src}${sep}${loc}`, (err) => {
@@ -142,14 +142,14 @@ function remove(src, callback) {
142
142
  return callback(err);
143
143
  }
144
144
  if (--reduce === 0) {
145
- fs.rmdir(src, callback);
145
+ node_fs_1.default.rmdir(src, callback);
146
146
  }
147
147
  });
148
148
  }
149
149
  });
150
150
  }
151
151
  else {
152
- fs.unlink(src, callback);
152
+ node_fs_1.default.unlink(src, callback);
153
153
  }
154
154
  });
155
155
  }
@@ -162,7 +162,7 @@ function mkdir(dir, umask, callback) {
162
162
  const iter = yield;
163
163
  for (const item of files) {
164
164
  dir += `${sep}${item}`;
165
- fs.mkdir(dir, { mode }, (err) => {
165
+ node_fs_1.default.mkdir(dir, { mode }, (err) => {
166
166
  if (err && err.errno !== -17) {
167
167
  return callback(err);
168
168
  }
@@ -183,12 +183,10 @@ function mkdir(dir, umask, callback) {
183
183
  iter.next();
184
184
  iter.next(iter);
185
185
  }
186
- var recurse = {
186
+ exports.default = {
187
187
  chmod,
188
188
  chown,
189
189
  copy,
190
190
  remove,
191
191
  mkdir
192
192
  };
193
-
194
- exports.default = recurse;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.restore = exports.fmock = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ function fmock(frame) {
10
+ for (const src of Object.keys(frame)) {
11
+ const { dir } = node_path_1.default.parse(src);
12
+ const value = frame[src];
13
+ node_fs_1.default.mkdirSync(dir, { recursive: true });
14
+ if (value.type === 'directory') {
15
+ node_fs_1.default.mkdirSync(src);
16
+ }
17
+ if (value.type === 'file') {
18
+ node_fs_1.default.writeFileSync(src, value.data);
19
+ }
20
+ if (value.type === 'symlink') {
21
+ node_fs_1.default.symlinkSync(value.target, src);
22
+ }
23
+ }
24
+ }
25
+ exports.fmock = fmock;
26
+ function restore(tmpDir) {
27
+ const removeRecursive = (src) => {
28
+ if (node_fs_1.default.existsSync(src)) {
29
+ node_fs_1.default.readdirSync(src).forEach((item) => {
30
+ const curl = `${src}/${item}`;
31
+ node_fs_1.default.lstatSync(curl).isDirectory()
32
+ ? removeRecursive(curl)
33
+ : node_fs_1.default.unlinkSync(curl);
34
+ });
35
+ node_fs_1.default.rmdirSync(src);
36
+ }
37
+ };
38
+ removeRecursive(tmpDir);
39
+ }
40
+ exports.restore = restore;