pwd-fs 3.2.3 → 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.
- package/dist/src/bitmask.js +10 -13
- package/dist/src/bitmask.js.map +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/powered-file-system.d.ts +42 -141
- package/dist/src/powered-file-system.js +67 -77
- package/dist/src/powered-file-system.js.map +1 -0
- package/dist/src/recurse-io-sync.js +16 -18
- package/dist/src/recurse-io-sync.js.map +1 -0
- package/dist/src/recurse-io.d.ts +0 -1
- package/dist/src/recurse-io.js +46 -54
- package/dist/src/recurse-io.js.map +1 -0
- package/package.json +8 -7
- package/src/bitmask.ts +10 -17
- package/src/index.ts +0 -2
- package/src/powered-file-system.ts +153 -292
- package/src/recurse-io-sync.ts +10 -13
- package/src/recurse-io.ts +44 -61
- package/test/append.spec.ts +0 -26
- package/tsconfig.json +10 -7
package/dist/src/recurse-io.js
CHANGED
|
@@ -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.
|
|
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
|
|
26
|
+
reduce = list.length;
|
|
25
27
|
for (const loc of list) {
|
|
26
|
-
chmod(
|
|
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
|
|
64
|
+
reduce = list.length;
|
|
64
65
|
for (const loc of list) {
|
|
65
|
-
chown(
|
|
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
|
-
|
|
94
|
-
const
|
|
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
|
-
|
|
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 (
|
|
102
|
+
if (list.length === 0) {
|
|
103
103
|
return callback(null);
|
|
104
104
|
}
|
|
105
|
-
|
|
106
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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,11 +36,12 @@
|
|
|
36
36
|
"test": "mocha ./dist/test"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@types/chance": "^1.1.
|
|
40
|
-
"@types/mocha": "^10.0.
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
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"
|
|
45
46
|
}
|
|
46
47
|
}
|
package/src/bitmask.ts
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
|
-
export function bitmask(mode: number) {
|
|
2
|
-
|
|
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[] = [
|
|
11
|
-
|
|
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
|
+
}
|