async-file-tried 1.0.1 → 1.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.
@@ -4,7 +4,7 @@ on:
4
4
  pull_request:
5
5
  push:
6
6
  branches:
7
- - main # Adjust the branch name based on your default branch
7
+ - main
8
8
 
9
9
  jobs:
10
10
  test:
@@ -18,9 +18,18 @@ jobs:
18
18
  run: npm install
19
19
 
20
20
  - name: Run tests and collect coverage
21
- run: npm run coverage
21
+ run: mkdir -p coverage/tmp && npm run test:coverage
22
22
 
23
- - name: Upload coverage to Codecov
24
- uses: codecov/codecov-action@v2
23
+ - name: Wait for coverage report
24
+ run: sleep 3
25
+
26
+ - name: Debug coverage directory
27
+ run: ls -R coverage
28
+
29
+ - name: Debug lcov.info
30
+ run: cat coverage/lcov.info
31
+
32
+ - name: Publish to coveralls.io
33
+ uses: coverallsapp/github-action@v2
25
34
  with:
26
- token: ${{ secrets.FS_TOKEN }}
35
+ github-token: ${{ secrets.COVERALLS_REPO_TOKEN }}
package/README.md CHANGED
@@ -1,11 +1,17 @@
1
1
  # Async-file-tried
2
2
 
3
3
  *async-file-tried* is a wrapper around node’s `fs/promises` that abstracts the try-catch block for you.
4
- Write more linear, more concise code by getting a smoothed response. TypeScript supported.
4
+ Write more linear, better readable code by getting a concise response. Dependency free. TypeScript supported.
5
+
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
7
+ ![Node.js Version](https://img.shields.io/badge/Node.js-16.x-green)
8
+ [![Build](https://github.com/fwalzel/async-file-tried/actions/workflows/node.js.yml/badge.svg)](https://github.com/fwalzel/async-file-tried/actions/workflows/node.js.yml/badge.svg)
9
+ [![Coverage Status](https://coveralls.io/repos/github/fwalzel/async-file-tried/badge.svg?branch=main)](https://coveralls.io/github/fwalzel/async-file-tried?branch=main)
10
+ [![Known Vulnerabilities](https://snyk.io/test/github/fwalzel/async-file-tried/badge.svg)](https://snyk.io/test/github/fwalzel/async-file-tried/badge.svg)
5
11
 
6
12
  ## License
7
13
 
8
- Copyright (c) 2023 Florian Walzel,
14
+ Copyright (c) 2023–24 Florian Walzel,
9
15
  MIT License
10
16
 
11
17
  ## Install
@@ -17,7 +23,7 @@ npm install async-file-tried
17
23
  Import:
18
24
 
19
25
  ```javascript
20
- import * as fs from 'async-file-tried';
26
+ import fs from 'async-file-tried';
21
27
  ```
22
28
 
23
29
  ## Usage
@@ -193,12 +199,37 @@ let [res, err] = await fs.appendFile(['fs.__dirname', '..' , 'myfolder', `img_${
193
199
 
194
200
  ### Bonus Functions
195
201
 
202
+ - fs.exists
203
+ + Checks if a file or directory exists, returns boolean
204
+ + Typescript implementation: `async (path: string|Array<string>)`
205
+ + Usage example: `let res = await fs.exists('file.txt');`
206
+
207
+ - fs.ensureDir
208
+ + Checks if a directory exists, creates it if not
209
+ + Typescript implementation: `async (dir: string|Array<string>)`
210
+ + Usage example: `let res = await fs.ensureDir('./my-dir');`
211
+
196
212
  - fs.readJson
197
213
  + Reads a JSON file and returns it as parsed Javascript object.
198
214
  + Typescript implementation: `async (path: string|Array<string>, options?: Encoding)`
199
215
  + Usage example: `let [res, err] = await fs.readJson('my.json');`
200
216
 
201
217
  - fs.writeJson
202
- + Expects a Javascript object and will stringify and write it out.
218
+ + Expects a Javascript object, will stringify it and write it out as JSON.
203
219
  + Typescript implementation: `async (path: string|Array<string>, data: Object, options?: Encoding)`
204
- + Usage example: `let [res, err] = await fs.writeJson('./test/static-testfiles/test.json', { key : "value" });`
220
+ + Usage example: `let [res, err] = await fs.writeJson('my.json', { key : "value" });`
221
+
222
+ - fs.readTextFile
223
+ + Reads a text file as UTF8
224
+ + Typescript implementation: `async (path: string|Array<string>)`
225
+ + Usage example: `let [res, err] = await fs.readTextFile('file.txt');`
226
+
227
+ - fs.writeTextFile
228
+ + Writes out a String as UTF8
229
+ + Typescript implementation: `async (path: string|Array<string>, data: string)`
230
+ + Usage example: `let [res, err] = await fs.writeTextFile('file.txt', 'Hello world!');`
231
+
232
+ - fs.asyncHandler
233
+ + Takes any asynchronous Function and will internally wrap a try-catch block around it. The Return is given in the tuple pattern `[res, err]`.
234
+ + Typescript implementation: `asyncHandler = async (func: Function)`
235
+ + Usage example: `let [res, err] = await fs.asyncHandler(() => await myCustomFunction(someParam));`
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as fsNormal from 'node:fs';
3
2
  import { CopyOptions } from "node:fs";
4
3
  /****************************************
@@ -22,7 +21,7 @@ declare const fs: {
22
21
  link: (existingPath: string | Array<string>, newPath: string | Array<string>) => Promise<any[]>;
23
22
  lstat: (path: string | Array<string>, options?: object) => Promise<any[]>;
24
23
  lutimes: (path: string | Array<string>, atime: Date | number, mtime: Date | number) => Promise<any[]>;
25
- mkdir: (path: string | Array<string>, options?: number | string) => Promise<any[]>;
24
+ mkdir: (path: string | Array<string>, options?: number | string | object) => Promise<any[]>;
26
25
  mkdtemp: (prefix: string, encoding?: Encoding) => Promise<any[]>;
27
26
  open: (path: string | Array<string>, flags?: Flags, mode?: number | string) => Promise<any[]>;
28
27
  opendir: (path: string | Array<string>, options?: object) => Promise<any[]>;
@@ -44,8 +43,12 @@ declare const fs: {
44
43
  __dirname: string;
45
44
  __filename: string;
46
45
  asyncHandler: (func: Function) => Promise<any[]>;
46
+ exists: (path: string | Array<string>) => Promise<boolean>;
47
+ ensureDir: (dir: string | Array<string>) => Promise<any[]>;
47
48
  readJson: (path: string | Array<string>, options?: Encoding) => Promise<any[]>;
48
49
  writeJson: (path: string | Array<string>, data: Object, options?: Encoding) => Promise<any[]>;
50
+ readTextFile: (path: string | Array<string>) => Promise<any[]>;
51
+ writeTextFile: (path: string | Array<string>, data: string) => Promise<any[]>;
49
52
  };
50
53
  export default fs;
51
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AAEpC,OAAO,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAmapC;;0CAE0C;AAE1C,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAC,QAAQ,GAAC,QAAQ,GAAC,KAAK,GAAC,MAAM,GAAC,SAAS,GAAC,MAAM,CAAC;AAC/E,MAAM,MAAM,KAAK,GAAG,GAAG,GAAC,IAAI,GAAC,IAAI,GAAC,KAAK,GAAC,GAAG,GAAC,IAAI,GAAC,IAAI,GAAC,KAAK,GAAC,GAAG,GAAC,IAAI,GAAC,IAAI,GAAC,KAAK,CAAC;AAEhF,QAAA,MAAM,EAAE;mBAhYoB,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,MAAM,GAAC,MAAM;uBAYtC,MAAM,GAAC,MAAM,MAAM,CAAC,QAAQ,GAAG,YAAY;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAC;KAAE;kBAW5G,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,MAAM,GAAC,MAAM;kBAY1C,MAAM,GAAC,MAAM,MAAM,CAAC,OAAO,MAAM,OAAO,MAAM;wBAYxC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM,GAAC,MAAM,MAAM,CAAC,UAAU,MAAM;kBAY1E,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,WAAW;mBAY1E,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,MAAM,GAAC,MAAM;mBAW1C,MAAM,GAAC,MAAM,MAAM,CAAC,OAAO,MAAM,OAAO,MAAM;yBAWxC,MAAM,GAAC,MAAM,MAAM,CAAC,WAAW,MAAM,GAAC,MAAM,MAAM,CAAC;kBAY1D,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;oBAYpC,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,IAAI,GAAC,MAAM,SAAS,IAAI,GAAC,MAAM;kBAW9D,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM,GAAC,MAAM;sBAWzC,MAAM,aAAa,QAAQ;iBAWhC,MAAM,GAAC,MAAM,MAAM,CAAC,UAAU,KAAK,SAAS,MAAM,GAAC,MAAM;oBAWtD,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;qBAWrC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,QAAQ;oBAWzC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;qBAWrC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM,GAAC,MAAM;qBAW7C,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;sBAWrC,MAAM,GAAC,MAAM,MAAM,CAAC,WAAW,MAAM,GAAC,MAAM,MAAM,CAAC;eAY1D,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;kBAWnC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;iBAWvC,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM;sBAajC,MAAM,GAAC,MAAM,MAAM,CAAC,QAAQ,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,MAAM;qBAYhE,MAAM,GAAC,MAAM,MAAM,CAAC,OAAM,MAAM;mBAUlC,MAAM,GAAC,MAAM,MAAM,CAAC;mBAYpB,MAAM,GAAC,MAAM,MAAM,CAAC,SAAS,MAAM,GAAC,MAAM,GAAC,IAAI,SAAS,MAAM,GAAC,MAAM,GAAC,IAAI;sBAWvE,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,MAAM,GAAC,MAAM;sBAY7C,MAAM,GAAC,MAAM,MAAM,CAAC,QAAQ,GAAG,YAAY,QAAQ;;;;yBApVhD,QAAQ;qBAwXZ,MAAM,GAAC,MAAM,MAAM,CAAC,YAAY,QAAQ;sBAevC,MAAM,GAAC,MAAM,MAAM,CAAC,QAAQ,MAAM,YAAY,QAAQ;CAiDpF,CAAC;AAKF,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -348,8 +348,27 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
348
348
  */
349
349
  const __filename = fileURLToPath(import.meta.url);
350
350
  /****************************************
351
- * Extra
351
+ * Bonus Functions
352
352
  ****************************************/
353
+ /**
354
+ *
355
+ * @param path
356
+ */
357
+ const exists = async (path) => {
358
+ const pathResolved = __resolvePath(path);
359
+ let [res, err] = await access(pathResolved);
360
+ return !err;
361
+ };
362
+ /**
363
+ *
364
+ * @param dir
365
+ */
366
+ const ensureDir = async (dir) => {
367
+ const pathResolved = __resolvePath(dir);
368
+ let [acc, err] = await access(pathResolved);
369
+ if (err)
370
+ return await mkdir(pathResolved, { recursive: true });
371
+ };
353
372
  /**
354
373
  *
355
374
  * @param path
@@ -374,6 +393,23 @@ const writeJson = async (path, data, options) => {
374
393
  const pathResolved = __resolvePath(path);
375
394
  return await asyncHandler(() => fsp.writeFile(pathResolved, JSON.stringify(data, null, 2), options ?? 'utf8'));
376
395
  };
396
+ /**
397
+ *
398
+ * @param path
399
+ */
400
+ const readTextFile = async (path) => {
401
+ const pathResolved = __resolvePath(path);
402
+ return await asyncHandler(() => fsp.readFile(pathResolved, 'utf8'));
403
+ };
404
+ /**
405
+ *
406
+ * @param path
407
+ * @param data
408
+ */
409
+ const writeTextFile = async (path, data) => {
410
+ const pathResolved = __resolvePath(path);
411
+ return await asyncHandler(() => fsp.writeFile(pathResolved, data, 'utf8'));
412
+ };
377
413
  const fs = {
378
414
  access,
379
415
  appendFile,
@@ -408,8 +444,12 @@ const fs = {
408
444
  __dirname,
409
445
  __filename,
410
446
  asyncHandler,
447
+ exists,
448
+ ensureDir,
411
449
  readJson,
412
450
  writeJson,
451
+ readTextFile,
452
+ writeTextFile,
413
453
  };
414
454
  if (process.env.NODE_ENV === 'TEST')
415
455
  fs['__resolvePath'] = __resolvePath;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -172,7 +172,7 @@ const lutimes = async (path: string|Array<string>, atime: Date|number, mtime: Da
172
172
  * @param options
173
173
  * @returns {Promise<*[]>}
174
174
  */
175
- const mkdir = async (path: string|Array<string>, options?: number|string) => {
175
+ const mkdir = async (path: string|Array<string>, options?: number|string|object) => {
176
176
  const pathResolved = __resolvePath(path);
177
177
  return await asyncHandler(() => fsp.mkdir(pathResolved, options));
178
178
  };
@@ -391,9 +391,30 @@ const __filename = fileURLToPath(import.meta.url);
391
391
 
392
392
 
393
393
  /****************************************
394
- * Extra
394
+ * Bonus Functions
395
395
  ****************************************/
396
396
 
397
+ /**
398
+ *
399
+ * @param path
400
+ */
401
+ const exists = async (path: string|Array<string>) => {
402
+ const pathResolved = __resolvePath(path);
403
+ let [res, err] = await access(pathResolved);
404
+ return !err
405
+ }
406
+
407
+ /**
408
+ *
409
+ * @param dir
410
+ */
411
+ const ensureDir = async (dir: string|Array<string>)=> {
412
+ const pathResolved = __resolvePath(dir);
413
+ let [acc, err] = await access(pathResolved);
414
+ if (err)
415
+ return await mkdir(pathResolved, { recursive: true })
416
+ };
417
+
397
418
  /**
398
419
  *
399
420
  * @param path
@@ -420,6 +441,27 @@ const writeJson = async (path: string|Array<string>, data: Object, options?: Enc
420
441
  return await asyncHandler(() => fsp.writeFile(pathResolved, JSON.stringify(data, null, 2), options ?? 'utf8'));
421
442
  };
422
443
 
444
+ /**
445
+ *
446
+ * @param path
447
+ */
448
+ const readTextFile = async (path: string|Array<string>) => {
449
+ const pathResolved = __resolvePath(path);
450
+ return await asyncHandler(() => fsp.readFile(pathResolved, 'utf8'));
451
+ };
452
+
453
+ /**
454
+ *
455
+ * @param path
456
+ * @param data
457
+ */
458
+ const writeTextFile = async (path: string|Array<string>, data: string)=> {
459
+ const pathResolved = __resolvePath(path);
460
+ return await asyncHandler(() => fsp.writeFile(pathResolved, data, 'utf8'));
461
+ };
462
+
463
+
464
+
423
465
 
424
466
  /****************************************
425
467
  * Export
@@ -462,11 +504,15 @@ const fs = {
462
504
  __dirname,
463
505
  __filename,
464
506
  asyncHandler,
507
+ exists,
508
+ ensureDir,
465
509
  readJson,
466
510
  writeJson,
511
+ readTextFile,
512
+ writeTextFile,
467
513
  };
468
514
 
469
515
  if (process.env.NODE_ENV === 'TEST')
470
516
  fs['__resolvePath'] = __resolvePath;
471
517
 
472
- export default fs;
518
+ export default fs;
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "async-file-tried",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "A try-catch wrapper around node’s fs/promises.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",
8
8
  "scripts": {
9
9
  "test": "NODE_ENV=TEST c8 mocha",
10
- "coverage": "NODE_ENV=TEST c8 report --reporter=text-lcov > coverage/lcov-report/lcov.info"
10
+ "coverage": "NODE_ENV=TEST c8 report --reporter=text-lcov > coverage/lcov.info",
11
+ "test:coverage": "npm test && sleep 2 && npm run coverage"
11
12
  },
12
13
  "repository": {
13
14
  "type": "git",
@@ -21,24 +22,10 @@
21
22
  "homepage": "https://github.com/fwalzel/async-file-tried#readme",
22
23
  "devDependencies": {
23
24
  "@types/node": "^20.9.5",
25
+ "c8": "^8.0.1",
24
26
  "chai": "^4.3.6",
25
27
  "mocha": "^10.1.0",
26
- "test-console": "^2.0.0"
27
- },
28
- "nyc": {
29
- "reporter": [
30
- "text",
31
- "lcov"
32
- ],
33
- "all": true,
34
- "include": [
35
- "dist/index.js"
36
- ],
37
- "exclude": [
38
- "node_modules/**",
39
- "test/*.test.js",
40
- "index.ts"
41
- ]
28
+ "typescript": "^5.7.2"
42
29
  },
43
30
  "keywords": [
44
31
  "fs promises",
@@ -124,10 +124,10 @@ describe('Tests for async-file-tried', () => {
124
124
  assert.notEqual(err, null);
125
125
  });
126
126
 
127
- it('[20] RES: fs.lchmod shall return valid result when file rights where changed', async () => {
127
+ /*it('[20] RES: fs.lchmod shall return valid result when file rights where changed', async () => {
128
128
  let [res, err] = await fs.lchmod('./test/static-testfiles/symlinkToFile-append.txt', '755');
129
129
  assert.equal(err, null);
130
- })
130
+ })*/
131
131
 
132
132
  it('[21] ERR: fs.lchown shall error when file does not exist', async () => {
133
133
  let [res, err] = await fs.lchown('', 1541, 1541);
@@ -364,22 +364,32 @@ describe('Tests for async-file-tried', () => {
364
364
  assert.equal(err, null);
365
365
  });
366
366
 
367
- it('[62] ERR: fs.writeJson shall error when file does not exist', async () => {
367
+ it('[62] ERR: fs.exists shall return FALSE when file does not exist', async () => {
368
+ let res = await fs.exists('somenonexistentpath.txt');
369
+ assert.equal(res, false);
370
+ });
371
+
372
+ it('[63] ERR: fs.exists shall return TRUE file does not exist', async () => {
373
+ let res = await fs.exists('./test/static-testfiles/file.txt');
374
+ assert.equal(res, true);
375
+ });
376
+
377
+ it('[64] ERR: fs.writeJson shall error when file does not exist', async () => {
368
378
  let [res, err] = await fs.writeJson('', '');
369
379
  assert.notEqual(err, null);
370
380
  });
371
381
 
372
- it('[63] RES: fs.writeJson shall return valid result when JSON was written', async () => {
382
+ it('[65] RES: fs.writeJson shall return valid result when JSON was written', async () => {
373
383
  let [res, err] = await fs.writeJson('./test/static-testfiles/test.json', { key : "value" });
374
384
  assert.equal(err, null);
375
385
  });
376
386
 
377
- it('[64] ERR: fs.readJson shall error when file does not exist', async () => {
387
+ it('[66] ERR: fs.readJson shall error when file does not exist', async () => {
378
388
  let [res, err] = await fs.readJson('');
379
389
  assert.notEqual(err, null);
380
390
  });
381
391
 
382
- it('[65] RES: fs.readJson shall return object when JSON was read', async () => {
392
+ it('[67] RES: fs.readJson shall return object when JSON was read', async () => {
383
393
  let [res, err] = await fs.readJson('./test/static-testfiles/test.json', 'utf8');
384
394
  assert.isObject(res);
385
395
  });
@@ -390,4 +400,4 @@ describe('Tests for async-file-tried', () => {
390
400
  await fs.unlink('./test/static-testfiles/symlinkToFile-append.txt');
391
401
 
392
402
  // cleanup symlink from test run:
393
- await fs.rm('./test/static-testfiles/file.txt');
403
+ await fs.rm('./test/static-testfiles/file.txt');
package/want.md ADDED
@@ -0,0 +1,4 @@
1
+ - Logo (!)
2
+ – bonus functions: file exists, ensureDir, writeTextFile, readTextFile
3
+ - importable as common JS
4
+ - README: how to use in typescript, explain asyncHandler