@appsemble/node-utils 0.20.28 → 0.20.30

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 (62) hide show
  1. package/README.md +4 -4
  2. package/package.json +2 -2
  3. package/AppsembleError.js.map +0 -1
  4. package/AppsembleError.test.js.map +0 -1
  5. package/AppsembleError.test.ts +0 -6
  6. package/AppsembleError.ts +0 -16
  7. package/__fixtures__/hello.txt +0 -1
  8. package/__fixtures__/invalid-json.json +0 -3
  9. package/__fixtures__/json.json +0 -1
  10. package/__fixtures__/test/bar.txt +0 -0
  11. package/__fixtures__/test/foo.txt +0 -0
  12. package/__fixtures__/test/z/baz.txt +0 -0
  13. package/__fixtures__/test/z/fooz.txt +0 -0
  14. package/__fixtures__/yaml.yaml +0 -1
  15. package/basicAuth.js.map +0 -1
  16. package/basicAuth.test.js.map +0 -1
  17. package/basicAuth.test.ts +0 -6
  18. package/basicAuth.ts +0 -10
  19. package/changed/added/.gitkeep +0 -0
  20. package/changed/changed/.gitkeep +0 -0
  21. package/changed/deprecated/.gitkeep +0 -0
  22. package/changed/fixed/.gitkeep +0 -0
  23. package/changed/removed/.gitkeep +0 -0
  24. package/changed/security/.gitkeep +0 -0
  25. package/formData.js.map +0 -1
  26. package/formData.test.js.map +0 -1
  27. package/formData.test.ts +0 -113
  28. package/formData.ts +0 -37
  29. package/fs.js.map +0 -1
  30. package/fs.test.js.map +0 -1
  31. package/fs.test.ts +0 -120
  32. package/fs.ts +0 -147
  33. package/getWorkspaces.js.map +0 -1
  34. package/getWorkspaces.ts +0 -23
  35. package/handleError.js.map +0 -1
  36. package/handleError.test.js.map +0 -1
  37. package/handleError.test.ts +0 -38
  38. package/handleError.ts +0 -26
  39. package/index.js.map +0 -1
  40. package/index.ts +0 -11
  41. package/interceptors.js.map +0 -1
  42. package/interceptors.test.js.map +0 -1
  43. package/interceptors.test.ts +0 -102
  44. package/interceptors.ts +0 -81
  45. package/jest.config.js +0 -3
  46. package/jest.setup.js.map +0 -1
  47. package/jest.setup.ts +0 -7
  48. package/logger.js.map +0 -1
  49. package/logger.test.js.map +0 -1
  50. package/logger.test.ts +0 -43
  51. package/logger.ts +0 -130
  52. package/loggerMiddleware.js.map +0 -1
  53. package/loggerMiddleware.test.js.map +0 -1
  54. package/loggerMiddleware.test.ts +0 -179
  55. package/loggerMiddleware.ts +0 -93
  56. package/readFileOrString.js.map +0 -1
  57. package/readFileOrString.test.js.map +0 -1
  58. package/readFileOrString.test.ts +0 -12
  59. package/readFileOrString.ts +0 -20
  60. package/testFixtures.js.map +0 -1
  61. package/testFixtures.ts +0 -57
  62. package/tsconfig.json +0 -6
@@ -1,38 +0,0 @@
1
- import { Argv } from 'yargs';
2
-
3
- import { AppsembleError } from './AppsembleError.js';
4
- import { handleError } from './handleError.js';
5
- import { logger } from './logger.js';
6
-
7
- let yargs: Argv;
8
-
9
- beforeEach(() => {
10
- yargs = { showHelp: import.meta.jest.fn() } as Partial<Argv> as Argv;
11
- import.meta.jest.spyOn(console, 'error').mockImplementation();
12
- import.meta.jest.spyOn(process, 'exit').mockImplementation();
13
- import.meta.jest.spyOn(logger, 'error').mockImplementation();
14
- });
15
-
16
- it('should show the help message if it is passed a yargs message', () => {
17
- handleError('Command foo not found', undefined, yargs);
18
- // eslint-disable-next-line no-console
19
- expect(console.error).toHaveBeenCalledWith('Command foo not found');
20
- expect(yargs.showHelp).toHaveBeenCalledWith();
21
- expect(logger.error).not.toHaveBeenCalled();
22
- expect(process.exit).toHaveBeenCalledWith(1);
23
- });
24
-
25
- it('should log the message of an Appsemble error', () => {
26
- handleError(undefined, new AppsembleError('Oh noez!'), yargs);
27
- expect(yargs.showHelp).not.toHaveBeenCalled();
28
- expect(logger.error).toHaveBeenCalledWith('Oh noez!');
29
- expect(process.exit).toHaveBeenCalledWith(1);
30
- });
31
-
32
- it('should log unknown errors raw', () => {
33
- const error = new Error('Oh noez!');
34
- handleError(undefined, error, yargs);
35
- expect(yargs.showHelp).not.toHaveBeenCalled();
36
- expect(logger.error).toHaveBeenCalledWith(error);
37
- expect(process.exit).toHaveBeenCalledWith(1);
38
- });
package/handleError.ts DELETED
@@ -1,26 +0,0 @@
1
- import { Argv } from 'yargs';
2
-
3
- import { AppsembleError } from './AppsembleError.js';
4
- import { logger } from './logger.js';
5
-
6
- /**
7
- * Handle a fatal error.
8
- *
9
- * HTTP errors are formatted nicely. For other errors, the stack trace is logged.
10
- *
11
- * @param message Unused.
12
- * @param error The error that was thrown.
13
- * @param yargs The active yargs instance.
14
- */
15
- export function handleError(message: string, error: Error, yargs: Argv): void {
16
- if (typeof message === 'string') {
17
- yargs.showHelp();
18
- // eslint-disable-next-line no-console
19
- console.error(message);
20
- } else if (error instanceof AppsembleError) {
21
- logger.error(error.message);
22
- } else {
23
- logger.error(error);
24
- }
25
- process.exit(1);
26
- }
package/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/index.ts DELETED
@@ -1,11 +0,0 @@
1
- export * from './AppsembleError.js';
2
- export * from './basicAuth.js';
3
- export * from './formData.js';
4
- export * from './fs.js';
5
- export * from './getWorkspaces.js';
6
- export * from './handleError.js';
7
- export * from './interceptors.js';
8
- export * from './logger.js';
9
- export * from './loggerMiddleware.js';
10
- export * from './readFileOrString.js';
11
- export * from './testFixtures.js';
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["interceptors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAQxB;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,MAA0B;IACjD,IAAI,MAAM,CAAC,IAAI,YAAY,QAAQ,EAAE;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;KACzD;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAA0B;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,MAAM,CAAC,OAAO,CACZ,KAAK,IAAI,IAAI,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;QACxF,QAAQ,EAAE,MAAM;KACjB,CAAC,EAAE,CACL,CAAC;IACF,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAClB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAuB;IACpD,MAAM,CAAC,OAAO,CACZ,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,YAAY,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE;QAC1F,QAAQ,EAAE,MAAM;KACjB,CAAC,EAAE,CACL,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe;IAC1D,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,UAAU,OAAO,CAAC,OAAO,GAAG,CAAC;IAC/E,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;IAEjD,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptors.test.js","sourceRoot":"","sources":["interceptors.test.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- import axios, { AxiosInstance } from 'axios';
2
- import MockAdapter from 'axios-mock-adapter';
3
- import { highlight } from 'cli-highlight';
4
- import FormData from 'form-data';
5
-
6
- import { configureAxios, formData, logger, requestLogger, responseLogger } from './index.js';
7
-
8
- function h(content: string): string {
9
- return highlight(content, { language: 'http' });
10
- }
11
-
12
- let instance: AxiosInstance;
13
- let mock: MockAdapter;
14
-
15
- import.meta.jest.mock('os');
16
-
17
- beforeEach(() => {
18
- import.meta.jest.useFakeTimers({ now: 0 });
19
- });
20
-
21
- describe('formData', () => {
22
- beforeAll(() => {
23
- instance = axios.create();
24
- instance.interceptors.request.use(formData);
25
- mock = new MockAdapter(instance);
26
- });
27
-
28
- it('should add headers for form-data requests', async () => {
29
- let headers;
30
- mock.onAny('/').reply((config) => {
31
- ({ headers } = config);
32
- return [200];
33
- });
34
- const form = new FormData();
35
- await instance.post('/', form);
36
- expect(headers).toHaveProperty(
37
- 'Content-Type',
38
- expect.stringMatching(/^multipart\/form-data; boundary=/),
39
- );
40
- });
41
-
42
- it('should not add headers to non form-data requests', async () => {
43
- let headers;
44
- mock.onAny('/').reply((config) => {
45
- ({ headers } = config);
46
- return [200];
47
- });
48
- await instance.post('/', {});
49
- expect(headers).toBeUndefined();
50
- });
51
- });
52
-
53
- describe('requestLogger', () => {
54
- beforeAll(() => {
55
- instance = axios.create();
56
- instance.interceptors.request.use(requestLogger);
57
- mock = new MockAdapter(instance);
58
- mock.onAny().reply(200);
59
- });
60
-
61
- it('should log requests', async () => {
62
- import.meta.jest.spyOn(logger, 'verbose');
63
- await instance.get('/');
64
- expect(logger.verbose).toHaveBeenCalledWith(`> 0 ${h('GET / HTTP/1.1')}`);
65
- });
66
- });
67
-
68
- describe('responseLogger', () => {
69
- beforeAll(() => {
70
- instance = axios.create();
71
- instance.interceptors.response.use(responseLogger);
72
- mock = new MockAdapter(instance);
73
- mock.onAny().reply(200);
74
- });
75
-
76
- it('should log responses', async () => {
77
- import.meta.jest.spyOn(logger, 'verbose');
78
- await instance.get('/');
79
- expect(logger.verbose).toHaveBeenCalledWith(expect.any(String));
80
- });
81
- });
82
-
83
- describe('configureAxios', () => {
84
- beforeEach(() => {
85
- import.meta.jest.spyOn(axios.interceptors.request, 'use').mockImplementation();
86
- import.meta.jest.spyOn(axios.interceptors.response, 'use').mockImplementation();
87
- });
88
-
89
- it('should set the correct user agent', () => {
90
- configureAxios('TestClient', '1.2.3');
91
- expect(axios.defaults.headers.common['user-agent']).toBe(
92
- `TestClient/1.2.3 (Linux x64; Node ${process.version})`,
93
- );
94
- });
95
-
96
- it('should apply all interceptors', () => {
97
- configureAxios('TestClient', '1.2.3');
98
- expect(axios.interceptors.request.use).toHaveBeenCalledWith(formData);
99
- expect(axios.interceptors.request.use).toHaveBeenCalledWith(requestLogger);
100
- expect(axios.interceptors.response.use).toHaveBeenCalledWith(responseLogger);
101
- });
102
- });
package/interceptors.ts DELETED
@@ -1,81 +0,0 @@
1
- import { arch, type } from 'node:os';
2
-
3
- import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
4
- import { highlight } from 'cli-highlight';
5
- import FormData from 'form-data';
6
-
7
- import { logger } from './logger.js';
8
-
9
- /**
10
- * This is used to set a request id, so the request and response can be matched in the logs.
11
- */
12
- const id = Symbol('id');
13
-
14
- declare module 'axios' {
15
- interface AxiosRequestConfig {
16
- [id]?: number;
17
- }
18
- }
19
-
20
- /**
21
- * An {@link axios} request interceptor to add support for {@link form-data}.
22
- *
23
- * @param config The axios request configuration.
24
- * @returns The config with additional `multipart/form-data` headers if appropriate.
25
- */
26
- export function formData(config: AxiosRequestConfig): AxiosRequestConfig {
27
- if (config.data instanceof FormData) {
28
- Object.assign(config.headers, config.data.getHeaders());
29
- }
30
- return config;
31
- }
32
-
33
- /**
34
- * An {@link axios} request interceptor to log requests.
35
- *
36
- * @param config The axios request configuration.
37
- * @returns The original config.
38
- */
39
- export function requestLogger(config: AxiosRequestConfig): AxiosRequestConfig {
40
- const time = Date.now();
41
- logger.verbose(
42
- `> ${time} ${highlight(`${config.method.toUpperCase()} ${axios.getUri(config)} HTTP/1.1`, {
43
- language: 'http',
44
- })}`,
45
- );
46
- // eslint-disable-next-line no-param-reassign
47
- config[id] = time;
48
- return config;
49
- }
50
-
51
- /**
52
- * An {@link axios} response interceptor to log responses.
53
- *
54
- * @param response The axios response.
55
- * @returns The original response.
56
- */
57
- export function responseLogger(response: AxiosResponse): AxiosResponse {
58
- logger.verbose(
59
- `< ${response.config[id]} ${highlight(`HTTP/1.1 ${response.status} ${response.statusText}`, {
60
- language: 'http',
61
- })}`,
62
- );
63
- return response;
64
- }
65
-
66
- /**
67
- * Configure the default Axios instance.
68
- *
69
- * This applies the interceptors in this modules and sets the appropriate user agent string.
70
- *
71
- * @param name A PascalCase representation of the client.
72
- * @param version The version of the client to represent.
73
- */
74
- export function configureAxios(name: string, version: string): void {
75
- const ua = `${name}/${version} (${type()} ${arch()}; Node ${process.version})`;
76
- axios.defaults.headers.common['user-agent'] = ua;
77
-
78
- axios.interceptors.request.use(formData);
79
- axios.interceptors.request.use(requestLogger);
80
- axios.interceptors.response.use(responseLogger);
81
- }
package/jest.config.js DELETED
@@ -1,3 +0,0 @@
1
- import { createJestConfig } from '../../config/jest/config.js';
2
-
3
- export default createJestConfig(import.meta);
package/jest.setup.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"jest.setup.js","sourceRoot":"","sources":["jest.setup.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,+BAA+B;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,WAAW,CAAC,CAAC,CAAC,CAAC"}
package/jest.setup.ts DELETED
@@ -1,7 +0,0 @@
1
- // Importing a module here will break mocks for that module. Only add imports from `./src/*` here
2
- // that are strictly necessary.
3
- import { setLogLevel } from './logger.js';
4
- import { setFixtureBase } from './testFixtures.js';
5
-
6
- setFixtureBase(import.meta);
7
- setLogLevel(0);
package/logger.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["logger.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.test.js","sourceRoot":"","sources":["logger.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,WAAW,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,WAAW,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/logger.test.ts DELETED
@@ -1,43 +0,0 @@
1
- import { configureLogger, logger, setLogLevel } from './logger.js';
2
-
3
- describe('setLogLevel', () => {
4
- afterEach(() => {
5
- setLogLevel();
6
- });
7
-
8
- it('should set the level of the exported logger based on a string', () => {
9
- setLogLevel('verbose');
10
- expect(logger.level).toBe('verbose');
11
- });
12
-
13
- it('should set the level of the exported logger based on a number', () => {
14
- setLogLevel(1);
15
- expect(logger.level).toBe('error');
16
- });
17
-
18
- it('should set the level of the exported logger based on a numeric string', () => {
19
- setLogLevel('2');
20
- expect(logger.level).toBe('warn');
21
- });
22
- });
23
-
24
- describe('configureLogger', () => {
25
- afterEach(() => {
26
- setLogLevel();
27
- });
28
-
29
- it('should configure a log level based on the quiet count of the argv', () => {
30
- configureLogger({ quiet: 1 });
31
- expect(logger.level).toBe('warn');
32
- });
33
-
34
- it('should configure a log level based on the verbose count of the argv', () => {
35
- configureLogger({ verbose: 1 });
36
- expect(logger.level).toBe('verbose');
37
- });
38
-
39
- it('should configure a log level based on the combined quiet and verbose count', () => {
40
- configureLogger({ quiet: 1, verbose: 1 });
41
- expect(logger.level).toBe('info');
42
- });
43
- });
package/logger.ts DELETED
@@ -1,130 +0,0 @@
1
- import { EOL } from 'node:os';
2
- import { inspect } from 'node:util';
3
-
4
- import axios, { AxiosError } from 'axios';
5
- import chalk from 'chalk';
6
- import { highlight } from 'cli-highlight';
7
- import { TransformableInfo } from 'logform';
8
- import winston from 'winston';
9
-
10
- interface ConfigureLoggerParams {
11
- /**
12
- * The negative verbosity count.
13
- */
14
- quiet?: number;
15
-
16
- /**
17
- * The verbosity count.
18
- */
19
- verbose?: number;
20
- }
21
-
22
- const levels = ['crit', 'error', 'warn', 'info', 'verbose', 'silly'] as const;
23
- const DEFAULT_LEVEL = levels.indexOf('info');
24
- const padding = Math.max(...levels.map(({ length }) => length));
25
-
26
- function headerCase(header: string): string {
27
- return header.replace(/(^|-)\w/g, (a) => a.toUpperCase());
28
- }
29
-
30
- function httpErrorToString(error: AxiosError): string {
31
- const { config, request, response } = error;
32
- return [
33
- chalk.blue.bold('Request:'),
34
- highlight(
35
- [
36
- `${config.method.toUpperCase()} ${axios.getUri(config)} HTTP/${
37
- request.res?.httpVersion ?? '1.1'
38
- }`,
39
- ...Object.entries(config.headers)
40
- .map(([key, value]) => [headerCase(key), value])
41
- .map(([key, value]) => `${key}: ${key === 'Authorization' ? 'xxxxxxxxxx' : value}`)
42
- .sort(),
43
- ].join(EOL),
44
- { language: 'http', ignoreIllegals: true },
45
- ),
46
- '',
47
- chalk.blue.bold('Response:'),
48
- response
49
- ? highlight(
50
- [
51
- `HTTP/${request.res?.httpVersion} ${response.status} ${response.statusText}`,
52
- ...Object.entries(response.headers)
53
- .map(([key, value]) => `${headerCase(key)}: ${value}`)
54
- .sort(),
55
- '',
56
- response.data instanceof Object
57
- ? JSON.stringify(response.data, null, 2)
58
- : response.data,
59
- ].join(EOL),
60
- { language: 'http', ignoreIllegals: true },
61
- )
62
- : chalk.red.bold('No response from server'),
63
- ].join(EOL);
64
- }
65
-
66
- function toString(info: TransformableInfo): string {
67
- if (info instanceof Error) {
68
- if (axios.isAxiosError(info)) {
69
- return httpErrorToString(info);
70
- }
71
- return info.stack;
72
- }
73
- if (typeof info.message === 'string') {
74
- return info.message;
75
- }
76
- return inspect(info.message, { colors: true });
77
- }
78
-
79
- /**
80
- * The default logger for NodeJS Appsemble projects.
81
- */
82
- export const logger = winston.createLogger({
83
- level: levels[DEFAULT_LEVEL],
84
- levels: Object.fromEntries(levels.map((level, index) => [level, index])),
85
- format: winston.format.combine(
86
- winston.format((info) => ({
87
- ...info,
88
- lines: toString(info)
89
- .split(/\r?\n/)
90
- .map((line) => `${''.padEnd(padding - info.level.length)}${line}`),
91
- }))(),
92
- winston.format.colorize(),
93
- winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
94
- winston.format.printf(({ level, lines, timestamp }) =>
95
- lines.map((line: string) => `${timestamp} [${level}]: ${line}`).join(EOL),
96
- ),
97
- ),
98
- transports: [new winston.transports.Console()],
99
- });
100
-
101
- /**
102
- * Set the logging level using a string or numeric value.
103
- *
104
- * @param level The logger level to set.
105
- */
106
- export function setLogLevel(level: number | string = DEFAULT_LEVEL): void {
107
- logger.level = Number.isNaN(Number(level))
108
- ? (level as string)
109
- : levels[Math.min(Math.max(level as number, 0), levels.length - 1)];
110
- logger.silly(`Logging level set to ${logger.level}`);
111
- }
112
-
113
- /**
114
- * Configure logging using named quiet and verbose parameters.
115
- *
116
- * Use this in conjunction with `yargs`.
117
- *
118
- * @param argv The processed command line arguments.
119
- */
120
- export function configureLogger({ quiet = 0, verbose = 0 }: ConfigureLoggerParams): void {
121
- process.on('warning', (warning) => {
122
- logger.warn(warning);
123
- });
124
-
125
- process.on('unhandledRejection', (error) => {
126
- logger.error(error);
127
- });
128
-
129
- setLogLevel(DEFAULT_LEVEL + verbose - quiet);
130
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"loggerMiddleware.js","sourceRoot":"","sources":["loggerMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAOrC,SAAS,WAAW,CAAI,KAAa,EAAE,GAAgB;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE1D,SAAS,WAAW;YAClB,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC1C,mEAAmE;YACnE,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEvC,MAAM,EACJ,OAAO,EACP,QAAQ,EAAE,EACR,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,EACD,MAAM,GACP,GAAG,GAAG,CAAC;YACR,MAAM,CAAC,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,EAAE;gBAC3C,GAAG,EAAE,KAAK,CAAC,KAAK;gBAChB,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,OAAO,EAAE,KAAK,CAAC,GAAG;aACnB,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE;gBACvC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,GAAG,EAAE,KAAK,CAAC,KAAK;gBAChB,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,GAAG,EAAE,KAAK,CAAC,MAAM;gBACjB,OAAO,EAAE,KAAK,CAAC,GAAG;aACnB,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE;gBAChC,GAAG,EAAE,OAAO;gBACZ,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CACR,KAAK,EACL,GAAG,MAAM,IAAI,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,CACtF,GAAG,QAAQ,IAAI,CAChB,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,SAAS,SAAS;YAChB,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC1C,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACpC,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,EAAE;gBAC3C,GAAG,EAAE,KAAK,CAAC,KAAK;gBAChB,IAAI,EAAE,KAAK,CAAC,MAAM;gBAClB,OAAO,EAAE,KAAK,CAAC,GAAG;aACnB,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,CAAC,GAAG,QAAQ,IAAI,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE7B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loggerMiddleware.test.js","sourceRoot":"","sources":["loggerMiddleware.test.ts"],"names":[],"mappings":"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"}