async-file-tried 1.0.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/.github/workflows/coveralls.yml +26 -0
- package/.github/workflows/node.js.yml +30 -0
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +417 -0
- package/dist/index.js.map +1 -0
- package/index.ts +472 -0
- package/package.json +54 -0
- package/test/index.test.js +393 -0
- package/test/static-testfiles/append-copy.txt +1 -0
- package/test/static-testfiles/file.txt +0 -0
- package/test/static-testfiles/test.json +3 -0
- package/tsconfig.json +22 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
import * as path from 'node:path';
|
|
2
|
+
import * as fsp from 'node:fs/promises';
|
|
3
|
+
import * as fsNormal from 'node:fs';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
/****************************************
|
|
6
|
+
* Helpers
|
|
7
|
+
****************************************/
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* @param filePath
|
|
11
|
+
* @returns {*}
|
|
12
|
+
*/
|
|
13
|
+
const __resolvePath = (filePath) => {
|
|
14
|
+
return Array.isArray(filePath)
|
|
15
|
+
? path.join(...filePath)
|
|
16
|
+
: filePath;
|
|
17
|
+
};
|
|
18
|
+
/** asyncHandler
|
|
19
|
+
*
|
|
20
|
+
* @param func
|
|
21
|
+
* @returns {Promise<*[]>}
|
|
22
|
+
*/
|
|
23
|
+
const asyncHandler = async (func) => {
|
|
24
|
+
try {
|
|
25
|
+
return [await func(), null];
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return [null, error];
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
/****************************************
|
|
32
|
+
* fs interface
|
|
33
|
+
****************************************/
|
|
34
|
+
/** access
|
|
35
|
+
*
|
|
36
|
+
* @param path
|
|
37
|
+
* @param mode
|
|
38
|
+
* @returns {Promise<*[]>}
|
|
39
|
+
*/
|
|
40
|
+
const access = async (path, mode) => {
|
|
41
|
+
const pathResolved = __resolvePath(path);
|
|
42
|
+
return await asyncHandler(() => fsp.access(pathResolved, mode));
|
|
43
|
+
};
|
|
44
|
+
/** appendFile
|
|
45
|
+
*
|
|
46
|
+
* @param path
|
|
47
|
+
* @param data
|
|
48
|
+
* @param options
|
|
49
|
+
* @returns {Promise<*[]>}
|
|
50
|
+
*/
|
|
51
|
+
const appendFile = async (path, data, options) => {
|
|
52
|
+
const pathResolved = __resolvePath(path);
|
|
53
|
+
return await asyncHandler(() => fsp.appendFile(pathResolved, data, options));
|
|
54
|
+
};
|
|
55
|
+
/** chmod
|
|
56
|
+
*
|
|
57
|
+
* @param path
|
|
58
|
+
* @param mode
|
|
59
|
+
* @returns {Promise<*[]>}
|
|
60
|
+
*/
|
|
61
|
+
const chmod = async (path, mode) => {
|
|
62
|
+
const pathResolved = __resolvePath(path);
|
|
63
|
+
return await asyncHandler(() => fsp.chmod(pathResolved, mode));
|
|
64
|
+
};
|
|
65
|
+
/** chown
|
|
66
|
+
*
|
|
67
|
+
* @param path
|
|
68
|
+
* @param uid
|
|
69
|
+
* @param gid
|
|
70
|
+
* @returns {Promise<*[]>}
|
|
71
|
+
*/
|
|
72
|
+
const chown = async (path, uid, gid) => {
|
|
73
|
+
const pathResolved = __resolvePath(path);
|
|
74
|
+
return await asyncHandler(() => fsp.chown(pathResolved, uid, gid));
|
|
75
|
+
};
|
|
76
|
+
/** copyFile
|
|
77
|
+
*
|
|
78
|
+
* @param srcPath
|
|
79
|
+
* @param destPath
|
|
80
|
+
* @param flags
|
|
81
|
+
* @returns {Promise<*[]>}
|
|
82
|
+
*/
|
|
83
|
+
const copyFile = async (srcPath, destPath, flags) => {
|
|
84
|
+
const srcPathResolved = __resolvePath(srcPath);
|
|
85
|
+
const destPathResolved = __resolvePath(destPath);
|
|
86
|
+
return await asyncHandler(() => fsp.copyFile(srcPathResolved, destPathResolved, flags));
|
|
87
|
+
};
|
|
88
|
+
/** cp
|
|
89
|
+
*
|
|
90
|
+
* @param srcPath
|
|
91
|
+
* @param destPath
|
|
92
|
+
* @returns {Promise<*[]>}
|
|
93
|
+
*/
|
|
94
|
+
const cp = async (srcPath, destPath, options) => {
|
|
95
|
+
const srcPathResolved = __resolvePath(srcPath);
|
|
96
|
+
const destPathResolved = __resolvePath(destPath);
|
|
97
|
+
return await asyncHandler(() => fsp.cp(srcPathResolved, destPathResolved, options));
|
|
98
|
+
};
|
|
99
|
+
/** lchmod
|
|
100
|
+
*
|
|
101
|
+
* @param path
|
|
102
|
+
* @param mode
|
|
103
|
+
* @returns {Promise<*[]>}
|
|
104
|
+
*/
|
|
105
|
+
const lchmod = async (path, mode) => {
|
|
106
|
+
const pathResolved = __resolvePath(path);
|
|
107
|
+
return await asyncHandler(() => fsp.lchmod(pathResolved, mode));
|
|
108
|
+
};
|
|
109
|
+
/** lchown
|
|
110
|
+
*
|
|
111
|
+
* @param path
|
|
112
|
+
* @param mode
|
|
113
|
+
* @returns {Promise<*[]>}
|
|
114
|
+
*/
|
|
115
|
+
const lchown = async (path, uid, gid) => {
|
|
116
|
+
const pathResolved = __resolvePath(path);
|
|
117
|
+
return await asyncHandler(() => fsp.lchown(pathResolved, uid, gid));
|
|
118
|
+
};
|
|
119
|
+
/** link
|
|
120
|
+
*
|
|
121
|
+
* @param existingPath
|
|
122
|
+
* @param newPath
|
|
123
|
+
* @returns {Promise<*[]>}
|
|
124
|
+
*/
|
|
125
|
+
const link = async (existingPath, newPath) => {
|
|
126
|
+
const existingPathResolved = __resolvePath(existingPath);
|
|
127
|
+
const newPathResolved = __resolvePath(newPath);
|
|
128
|
+
return await asyncHandler(() => fsp.link(existingPathResolved, newPathResolved));
|
|
129
|
+
};
|
|
130
|
+
/** lstat
|
|
131
|
+
*
|
|
132
|
+
* @param path
|
|
133
|
+
* @param options
|
|
134
|
+
* @returns {Promise<*[]>}
|
|
135
|
+
*/
|
|
136
|
+
const lstat = async (path, options) => {
|
|
137
|
+
const pathResolved = __resolvePath(path);
|
|
138
|
+
return await asyncHandler(() => fsp.lstat(pathResolved, options));
|
|
139
|
+
};
|
|
140
|
+
/** lutimes
|
|
141
|
+
*
|
|
142
|
+
* @param path
|
|
143
|
+
* @param atime
|
|
144
|
+
* @param mtime
|
|
145
|
+
* @returns {Promise<*[]>}
|
|
146
|
+
*/
|
|
147
|
+
const lutimes = async (path, atime, mtime) => {
|
|
148
|
+
const pathResolved = __resolvePath(path);
|
|
149
|
+
return await asyncHandler(() => fsp.lutimes(pathResolved, atime, mtime));
|
|
150
|
+
};
|
|
151
|
+
/** mkdir
|
|
152
|
+
*
|
|
153
|
+
* @param path
|
|
154
|
+
* @param options
|
|
155
|
+
* @returns {Promise<*[]>}
|
|
156
|
+
*/
|
|
157
|
+
const mkdir = async (path, options) => {
|
|
158
|
+
const pathResolved = __resolvePath(path);
|
|
159
|
+
return await asyncHandler(() => fsp.mkdir(pathResolved, options));
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
*
|
|
163
|
+
* @param prefix
|
|
164
|
+
* @param options
|
|
165
|
+
* @returns {Promise<*[]>}
|
|
166
|
+
*/
|
|
167
|
+
const mkdtemp = async (prefix, encoding) => {
|
|
168
|
+
return await asyncHandler(() => fsp.mkdtemp(prefix, encoding));
|
|
169
|
+
};
|
|
170
|
+
/** open
|
|
171
|
+
*
|
|
172
|
+
* @param path
|
|
173
|
+
* @param flags
|
|
174
|
+
* @param mode
|
|
175
|
+
* @returns {Promise<*[]>}
|
|
176
|
+
*/
|
|
177
|
+
const open = async (path, flags, mode) => {
|
|
178
|
+
const pathResolved = __resolvePath(path);
|
|
179
|
+
return await asyncHandler(() => fsp.open(pathResolved, flags, mode));
|
|
180
|
+
};
|
|
181
|
+
/** opendir
|
|
182
|
+
*
|
|
183
|
+
* @param path
|
|
184
|
+
* @param options
|
|
185
|
+
* @returns {Promise<*[]>}
|
|
186
|
+
*/
|
|
187
|
+
const opendir = async (path, options) => {
|
|
188
|
+
const pathResolved = __resolvePath(path);
|
|
189
|
+
return await asyncHandler(() => fsp.opendir(pathResolved, options));
|
|
190
|
+
};
|
|
191
|
+
/** readFile
|
|
192
|
+
*
|
|
193
|
+
* @param path
|
|
194
|
+
* @param options
|
|
195
|
+
* @returns {Promise<*[]>}
|
|
196
|
+
*/
|
|
197
|
+
const readFile = async (path, options) => {
|
|
198
|
+
const pathResolved = __resolvePath(path);
|
|
199
|
+
return await asyncHandler(() => fsp.readFile(pathResolved, options));
|
|
200
|
+
};
|
|
201
|
+
/** readdir
|
|
202
|
+
*
|
|
203
|
+
* @param path
|
|
204
|
+
* @param options
|
|
205
|
+
* @returns {Promise<*[]>}
|
|
206
|
+
*/
|
|
207
|
+
const readdir = async (path, options) => {
|
|
208
|
+
const pathResolved = __resolvePath(path);
|
|
209
|
+
return await asyncHandler(() => fsp.readdir(pathResolved, options));
|
|
210
|
+
};
|
|
211
|
+
/** readlink
|
|
212
|
+
*
|
|
213
|
+
* @param path
|
|
214
|
+
* @param options
|
|
215
|
+
* @returns {Promise<*[]>}
|
|
216
|
+
*/
|
|
217
|
+
const readlink = async (path, options) => {
|
|
218
|
+
const pathResolved = __resolvePath(path);
|
|
219
|
+
return await asyncHandler(() => fsp.readlink(pathResolved, options));
|
|
220
|
+
};
|
|
221
|
+
/** realpath
|
|
222
|
+
*
|
|
223
|
+
* @param path
|
|
224
|
+
* @param options
|
|
225
|
+
* @returns {Promise<*[]>}
|
|
226
|
+
*/
|
|
227
|
+
const realpath = async (path, options) => {
|
|
228
|
+
const pathResolved = __resolvePath(path);
|
|
229
|
+
return await asyncHandler(() => fsp.realpath(pathResolved, options));
|
|
230
|
+
};
|
|
231
|
+
/** rename
|
|
232
|
+
*
|
|
233
|
+
* @param oldPath
|
|
234
|
+
* @param newPath
|
|
235
|
+
* @returns {Promise<*[]>}
|
|
236
|
+
*/
|
|
237
|
+
const rename = async (oldPath, newPath) => {
|
|
238
|
+
const oldPathResolved = __resolvePath(oldPath);
|
|
239
|
+
const newPathResolved = __resolvePath(newPath);
|
|
240
|
+
return await asyncHandler(() => fsp.rename(oldPathResolved, newPathResolved));
|
|
241
|
+
};
|
|
242
|
+
/** rm
|
|
243
|
+
*
|
|
244
|
+
* @param path
|
|
245
|
+
* @param options
|
|
246
|
+
* @returns {Promise<*[]>}
|
|
247
|
+
*/
|
|
248
|
+
const rm = async (path, options) => {
|
|
249
|
+
const pathResolved = __resolvePath(path);
|
|
250
|
+
return await asyncHandler(() => fsp.rm(pathResolved, options));
|
|
251
|
+
};
|
|
252
|
+
/** rmdir
|
|
253
|
+
*
|
|
254
|
+
* @param path
|
|
255
|
+
* @param options
|
|
256
|
+
* @returns {Promise<*[]>}
|
|
257
|
+
*/
|
|
258
|
+
const rmdir = async (path, options) => {
|
|
259
|
+
const pathResolved = __resolvePath(path);
|
|
260
|
+
return await asyncHandler(() => fsp.rmdir(pathResolved, options));
|
|
261
|
+
};
|
|
262
|
+
/** stat
|
|
263
|
+
*
|
|
264
|
+
* @param path
|
|
265
|
+
* @param options
|
|
266
|
+
* @returns {Promise<*[]>}
|
|
267
|
+
*/
|
|
268
|
+
const stat = async (path, options) => {
|
|
269
|
+
const pathResolved = __resolvePath(path);
|
|
270
|
+
return await asyncHandler(() => fsp.stat(pathResolved, options));
|
|
271
|
+
};
|
|
272
|
+
/** symlink
|
|
273
|
+
*
|
|
274
|
+
* @param target
|
|
275
|
+
* @param path
|
|
276
|
+
* @param type
|
|
277
|
+
* @returns {Promise<*[]>}
|
|
278
|
+
*/
|
|
279
|
+
const symlink = async (target, path, type) => {
|
|
280
|
+
const targetResolved = __resolvePath(target);
|
|
281
|
+
const pathResolved = __resolvePath(path);
|
|
282
|
+
return await asyncHandler(() => fsp.symlink(targetResolved, pathResolved, type));
|
|
283
|
+
};
|
|
284
|
+
/** truncate
|
|
285
|
+
*
|
|
286
|
+
* @param path
|
|
287
|
+
* @param len
|
|
288
|
+
* @returns {Promise<*[]>}
|
|
289
|
+
*/
|
|
290
|
+
const truncate = async (path, len) => {
|
|
291
|
+
const pathResolved = __resolvePath(path);
|
|
292
|
+
return await asyncHandler(() => fsp.truncate(pathResolved, len));
|
|
293
|
+
};
|
|
294
|
+
/** unlink
|
|
295
|
+
*
|
|
296
|
+
* @param path
|
|
297
|
+
* @returns {Promise<*[]>}
|
|
298
|
+
*/
|
|
299
|
+
const unlink = async (path) => {
|
|
300
|
+
const pathResolved = __resolvePath(path);
|
|
301
|
+
return await asyncHandler(() => fsp.unlink(pathResolved));
|
|
302
|
+
};
|
|
303
|
+
/** utimes
|
|
304
|
+
*
|
|
305
|
+
* @param path
|
|
306
|
+
* @param atime
|
|
307
|
+
* @param mtime
|
|
308
|
+
* @returns {Promise<*[]>}
|
|
309
|
+
*/
|
|
310
|
+
const utimes = async (path, atime, mtime) => {
|
|
311
|
+
const pathResolved = __resolvePath(path);
|
|
312
|
+
return await asyncHandler(() => fsp.utimes(pathResolved, atime, mtime));
|
|
313
|
+
};
|
|
314
|
+
/** watch
|
|
315
|
+
*
|
|
316
|
+
* @param filename
|
|
317
|
+
* @param options
|
|
318
|
+
* @returns {Promise<*[]>}
|
|
319
|
+
*/
|
|
320
|
+
const watch = async (filename, options) => {
|
|
321
|
+
const filenameResolved = __resolvePath(filename);
|
|
322
|
+
return await asyncHandler(() => fsp.watch(filenameResolved, options));
|
|
323
|
+
};
|
|
324
|
+
/** writeFile
|
|
325
|
+
*
|
|
326
|
+
* @param path
|
|
327
|
+
* @param data
|
|
328
|
+
* @param options
|
|
329
|
+
* @returns {Promise<*[]>}
|
|
330
|
+
*/
|
|
331
|
+
const writeFile = async (path, data, options) => {
|
|
332
|
+
const pathResolved = __resolvePath(path);
|
|
333
|
+
return await asyncHandler(() => fsp.writeFile(pathResolved, data, options));
|
|
334
|
+
};
|
|
335
|
+
/****************************************
|
|
336
|
+
* Constants
|
|
337
|
+
****************************************/
|
|
338
|
+
/**
|
|
339
|
+
* fs.constants
|
|
340
|
+
*/
|
|
341
|
+
const constants = fsNormal.constants;
|
|
342
|
+
/**
|
|
343
|
+
* __dirname in Node.js when using ES6 modules
|
|
344
|
+
*/
|
|
345
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
346
|
+
/**
|
|
347
|
+
* __filename in Node.js when using ES6 modules
|
|
348
|
+
*/
|
|
349
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
350
|
+
/****************************************
|
|
351
|
+
* Extra
|
|
352
|
+
****************************************/
|
|
353
|
+
/**
|
|
354
|
+
*
|
|
355
|
+
* @param path
|
|
356
|
+
* @param options
|
|
357
|
+
* @returns {Promise<any>}
|
|
358
|
+
*/
|
|
359
|
+
const readJson = async (path, options) => {
|
|
360
|
+
const pathResolved = __resolvePath(path);
|
|
361
|
+
let [res, err] = await asyncHandler(() => fsp.readFile(pathResolved, options ?? 'utf8'));
|
|
362
|
+
return res
|
|
363
|
+
? [JSON.parse(res), null]
|
|
364
|
+
: [null, err];
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
*
|
|
368
|
+
* @param path
|
|
369
|
+
* @param data
|
|
370
|
+
* @param options
|
|
371
|
+
* @returns {Promise<*[]>}
|
|
372
|
+
*/
|
|
373
|
+
const writeJson = async (path, data, options) => {
|
|
374
|
+
const pathResolved = __resolvePath(path);
|
|
375
|
+
return await asyncHandler(() => fsp.writeFile(pathResolved, JSON.stringify(data, null, 2), options ?? 'utf8'));
|
|
376
|
+
};
|
|
377
|
+
const fs = {
|
|
378
|
+
access,
|
|
379
|
+
appendFile,
|
|
380
|
+
chmod,
|
|
381
|
+
chown,
|
|
382
|
+
copyFile,
|
|
383
|
+
cp,
|
|
384
|
+
lchmod,
|
|
385
|
+
lchown,
|
|
386
|
+
link,
|
|
387
|
+
lstat,
|
|
388
|
+
lutimes,
|
|
389
|
+
mkdir,
|
|
390
|
+
mkdtemp,
|
|
391
|
+
open,
|
|
392
|
+
opendir,
|
|
393
|
+
readFile,
|
|
394
|
+
readdir,
|
|
395
|
+
readlink,
|
|
396
|
+
realpath,
|
|
397
|
+
rename,
|
|
398
|
+
rm,
|
|
399
|
+
rmdir,
|
|
400
|
+
stat,
|
|
401
|
+
symlink,
|
|
402
|
+
truncate,
|
|
403
|
+
unlink,
|
|
404
|
+
utimes,
|
|
405
|
+
watch,
|
|
406
|
+
writeFile,
|
|
407
|
+
constants,
|
|
408
|
+
__dirname,
|
|
409
|
+
__filename,
|
|
410
|
+
asyncHandler,
|
|
411
|
+
readJson,
|
|
412
|
+
writeJson,
|
|
413
|
+
};
|
|
414
|
+
if (process.env.NODE_ENV === 'TEST')
|
|
415
|
+
fs['__resolvePath'] = __resolvePath;
|
|
416
|
+
export default fs;
|
|
417
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|