@appsemble/node-utils 0.20.11 → 0.20.14

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 (72) hide show
  1. package/AppsembleError.js +1 -5
  2. package/AppsembleError.js.map +1 -1
  3. package/AppsembleError.test.js +2 -4
  4. package/AppsembleError.test.js.map +1 -1
  5. package/AppsembleError.test.ts +1 -1
  6. package/README.md +4 -4
  7. package/basicAuth.js +1 -5
  8. package/basicAuth.js.map +1 -1
  9. package/basicAuth.test.js +2 -4
  10. package/basicAuth.test.js.map +1 -1
  11. package/basicAuth.test.ts +1 -1
  12. package/formData.js +5 -12
  13. package/formData.js.map +1 -1
  14. package/formData.test.js +9 -11
  15. package/formData.test.js.map +1 -1
  16. package/formData.test.ts +1 -1
  17. package/fs.d.ts +2 -1
  18. package/fs.js +35 -65
  19. package/fs.js.map +1 -1
  20. package/fs.test.js +32 -34
  21. package/fs.test.js.map +1 -1
  22. package/fs.test.ts +6 -6
  23. package/fs.ts +12 -9
  24. package/getWorkspaces.js +6 -13
  25. package/getWorkspaces.js.map +1 -1
  26. package/handleError.js +6 -10
  27. package/handleError.js.map +1 -1
  28. package/handleError.test.js +13 -15
  29. package/handleError.test.js.map +1 -1
  30. package/handleError.test.ts +7 -7
  31. package/handleError.ts +2 -2
  32. package/index.d.ts +11 -11
  33. package/index.js +11 -27
  34. package/index.js.map +1 -1
  35. package/index.ts +11 -11
  36. package/interceptors.js +17 -27
  37. package/interceptors.js.map +1 -1
  38. package/interceptors.test.js +30 -40
  39. package/interceptors.test.js.map +1 -1
  40. package/interceptors.test.ts +7 -13
  41. package/interceptors.ts +1 -1
  42. package/jest.config.js +3 -1
  43. package/jest.setup.js +4 -6
  44. package/jest.setup.js.map +1 -1
  45. package/jest.setup.ts +3 -3
  46. package/logger.js +27 -35
  47. package/logger.js.map +1 -1
  48. package/logger.test.js +15 -17
  49. package/logger.test.js.map +1 -1
  50. package/logger.test.ts +1 -1
  51. package/loggerMiddleware.js +18 -25
  52. package/loggerMiddleware.js.map +1 -1
  53. package/loggerMiddleware.test.js +42 -52
  54. package/loggerMiddleware.test.js.map +1 -1
  55. package/loggerMiddleware.test.ts +15 -21
  56. package/loggerMiddleware.ts +1 -1
  57. package/package.json +8 -9
  58. package/readFileOrString.js +5 -9
  59. package/readFileOrString.js.map +1 -1
  60. package/readFileOrString.test.js +4 -6
  61. package/readFileOrString.test.js.map +1 -1
  62. package/readFileOrString.test.ts +2 -2
  63. package/readFileOrString.ts +1 -1
  64. package/testFixtures.d.ts +5 -4
  65. package/testFixtures.js +13 -24
  66. package/testFixtures.js.map +1 -1
  67. package/testFixtures.ts +9 -9
  68. package/tsconfig.json +1 -1
  69. package/__mocks__/os.d.ts +0 -5
  70. package/__mocks__/os.js +0 -8
  71. package/__mocks__/os.js.map +0 -1
  72. package/__mocks__/os.ts +0 -10
package/AppsembleError.js CHANGED
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AppsembleError = void 0;
4
1
  /**
5
2
  * Used for throwing known Appsemble errors.
6
3
  *
7
4
  * This is used when the normal control flow needs to be aborted, but for reasons known. When an
8
5
  * instance of `AppsembleError` is thrown, the message will be logged, but not the stack trace.
9
6
  */
10
- class AppsembleError extends Error {
7
+ export class AppsembleError extends Error {
11
8
  /**
12
9
  * @param message The error message to show to the user.
13
10
  */
@@ -17,5 +14,4 @@ class AppsembleError extends Error {
17
14
  Error.captureStackTrace(this, this.constructor);
18
15
  }
19
16
  }
20
- exports.AppsembleError = AppsembleError;
21
17
  //# sourceMappingURL=AppsembleError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppsembleError.js","sourceRoot":"","sources":["AppsembleError.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,KAAK;IACvC;;OAEG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AATD,wCASC"}
1
+ {"version":3,"file":"AppsembleError.js","sourceRoot":"","sources":["AppsembleError.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC;;OAEG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -1,8 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const AppsembleError_1 = require("./AppsembleError");
1
+ import { AppsembleError } from './AppsembleError.js';
4
2
  it('should define AppsembleError as its name', () => {
5
- const error = new AppsembleError_1.AppsembleError('message');
3
+ const error = new AppsembleError('message');
6
4
  expect(error.name).toBe('AppsembleError');
7
5
  });
8
6
  //# sourceMappingURL=AppsembleError.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppsembleError.test.js","sourceRoot":"","sources":["AppsembleError.test.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAElD,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,KAAK,GAAG,IAAI,+BAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"AppsembleError.test.js","sourceRoot":"","sources":["AppsembleError.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AppsembleError } from './AppsembleError';
1
+ import { AppsembleError } from './AppsembleError.js';
2
2
 
3
3
  it('should define AppsembleError as its name', () => {
4
4
  const error = new AppsembleError('message');
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # ![](https://gitlab.com/appsemble/appsemble/-/raw/0.18.23/config/assets/logo.svg) Appsemble Node Utilities
1
+ # ![](https://gitlab.com/appsemble/appsemble/-/raw/0.20.14/config/assets/logo.svg) Appsemble Node Utilities
2
2
 
3
3
  > NodeJS utilities used by Appsemble internally.
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/@appsemble/node-utils)](https://www.npmjs.com/package/@appsemble/node-utils)
6
- [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.18.23/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.18.23)
7
- [![Code coverage](https://codecov.io/gl/appsemble/appsemble/branch/0.18.23/graph/badge.svg)](https://codecov.io/gl/appsemble/appsemble)
6
+ [![GitLab CI](https://gitlab.com/appsemble/appsemble/badges/0.20.14/pipeline.svg)](https://gitlab.com/appsemble/appsemble/-/releases/0.20.14)
7
+ [![Code coverage](https://codecov.io/gl/appsemble/appsemble/branch/0.20.14/graph/badge.svg)](https://codecov.io/gl/appsemble/appsemble)
8
8
  [![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://prettier.io)
9
9
 
10
10
  ## Installation
@@ -21,5 +21,5 @@ compatibility is not guaranteed.
21
21
 
22
22
  ## License
23
23
 
24
- [LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.18.23/LICENSE.md) ©
24
+ [LGPL-3.0-only](https://gitlab.com/appsemble/appsemble/-/blob/0.20.14/LICENSE.md) ©
25
25
  [Appsemble](https://appsemble.com)
package/basicAuth.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.basicAuth = void 0;
4
1
  /**
5
2
  * Create a basic auth authorization header from a username and password.
6
3
  *
@@ -8,8 +5,7 @@ exports.basicAuth = void 0;
8
5
  * @param password The password to serialize.
9
6
  * @returns An HTTP basic auth authorization header.
10
7
  */
11
- function basicAuth(username, password) {
8
+ export function basicAuth(username, password) {
12
9
  return `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`;
13
10
  }
14
- exports.basicAuth = basicAuth;
15
11
  //# sourceMappingURL=basicAuth.js.map
package/basicAuth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"basicAuth.js","sourceRoot":"","sources":["basicAuth.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,QAAgB;IAC1D,OAAO,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9E,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"basicAuth.js","sourceRoot":"","sources":["basicAuth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,QAAgB;IAC1D,OAAO,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC9E,CAAC"}
package/basicAuth.test.js CHANGED
@@ -1,8 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const basicAuth_1 = require("./basicAuth");
1
+ import { basicAuth } from './basicAuth.js';
4
2
  it('should serialize credentials', () => {
5
- const result = (0, basicAuth_1.basicAuth)('me', 'password1');
3
+ const result = basicAuth('me', 'password1');
6
4
  expect(result).toBe('Basic bWU6cGFzc3dvcmQx');
7
5
  });
8
6
  //# sourceMappingURL=basicAuth.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"basicAuth.test.js","sourceRoot":"","sources":["basicAuth.test.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AAExC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,MAAM,GAAG,IAAA,qBAAS,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"basicAuth.test.js","sourceRoot":"","sources":["basicAuth.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACtC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
package/basicAuth.test.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { basicAuth } from './basicAuth';
1
+ import { basicAuth } from './basicAuth.js';
2
2
 
3
3
  it('should serialize credentials', () => {
4
4
  const result = basicAuth('me', 'password1');
package/formData.js CHANGED
@@ -1,11 +1,5 @@
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.createFormData = void 0;
7
- const fs_1 = require("fs");
8
- const form_data_1 = __importDefault(require("form-data"));
1
+ import { ReadStream } from 'fs';
2
+ import FormData from 'form-data';
9
3
  function appendFormData(key, value, form) {
10
4
  if (value === undefined) {
11
5
  return;
@@ -16,7 +10,7 @@ function appendFormData(key, value, form) {
16
10
  }
17
11
  }
18
12
  else {
19
- form.append(key, typeof value === 'string' || Buffer.isBuffer(value) || value instanceof fs_1.ReadStream
13
+ form.append(key, typeof value === 'string' || Buffer.isBuffer(value) || value instanceof ReadStream
20
14
  ? value
21
15
  : JSON.stringify(value));
22
16
  }
@@ -29,12 +23,11 @@ function appendFormData(key, value, form) {
29
23
  * objects. Arrays will be iterated over and every item will be appended for the given key.
30
24
  * @returns The data represented as form data.
31
25
  */
32
- function createFormData(data) {
33
- const form = new form_data_1.default();
26
+ export function createFormData(data) {
27
+ const form = new FormData();
34
28
  for (const [key, value] of Object.entries(data)) {
35
29
  appendFormData(key, value, form);
36
30
  }
37
31
  return form;
38
32
  }
39
- exports.createFormData = createFormData;
40
33
  //# sourceMappingURL=formData.js.map
package/formData.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"formData.js","sourceRoot":"","sources":["formData.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAgC;AAEhC,0DAAiC;AAEjC,SAAS,cAAc,CAAC,GAAW,EAAE,KAAU,EAAE,IAAc;IAC7D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO;KACR;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAChC;KACF;SAAM;QACL,IAAI,CAAC,MAAM,CACT,GAAG,EACH,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,eAAU;YAChF,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAC1B,CAAC;KACH;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,IAAyB;IACtD,MAAM,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAClC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAND,wCAMC"}
1
+ {"version":3,"file":"formData.js","sourceRoot":"","sources":["formData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,SAAS,cAAc,CAAC,GAAW,EAAE,KAAU,EAAE,IAAc;IAC7D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO;KACR;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACvB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAChC;KACF;SAAM;QACL,IAAI,CAAC,MAAM,CACT,GAAG,EACH,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,UAAU;YAChF,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAC1B,CAAC;KACH;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAyB;IACtD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAClC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/formData.test.js CHANGED
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const formData_1 = require("./formData");
1
+ import { createFormData } from './formData.js';
4
2
  describe('createFormData', () => {
5
3
  it('should handle strings', () => {
6
- const form = (0, formData_1.createFormData)({ foo: 'bar' });
4
+ const form = createFormData({ foo: 'bar' });
7
5
  const boundary = form.getBoundary();
8
6
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
9
7
  Content-Disposition: form-data; name="foo"\r
@@ -13,7 +11,7 @@ bar\r
13
11
  `);
14
12
  });
15
13
  it('should handle numbers', () => {
16
- const form = (0, formData_1.createFormData)({ answer: 42 });
14
+ const form = createFormData({ answer: 42 });
17
15
  const boundary = form.getBoundary();
18
16
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
19
17
  Content-Disposition: form-data; name="answer"\r
@@ -23,7 +21,7 @@ Content-Disposition: form-data; name="answer"\r
23
21
  `);
24
22
  });
25
23
  it('should handle booleans', () => {
26
- const form = (0, formData_1.createFormData)({ really: true });
24
+ const form = createFormData({ really: true });
27
25
  const boundary = form.getBoundary();
28
26
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
29
27
  Content-Disposition: form-data; name="really"\r
@@ -33,7 +31,7 @@ true\r
33
31
  `);
34
32
  });
35
33
  it('should handle buffers', () => {
36
- const form = (0, formData_1.createFormData)({ buf: Buffer.from('fer') });
34
+ const form = createFormData({ buf: Buffer.from('fer') });
37
35
  const boundary = form.getBoundary();
38
36
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
39
37
  Content-Disposition: form-data; name="buf"\r
@@ -44,7 +42,7 @@ fer\r
44
42
  `);
45
43
  });
46
44
  it('should handle null', () => {
47
- const form = (0, formData_1.createFormData)({ really: true });
45
+ const form = createFormData({ really: true });
48
46
  const boundary = form.getBoundary();
49
47
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
50
48
  Content-Disposition: form-data; name="really"\r
@@ -54,12 +52,12 @@ true\r
54
52
  `);
55
53
  });
56
54
  it('should ignore undefined', () => {
57
- const form = (0, formData_1.createFormData)({ defined: undefined });
55
+ const form = createFormData({ defined: undefined });
58
56
  const boundary = form.getBoundary();
59
57
  expect(String(form.getBuffer())).toBe(`--${boundary}--\r\n`);
60
58
  });
61
59
  it('should convert objects to JSON', () => {
62
- const form = (0, formData_1.createFormData)({ deeply: { nested: 'data' } });
60
+ const form = createFormData({ deeply: { nested: 'data' } });
63
61
  const boundary = form.getBoundary();
64
62
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
65
63
  Content-Disposition: form-data; name="deeply"\r
@@ -69,7 +67,7 @@ Content-Disposition: form-data; name="deeply"\r
69
67
  `);
70
68
  });
71
69
  it('should append multiple entries if the input is an array', () => {
72
- const form = (0, formData_1.createFormData)({ array: [42, 'bananas', null, { fruit: true }] });
70
+ const form = createFormData({ array: [42, 'bananas', null, { fruit: true }] });
73
71
  const boundary = form.getBoundary();
74
72
  expect(String(form.getBuffer())).toBe(`--${boundary}\r
75
73
  Content-Disposition: form-data; name="array"\r
@@ -1 +1 @@
1
- {"version":3,"file":"formData.test.js","sourceRoot":"","sources":["formData.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formData.test.js","sourceRoot":"","sources":["formData.test.ts"],"names":[],"mappings":"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"}
package/formData.test.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { createFormData } from './formData';
1
+ import { createFormData } from './formData.js';
2
2
 
3
3
  describe('createFormData', () => {
4
4
  it('should handle strings', () => {
package/fs.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ /// <reference types="node" />
3
4
  import { Dirent } from 'fs';
4
5
  import { Promisable } from 'type-fest';
5
6
  /**
@@ -16,7 +17,7 @@ export declare function isErrno(error: unknown, code?: string): error is NodeJS.
16
17
  * @param path The path to the file to read.
17
18
  * @returns A tuple of the parsed content and the content as a string.
18
19
  */
19
- export declare function readData<R>(path: string): Promise<[R, string]>;
20
+ export declare function readData<R>(path: URL | string): Promise<[R, string]>;
20
21
  interface WriteDataOptions {
21
22
  /**
22
23
  * If false, don’t sort the object keys.
package/fs.js CHANGED
@@ -1,39 +1,10 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.opendirSafe = exports.writeData = exports.readData = exports.isErrno = void 0;
30
- const promises_1 = require("fs/promises");
31
- const path_1 = require("path");
32
- const utils_1 = require("@appsemble/utils");
33
- const parse_json_1 = __importDefault(require("parse-json"));
34
- const sort_keys_1 = __importDefault(require("sort-keys"));
35
- const yaml_1 = require("yaml");
36
- const _1 = require(".");
1
+ import { mkdir, opendir, readFile, stat, writeFile } from 'fs/promises';
2
+ import { dirname, extname, join } from 'path';
3
+ import { compareStrings } from '@appsemble/utils';
4
+ import parseJson from 'parse-json';
5
+ import sortKeys from 'sort-keys';
6
+ import { parse, stringify } from 'yaml';
7
+ import { AppsembleError } from './index.js';
37
8
  /**
38
9
  * Test if the error is a NodeJS errno exception.
39
10
  *
@@ -41,7 +12,7 @@ const _1 = require(".");
41
12
  * @param code If specified, theck if the code matches
42
13
  * @returns Whether or not the error is a NodeJS errno exception.
43
14
  */
44
- function isErrno(error, code) {
15
+ export function isErrno(error, code) {
45
16
  if (!error || typeof error !== 'object') {
46
17
  return false;
47
18
  }
@@ -51,36 +22,34 @@ function isErrno(error, code) {
51
22
  }
52
23
  return typeof err.code === 'string';
53
24
  }
54
- exports.isErrno = isErrno;
55
25
  /**
56
26
  * Read the content of a JSON or YAML file.
57
27
  *
58
28
  * @param path The path to the file to read.
59
29
  * @returns A tuple of the parsed content and the content as a string.
60
30
  */
61
- async function readData(path) {
31
+ export async function readData(path) {
62
32
  let content;
63
- const ext = (0, path_1.extname)(path);
33
+ const ext = extname(String(path));
64
34
  try {
65
- content = await (0, promises_1.readFile)(path, 'utf8');
35
+ content = await readFile(path, 'utf8');
66
36
  }
67
37
  catch {
68
- throw new _1.AppsembleError(`Error reading file ${path}`);
38
+ throw new AppsembleError(`Error reading file ${path}`);
69
39
  }
70
40
  if (ext !== '.yaml' && ext !== '.yml' && ext !== '.json') {
71
- throw new _1.AppsembleError(`Unknown file extension: ${path}`);
41
+ throw new AppsembleError(`Unknown file extension: ${path}`);
72
42
  }
73
43
  try {
74
44
  return [
75
- ext === '.json' ? (0, parse_json_1.default)(content) : (0, yaml_1.parse)(content, { maxAliasCount: 10000 }),
45
+ ext === '.json' ? parseJson(content) : parse(content, { maxAliasCount: 10000 }),
76
46
  content,
77
47
  ];
78
48
  }
79
49
  catch (error) {
80
- throw new _1.AppsembleError(`Error parsing ${path}\n${error.message}`);
50
+ throw new AppsembleError(`Error parsing ${path}\n${error.message}`);
81
51
  }
82
52
  }
83
- exports.readData = readData;
84
53
  /**
85
54
  * Write data to a file serialized as JSON or YAML.
86
55
  *
@@ -91,27 +60,29 @@ exports.readData = readData;
91
60
  * @param options Additional options for processing the data.
92
61
  * @returns The formatted content.
93
62
  */
94
- async function writeData(path, data, { compare = utils_1.compareStrings, sort = true } = {}) {
95
- const sorted = sort ? (0, sort_keys_1.default)(data, { deep: true, compare: compare || undefined }) : data;
63
+ export async function writeData(path, data, { compare = compareStrings, sort = true } = {}) {
64
+ const sorted = sort ? sortKeys(data, { deep: true, compare: compare || undefined }) : data;
96
65
  let buffer;
97
66
  try {
98
- const { format, getFileInfo, resolveConfig } = await Promise.resolve().then(() => __importStar(require('prettier')));
99
- const { inferredParser } = await getFileInfo(path, { resolveConfig: true });
100
- const prettierOptions = await resolveConfig(path, { editorconfig: true });
67
+ const { default: prettier } = await import('prettier');
68
+ const { inferredParser } = await prettier.getFileInfo(path, { resolveConfig: true });
69
+ const prettierOptions = await prettier.resolveConfig(path, { editorconfig: true });
101
70
  prettierOptions.parser = inferredParser;
102
- buffer = inferredParser === 'yaml' ? (0, yaml_1.stringify)(sorted) : JSON.stringify(sorted, undefined, 2);
103
- buffer = format(buffer, prettierOptions);
71
+ buffer =
72
+ inferredParser === 'yaml' ? stringify(sorted) : `${JSON.stringify(sorted, undefined, 2)}\n`;
73
+ buffer = prettier.format(buffer, prettierOptions);
104
74
  }
105
75
  catch {
106
- const ext = (0, path_1.extname)(path);
76
+ const ext = extname(path);
107
77
  buffer =
108
- ext === '.yml' || ext === '.yaml' ? (0, yaml_1.stringify)(sorted) : JSON.stringify(sorted, undefined, 2);
78
+ ext === '.yml' || ext === '.yaml'
79
+ ? stringify(sorted)
80
+ : `${JSON.stringify(sorted, undefined, 2)}\n`;
109
81
  }
110
- await (0, promises_1.mkdir)((0, path_1.dirname)(path), { recursive: true });
111
- await (0, promises_1.writeFile)(path, buffer);
82
+ await mkdir(dirname(path), { recursive: true });
83
+ await writeFile(path, buffer);
112
84
  return buffer;
113
85
  }
114
- exports.writeData = writeData;
115
86
  /**
116
87
  * Read the contents of a directory.
117
88
  *
@@ -120,28 +91,27 @@ exports.writeData = writeData;
120
91
  * file path as its first argument and its `Dirent` object as the second argument.
121
92
  * @param options Additional options.
122
93
  */
123
- async function opendirSafe(directory, onFile, options = {}) {
94
+ export async function opendirSafe(directory, onFile, options = {}) {
124
95
  let stats;
125
96
  try {
126
- stats = await (0, promises_1.stat)(directory);
97
+ stats = await stat(directory);
127
98
  }
128
99
  catch (err) {
129
100
  if (options.allowMissing && isErrno(err, 'ENOENT')) {
130
101
  return;
131
102
  }
132
- throw new _1.AppsembleError(`Expected ${directory} to be a directory`);
103
+ throw new AppsembleError(`Expected ${directory} to be a directory`);
133
104
  }
134
105
  if (!stats.isDirectory()) {
135
- throw new _1.AppsembleError(`Expected ${directory} to be a directory`);
106
+ throw new AppsembleError(`Expected ${directory} to be a directory`);
136
107
  }
137
- const dir = await (0, promises_1.opendir)(directory);
108
+ const dir = await opendir(directory);
138
109
  for await (const file of dir) {
139
- const fullPath = (0, path_1.join)(directory, file.name);
110
+ const fullPath = join(directory, file.name);
140
111
  await onFile(fullPath, file);
141
112
  if (options.recursive && file.isDirectory()) {
142
113
  await opendirSafe(fullPath, onFile, options);
143
114
  }
144
115
  }
145
116
  }
146
- exports.opendirSafe = opendirSafe;
147
117
  //# sourceMappingURL=fs.js.map
package/fs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["fs.ts"],"names":[],"mappings":"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"}
package/fs.test.js CHANGED
@@ -1,75 +1,73 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const _1 = require(".");
1
+ import { AppsembleError, isErrno, opendirSafe, readData, resolveFixture } from './index.js';
4
2
  describe('isErrno', () => {
5
3
  it('should return false for null', () => {
6
- expect((0, _1.isErrno)(null)).toBe(false);
4
+ expect(isErrno(null)).toBe(false);
7
5
  });
8
6
  it('should return false for miscellaneous objects', () => {
9
- expect((0, _1.isErrno)({})).toBe(false);
7
+ expect(isErrno({})).toBe(false);
10
8
  });
11
9
  it('should return true if the object has a string property named code', () => {
12
- expect((0, _1.isErrno)({ code: 'foo' })).toBe(true);
10
+ expect(isErrno({ code: 'foo' })).toBe(true);
13
11
  });
14
12
  it('should return false if the object has a non-string property named code', () => {
15
- expect((0, _1.isErrno)({ code: 42 })).toBe(false);
13
+ expect(isErrno({ code: 42 })).toBe(false);
16
14
  });
17
15
  it('should allow to narrow down a specific code', () => {
18
- expect((0, _1.isErrno)({ code: 'ENOENT' }, 'ENOENT')).toBe(true);
19
- expect((0, _1.isErrno)({ code: 'invalid' }, 'ENOENT')).toBe(false);
16
+ expect(isErrno({ code: 'ENOENT' }, 'ENOENT')).toBe(true);
17
+ expect(isErrno({ code: 'invalid' }, 'ENOENT')).toBe(false);
20
18
  });
21
19
  });
22
20
  describe('readData', () => {
23
21
  it('should read and parse a JSON file', async () => {
24
- const content = await (0, _1.readData)((0, _1.resolveFixture)('json.json'));
22
+ const content = await readData(resolveFixture('json.json'));
25
23
  expect(content).toStrictEqual([{ json: 'json' }, '{ "json": "json" }\n']);
26
24
  });
27
25
  it('should read and parse a YAML file', async () => {
28
- const content = await (0, _1.readData)((0, _1.resolveFixture)('yaml.yaml'));
26
+ const content = await readData(resolveFixture('yaml.yaml'));
29
27
  expect(content).toStrictEqual([{ yaml: 'yaml' }, 'yaml: yaml\n']);
30
28
  });
31
29
  it('should throw an Appsemble error if file extension is unknown', async () => {
32
- const path = (0, _1.resolveFixture)('hello.txt');
33
- await expect((0, _1.readData)(path)).rejects.toThrow(new _1.AppsembleError(`Unknown file extension: ${path}`));
30
+ const path = resolveFixture('hello.txt');
31
+ await expect(readData(path)).rejects.toThrow(new AppsembleError(`Unknown file extension: ${path}`));
34
32
  });
35
33
  it('should throw an Appsemble error if the file can’t be read', async () => {
36
- await expect((0, _1.readData)('non-existent.yaml')).rejects.toThrow(new _1.AppsembleError('Error reading file non-existent.yaml'));
34
+ await expect(readData('non-existent.yaml')).rejects.toThrow(new AppsembleError('Error reading file non-existent.yaml'));
37
35
  });
38
36
  it('should throw an Appsemble error if the file can’t be parsed', async () => {
39
- const path = (0, _1.resolveFixture)('invalid-json.json');
40
- await expect((0, _1.readData)(path)).rejects.toThrow(_1.AppsembleError);
37
+ const path = resolveFixture('invalid-json.json');
38
+ await expect(readData(path)).rejects.toThrow(AppsembleError);
41
39
  });
42
40
  });
43
41
  describe('opendirSafe', () => {
44
42
  it('should read a directory', async () => {
45
- const onFile = jest.fn();
46
- await (0, _1.opendirSafe)((0, _1.resolveFixture)('test'), onFile);
43
+ const onFile = import.meta.jest.fn();
44
+ await opendirSafe(resolveFixture('test'), onFile);
47
45
  expect(onFile).toHaveBeenCalledTimes(3);
48
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/bar.txt'), expect.objectContaining({ name: 'bar.txt' }));
49
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/foo.txt'), expect.objectContaining({ name: 'foo.txt' }));
50
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/z'), expect.objectContaining({ name: 'z' }));
46
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/bar.txt'), expect.objectContaining({ name: 'bar.txt' }));
47
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/foo.txt'), expect.objectContaining({ name: 'foo.txt' }));
48
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/z'), expect.objectContaining({ name: 'z' }));
51
49
  });
52
50
  it('should read a directory recursively if specified', async () => {
53
- const onFile = jest.fn();
54
- await (0, _1.opendirSafe)((0, _1.resolveFixture)('test'), onFile, { recursive: true });
51
+ const onFile = import.meta.jest.fn();
52
+ await opendirSafe(resolveFixture('test'), onFile, { recursive: true });
55
53
  expect(onFile).toHaveBeenCalledTimes(5);
56
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/bar.txt'), expect.objectContaining({ name: 'bar.txt' }));
57
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/foo.txt'), expect.objectContaining({ name: 'foo.txt' }));
58
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/z'), expect.objectContaining({ name: 'z' }));
59
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/z/baz.txt'), expect.objectContaining({ name: 'baz.txt' }));
60
- expect(onFile).toHaveBeenCalledWith((0, _1.resolveFixture)('test/z/fooz.txt'), expect.objectContaining({ name: 'fooz.txt' }));
54
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/bar.txt'), expect.objectContaining({ name: 'bar.txt' }));
55
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/foo.txt'), expect.objectContaining({ name: 'foo.txt' }));
56
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/z'), expect.objectContaining({ name: 'z' }));
57
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/z/baz.txt'), expect.objectContaining({ name: 'baz.txt' }));
58
+ expect(onFile).toHaveBeenCalledWith(resolveFixture('test/z/fooz.txt'), expect.objectContaining({ name: 'fooz.txt' }));
61
59
  });
62
60
  it('should throw if the path is not a directory', async () => {
63
- const path = (0, _1.resolveFixture)('hello.txt');
64
- await expect((0, _1.opendirSafe)(path, jest.fn())).rejects.toThrow(new _1.AppsembleError(`Expected ${path} to be a directory`));
61
+ const path = resolveFixture('hello.txt');
62
+ await expect(opendirSafe(path, import.meta.jest.fn())).rejects.toThrow(new AppsembleError(`Expected ${path} to be a directory`));
65
63
  });
66
64
  it('should throw if the path doesn’t exist', async () => {
67
- const path = (0, _1.resolveFixture)('non-existent');
68
- await expect((0, _1.opendirSafe)(path, jest.fn())).rejects.toThrow(new _1.AppsembleError(`Expected ${path} to be a directory`));
65
+ const path = resolveFixture('non-existent');
66
+ await expect(opendirSafe(path, import.meta.jest.fn())).rejects.toThrow(new AppsembleError(`Expected ${path} to be a directory`));
69
67
  });
70
68
  it('should not throw if the path doesn’t exist and allowMissing is true', async () => {
71
- const path = (0, _1.resolveFixture)('non-existent');
72
- const result = await (0, _1.opendirSafe)(path, jest.fn(), { allowMissing: true });
69
+ const path = resolveFixture('non-existent');
70
+ const result = await opendirSafe(path, import.meta.jest.fn(), { allowMissing: true });
73
71
  expect(result).toBeUndefined();
74
72
  });
75
73
  });
package/fs.test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.test.js","sourceRoot":"","sources":["fs.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.test.js","sourceRoot":"","sources":["fs.test.ts"],"names":[],"mappings":"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"}