pwd-fs 3.1.3 → 3.2.0

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