pwd-fs 3.2.4 → 3.3.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.
@@ -3,16 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mkdir = exports.remove = exports.copy = exports.chown = exports.chmod = void 0;
6
+ exports.chmod = chmod;
7
+ exports.chown = chown;
8
+ exports.copy = copy;
9
+ exports.remove = remove;
10
+ exports.mkdir = mkdir;
7
11
  const node_fs_1 = __importDefault(require("node:fs"));
8
12
  const node_path_1 = __importDefault(require("node:path"));
9
- const { sep } = node_path_1.default;
10
13
  function chmod(src, mode, callback) {
11
14
  let reduce = 0;
12
15
  node_fs_1.default.stat(src, (err, stats) => {
13
- if (err) {
16
+ if (err)
14
17
  return callback(err);
15
- }
16
18
  if (stats.isDirectory()) {
17
19
  node_fs_1.default.readdir(src, (err, list) => {
18
20
  if (err) {
@@ -21,9 +23,9 @@ function chmod(src, mode, callback) {
21
23
  if (list.length === 0) {
22
24
  return node_fs_1.default.chmod(src, mode, callback);
23
25
  }
24
- reduce += list.length;
26
+ reduce = list.length;
25
27
  for (const loc of list) {
26
- chmod(`${src}${sep}${loc}`, mode, (err) => {
28
+ chmod(node_path_1.default.join(src, loc), mode, (err) => {
27
29
  if (err) {
28
30
  return callback(err);
29
31
  }
@@ -39,7 +41,6 @@ function chmod(src, mode, callback) {
39
41
  }
40
42
  });
41
43
  }
42
- exports.chmod = chmod;
43
44
  function chown(src, uid, gid, callback) {
44
45
  let reduce = 0;
45
46
  node_fs_1.default.stat(src, (err, stats) => {
@@ -60,9 +61,9 @@ function chown(src, uid, gid, callback) {
60
61
  if (list.length === 0) {
61
62
  return node_fs_1.default.chown(src, uid, gid, callback);
62
63
  }
63
- reduce += list.length;
64
+ reduce = list.length;
64
65
  for (const loc of list) {
65
- chown(`${src}${sep}${loc}`, uid, gid, (err) => {
66
+ chown(node_path_1.default.join(src, loc), uid, gid, (err) => {
66
67
  if (err) {
67
68
  return callback(err);
68
69
  }
@@ -78,9 +79,7 @@ function chown(src, uid, gid, callback) {
78
79
  }
79
80
  });
80
81
  }
81
- exports.chown = chown;
82
82
  function copy(src, dir, umask, callback) {
83
- let reduce = 0;
84
83
  node_fs_1.default.stat(src, (err, stat) => {
85
84
  if (err) {
86
85
  return callback(err);
@@ -90,20 +89,22 @@ function copy(src, dir, umask, callback) {
90
89
  if (err) {
91
90
  return callback(err);
92
91
  }
93
- reduce += list.length;
94
- const paths = src.split(sep);
95
- const loc = paths[paths.length - 1];
92
+ const loc = node_path_1.default.basename(src);
93
+ const destDir = node_path_1.default.join(dir, loc);
96
94
  const mode = 0o777 - umask;
97
- dir = `${dir}${sep}${loc}`;
98
- node_fs_1.default.mkdir(dir, { mode }, (err) => {
95
+ node_fs_1.default.mkdir(destDir, { mode }, (err) => {
99
96
  if (err) {
97
+ if (err.code === 'EEXIST') {
98
+ err = new Error(`Target already exists: ${destDir}`);
99
+ }
100
100
  return callback(err);
101
101
  }
102
- if (reduce === 0) {
102
+ if (list.length === 0) {
103
103
  return callback(null);
104
104
  }
105
- for (const loc of list) {
106
- copy(`${src}${sep}${loc}`, dir, umask, (err) => {
105
+ let reduce = list.length;
106
+ for (const item of list) {
107
+ copy(node_path_1.default.join(src, item), destDir, umask, (err) => {
107
108
  if (err) {
108
109
  return callback(err);
109
110
  }
@@ -116,22 +117,18 @@ function copy(src, dir, umask, callback) {
116
117
  });
117
118
  }
118
119
  else {
119
- const mode = 0o666 - umask;
120
120
  const loc = node_path_1.default.basename(src);
121
+ const dest = node_path_1.default.join(dir, loc);
122
+ const mode = 0o666 - umask;
121
123
  const readStream = node_fs_1.default.createReadStream(src);
122
- const writeStream = node_fs_1.default.createWriteStream(`${dir}${sep}${loc}`, {
123
- mode
124
- });
124
+ const writeStream = node_fs_1.default.createWriteStream(dest, { mode });
125
125
  readStream.on('error', callback);
126
126
  writeStream.on('error', callback);
127
- writeStream.on('close', () => {
128
- callback(null);
129
- });
127
+ writeStream.on('close', () => callback(null));
130
128
  readStream.pipe(writeStream);
131
129
  }
132
130
  });
133
131
  }
134
- exports.copy = copy;
135
132
  function remove(src, callback) {
136
133
  node_fs_1.default.stat(src, (err, stat) => {
137
134
  if (err) {
@@ -142,12 +139,12 @@ function remove(src, callback) {
142
139
  if (err) {
143
140
  return callback(err);
144
141
  }
145
- let reduce = list.length;
146
- if (reduce === 0) {
142
+ if (list.length === 0) {
147
143
  return node_fs_1.default.rmdir(src, callback);
148
144
  }
145
+ let reduce = list.length;
149
146
  for (const loc of list) {
150
- remove(`${src}${sep}${loc}`, (err) => {
147
+ remove(node_path_1.default.join(src, loc), (err) => {
151
148
  if (err) {
152
149
  return callback(err);
153
150
  }
@@ -163,35 +160,30 @@ function remove(src, callback) {
163
160
  }
164
161
  });
165
162
  }
166
- exports.remove = remove;
167
163
  function mkdir(dir, umask, callback) {
168
164
  const cwd = process.cwd();
169
165
  if (dir === cwd) {
170
166
  return callback(null);
171
167
  }
172
- const sequence = function* (dir, files, mode) {
173
- const iter = yield;
174
- for (const item of files) {
175
- dir += `${sep}${item}`;
176
- node_fs_1.default.mkdir(dir, { mode }, (err) => {
177
- if (err && err.errno !== -17) {
178
- return callback(err);
179
- }
180
- iter.next();
181
- });
182
- yield;
168
+ let base = '';
169
+ const mode = 0o777 - umask;
170
+ if (dir.startsWith(cwd)) {
171
+ base = cwd;
172
+ dir = dir.slice(cwd.length);
173
+ }
174
+ const parts = dir.split(node_path_1.default.sep).filter(Boolean);
175
+ function next(index) {
176
+ if (index >= parts.length) {
177
+ return callback(null);
183
178
  }
184
- callback(null);
185
- };
186
- let use = '';
187
- if (dir.indexOf(cwd) === 0) {
188
- use = cwd;
189
- dir = dir.substring(cwd.length);
179
+ base = node_path_1.default.join(base, parts[index]);
180
+ node_fs_1.default.mkdir(base, { mode }, (err) => {
181
+ if (err && err.code !== 'EEXIST') {
182
+ return callback(err);
183
+ }
184
+ next(index + 1);
185
+ });
190
186
  }
191
- const files = dir.split(sep);
192
- const mode = 0o777 - umask;
193
- const iter = sequence(use, files, mode);
194
- iter.next();
195
- iter.next(iter);
187
+ next(0);
196
188
  }
197
- exports.mkdir = mkdir;
189
+ //# sourceMappingURL=recurse-io.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recurse-io.js","sourceRoot":"","sources":["../../src/recurse-io.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pwd-fs",
3
- "version": "3.2.4",
3
+ "version": "3.3.0",
4
4
  "description": "Extend the file system the capabilities of declaring the present working directory and recursive execution",
5
5
  "keywords": [
6
6
  "umask",
@@ -36,12 +36,12 @@
36
36
  "test": "mocha ./dist/test"
37
37
  },
38
38
  "devDependencies": {
39
- "@types/chance": "^1.1.6",
40
- "@types/mocha": "^10.0.6",
41
- "@types/node": "^22.5.4",
42
- "chance": "^1.1.11",
43
- "expect": "^29.7.0",
44
- "mocha": "^10.4.0",
45
- "typescript": "^5.4.5"
39
+ "@types/chance": "^1.1.7",
40
+ "@types/mocha": "^10.0.10",
41
+ "@types/node": "^24.5.1",
42
+ "chance": "^1.1.13",
43
+ "expect": "^30.1.2",
44
+ "mocha": "^11.7.2",
45
+ "typescript": "^5.9.2"
46
46
  }
47
47
  }
package/src/bitmask.ts CHANGED
@@ -1,20 +1,13 @@
1
- export function bitmask(mode: number) {
2
- const type = typeof mode;
3
-
4
- if (type !== 'number') {
5
- throw new Error(
6
- `Argument of type '${type}' is not assignable to parameter of type 'number'.`
7
- );
1
+ export function bitmask(mode: number): number {
2
+ if (typeof mode !== 'number') {
3
+ throw new TypeError(`Expected 'number', got '${typeof mode}'`);
8
4
  }
9
5
 
10
- const permissions: number[] = [ 0o400, 0o200, 0o100, 0o040, 0o020, 0o010, 0o004, 0o002, 0o001 ];
11
- let umask = 0o000;
12
-
13
- for (const flag of permissions) {
14
- if (mode & flag) {
15
- umask += flag;
16
- }
17
- }
6
+ const permissions: number[] = [
7
+ 0o400, 0o200, 0o100, 0o040, 0o020, 0o010, 0o004, 0o002, 0o001
8
+ ];
18
9
 
19
- return umask;
20
- }
10
+ return permissions.reduce((umask, flag) => {
11
+ return (mode & flag) ? umask + flag : umask;
12
+ }, 0);
13
+ }
package/src/index.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  import { PoweredFileSystem } from './powered-file-system';
2
2
 
3
3
  export const pfs = new PoweredFileSystem();
4
-
5
4
  export default PoweredFileSystem;
6
-
7
5
  export * from './powered-file-system';