From 57460b9626315c98da47ffb64b02e6be862c7f22 Mon Sep 17 00:00:00 2001 From: Red-Asuka Date: Wed, 21 Sep 2022 16:03:06 +0800 Subject: [PATCH] feat(cli): improve logging --- cli/package.json | 3 + cli/src/lib/conn.ts | 7 +- cli/src/lib/pub.ts | 12 ++- cli/src/lib/sub.ts | 23 +++-- cli/src/utils/signale.ts | 28 ++++++ cli/tsconfig.json | 3 +- cli/yarn.lock | 204 ++++++++++++++++++++++++++++++++++++++ src/utils/getFiles.ts | 3 +- web/src/utils/getFiles.ts | 3 +- 9 files changed, 273 insertions(+), 13 deletions(-) create mode 100644 cli/src/utils/signale.ts diff --git a/cli/package.json b/cli/package.json index d48467c80..87cdb2d98 100644 --- a/cli/package.json +++ b/cli/package.json @@ -18,11 +18,13 @@ }, "license": "Apache-2.0", "dependencies": { + "chalk": "~4.1.2", "commander": "^9.3.0", "concat-stream": "^2.0.0", "mqtt": "^4.3.7", "pump": "^3.0.0", "readable-stream": "^3.6.0", + "signale": "^1.4.0", "split2": "^4.1.0" }, "devDependencies": { @@ -30,6 +32,7 @@ "@types/node": "^17.0.43", "@types/pump": "^1.1.1", "@types/readable-stream": "^2.3.13", + "@types/signale": "^1.4.4", "@types/split2": "^3.2.1", "@types/ws": "^8.5.3", "typescript": "^4.7.3" diff --git a/cli/src/lib/conn.ts b/cli/src/lib/conn.ts index 628296ba7..eeb9530a1 100644 --- a/cli/src/lib/conn.ts +++ b/cli/src/lib/conn.ts @@ -1,5 +1,6 @@ import * as mqtt from 'mqtt' import * as fs from 'fs' +import signale from '../utils/signale' const conn = (options: any) => { options.protocolVersion = options.mqttVersion @@ -43,12 +44,14 @@ const conn = (options: any) => { const client = mqtt.connect(options) + signale.await('Connecting...') + client.on('connect', () => { - console.log('\x1b[32m', 'Connected') + signale.success('Connected') }) client.on('error', (err) => { - console.warn(err) + signale.error(err) client.end() }) } diff --git a/cli/src/lib/pub.ts b/cli/src/lib/pub.ts index ae2c1a6c1..420f1f508 100644 --- a/cli/src/lib/pub.ts +++ b/cli/src/lib/pub.ts @@ -5,26 +5,33 @@ import concat from 'concat-stream' import { Writable } from 'readable-stream' import split2 from 'split2' import { IClientPublishOptions } from 'mqtt' +import signale from '../utils/signale' const send = (options: any, pubOptions: IClientPublishOptions) => { const client = mqtt.connect(options) + signale.await('Connecting...') client.on('connect', () => { + signale.success('Connected') const { topic, message } = options + signale.await('Message Publishing...') client.publish(topic, message, pubOptions, (err) => { if (err) { - console.warn(err) + signale.warn(err) + } else { + signale.success('Message published') } client.end() }) }) client.on('error', (err) => { - console.warn(err) + signale.error(err) client.end() }) } const multisend = (options: any, pubOptions: IClientPublishOptions) => { const client = mqtt.connect(options) + signale.await('Connecting...') const sender = new Writable({ objectMode: true, }) @@ -33,6 +40,7 @@ const multisend = (options: any, pubOptions: IClientPublishOptions) => { } client.on('connect', () => { + signale.success('Connected, press Enter to publish, press Ctrl+C to exit') pump(process.stdin, split2(), sender, (err) => { client.end() if (err) { diff --git a/cli/src/lib/sub.ts b/cli/src/lib/sub.ts index 72e3c0eeb..6a9f61ff4 100644 --- a/cli/src/lib/sub.ts +++ b/cli/src/lib/sub.ts @@ -2,6 +2,7 @@ import * as mqtt from 'mqtt' import * as fs from 'fs' import { IClientSubscribeOptions } from 'mqtt' import { getSpecialTypesOption } from '../utils/generator' +import { signale, msgLog } from '../utils/signale' const sub = (options: any) => { options.protocolVersion = options.mqttVersion @@ -41,7 +42,11 @@ const sub = (options: any) => { const client = mqtt.connect(options) + signale.await('Connecting...') + client.on('connect', () => { + signale.success('Connected') + const { topic, qos, no_local, retainAsPublished, retainHandling, userProperties } = options topic.forEach((t: string, index: number) => { @@ -55,15 +60,19 @@ const sub = (options: any) => { userProperties && (subOptions.properties = { userProperties }) } + signale.await(`Subscribing to ${t}...`) + client.subscribe(t, subOptions, (err, result) => { if (err) { - console.error(err) + signale.error(err) process.exit(1) + } else { + signale.success(`Subscribed to ${t}`) } result.forEach((sub) => { if (sub.qos > 2) { - console.error('subscription negated to', sub.topic, 'with code', sub.qos) + signale.error('subscription negated to', sub.topic, 'with code', sub.qos) process.exit(1) } }) @@ -72,17 +81,19 @@ const sub = (options: any) => { }) client.on('message', (topic, payload, packet) => { + const msgData: Record[] = [] if (options.verbose) { - console.log('topic: ', topic) + msgData.push({ label: 'topic', value: topic }) } if (packet.properties && packet.properties.userProperties) { - console.log('user properties: ', { ...packet.properties.userProperties }) + msgData.push({ label: 'user properties', value: { ...packet.properties.userProperties } }) } - console.log('payload: ', payload.toString()) + msgData.push({ label: 'payload', value: payload.toString() }) + msgLog(msgData) }) client.on('error', (err) => { - console.warn(err) + signale.error(err) client.end() }) } diff --git a/cli/src/utils/signale.ts b/cli/src/utils/signale.ts new file mode 100644 index 000000000..7bcdbb189 --- /dev/null +++ b/cli/src/utils/signale.ts @@ -0,0 +1,28 @@ +import { Signale } from 'signale' +import chalk from 'chalk' +import { inspect } from 'util' + +const option = { + config: { + displayLabel: false, + displayTimestamp: true, + }, +} + +const signale = new Signale(option) + +const msgLog = (msg: Record[]) => { + let chalkString = '' + msg.forEach((item) => { + if (typeof item.value === 'object') { + chalkString += `${chalk.green(item.label)}: ${inspect(item.value, false, null, true)}\n` + } else { + chalkString += `${chalk.green(item.label)}: ${item.value}\n` + } + }) + signale.log(`${chalkString}`) +} + +export { signale, msgLog } + +export default signale diff --git a/cli/tsconfig.json b/cli/tsconfig.json index 64abc3b4f..ed136d03e 100644 --- a/cli/tsconfig.json +++ b/cli/tsconfig.json @@ -7,7 +7,8 @@ "lib": ["DOM", "ES2015", "ScriptHost", "ES2019.Array"], "strict": true, "esModuleInterop": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "types": ["@types/signale"] }, "include": ["src"] } diff --git a/cli/yarn.lock b/cli/yarn.lock index 21df3d7c7..5a7879167 100644 --- a/cli/yarn.lock +++ b/cli/yarn.lock @@ -29,6 +29,13 @@ "@types/node" "*" safe-buffer "*" +"@types/signale@^1.4.4": + version "1.4.4" + resolved "https://registry.yarnpkg.com/@types/signale/-/signale-1.4.4.tgz#dbfd32b39f1084551ecda9ba0888e4fef49e9fea" + integrity sha512-VYy4VL64gA4uyUIYVj4tiGFF0VpdnRbJeqNENKGX42toNiTvt83rRzxdr0XK4DR3V01zPM0JQNIsL+IwWWfhsQ== + dependencies: + "@types/node" "*" + "@types/split2@^3.2.1": version "3.2.1" resolved "https://registry.yarnpkg.com/@types/split2/-/split2-3.2.1.tgz#97c42b560a1b41064d46cd728cf1267d5755ee34" @@ -43,6 +50,20 @@ dependencies: "@types/node" "*" +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -83,6 +104,47 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +chalk@^2.3.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@~4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + commander@^9.3.0: version "9.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-9.3.0.tgz#f619114a5a2d2054e0d9ff1b31d5ccf89255e26b" @@ -135,6 +197,32 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA== + dependencies: + escape-string-regexp "^1.0.5" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -152,6 +240,21 @@ glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +graceful-fs@^4.1.2: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + help-me@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/help-me/-/help-me-3.0.0.tgz#9803c81b5f346ad2bce2c6a0ba01b82257d319e8" @@ -178,16 +281,44 @@ inherits@2, inherits@^2.0.3, inherits@^2.0.4: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + js-sdsl@^2.1.2: version "2.1.4" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-2.1.4.tgz#16f31a56cc09ec57723e0c477fdc07e1d2522627" integrity sha512-/Ew+CJWHNddr7sjwgxaVeIORIH4AMVC9dy0hPf540ZGMVgS9d3ajwuVdyhDt6/QUvT8ATjR3yuYBKsS79F+H4A== +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -259,11 +390,56 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pkg-conf@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + integrity sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g== + dependencies: + find-up "^2.0.0" + load-json-file "^4.0.0" + process-nextick-args@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -301,6 +477,15 @@ safe-buffer@*, safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +signale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1" + integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== + dependencies: + chalk "^2.3.2" + figures "^2.0.0" + pkg-conf "^2.1.0" + split2@^3.1.0: version "3.2.2" resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" @@ -325,6 +510,25 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" diff --git a/src/utils/getFiles.ts b/src/utils/getFiles.ts index 78d7328d7..a5c74dc91 100644 --- a/src/utils/getFiles.ts +++ b/src/utils/getFiles.ts @@ -11,8 +11,9 @@ export const getSSLFile = (sslPath: SSLPath): SSLContent | undefined => { } return res } catch (error) { + const err = error as Error Notification({ - title: error.toString(), + title: err.toString(), message: '', type: 'error', }) diff --git a/web/src/utils/getFiles.ts b/web/src/utils/getFiles.ts index 94a8b87ca..80e5e4df7 100644 --- a/web/src/utils/getFiles.ts +++ b/web/src/utils/getFiles.ts @@ -10,8 +10,9 @@ export const getSSLFile = (sslPath: SSLPath): SSLContent | undefined => { } return res } catch (error) { + const err = error as Error Notification({ - title: error.toString(), + title: err.toString(), message: '', type: 'error', })