From c91e07f0a70b6cd6f01ea971e19d3be9f44b4134 Mon Sep 17 00:00:00 2001 From: Erwin G Date: Sat, 26 Feb 2022 12:00:59 -0500 Subject: [PATCH] updated typescript --- package-lock.json | 18 +++++++++--------- package.json | 4 ++-- src/errors.ts | 12 +++++++++--- src/index.ts | 7 +++++-- src/program.ts | 2 +- 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19d0f60..d2f7f33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "directory-validator", - "version": "1.4.0", + "version": "1.5.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "directory-validator", - "version": "1.4.0", + "version": "1.5.0", "license": "MIT", "dependencies": { "ajv": "^8.0.2", @@ -26,7 +26,7 @@ "@types/node": "^14.14.37", "jest": "^26.6.3", "ts-jest": "^26.5.4", - "typescript": "^4.2.3" + "typescript": "^4.5.5" } }, "node_modules/@babel/code-frame": { @@ -5811,9 +5811,9 @@ } }, "node_modules/typescript": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", - "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -10799,9 +10799,9 @@ } }, "typescript": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", - "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true }, "union-value": { diff --git a/package.json b/package.json index 38e7ab3..303102e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "directory-validator", - "version": "1.5.0", + "version": "1.5.1", "description": "CLI Tool to validate directory structures.", "main": "lib/index.js", "bin": { @@ -20,7 +20,7 @@ "@types/node": "^14.14.37", "jest": "^26.6.3", "ts-jest": "^26.5.4", - "typescript": "^4.2.3" + "typescript": "^4.5.5" }, "dependencies": { "ajv": "^8.0.2", diff --git a/src/errors.ts b/src/errors.ts index 049c196..298bf3b 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -4,9 +4,11 @@ export class JsonParseError extends Error { err: Error; filePath: string; - constructor(err: Error, filePath: string) { - super(err.message); - this.err = err; + constructor(err: unknown, filePath: string) { + const parsedError = isError(err) ? err : new Error('unknown error'); + + super(parsedError.message); + this.err = parsedError; this.filePath = filePath; } } @@ -46,3 +48,7 @@ export class ValidatorInvalidPathError extends Error { this.path = path; } } + +export function isError(err: any): err is Error { + return Boolean(err && err.stack && err.message); +} diff --git a/src/index.ts b/src/index.ts index fc972ba..0bac6f1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -78,6 +78,8 @@ if (selectedOptions.init) { ignoreFilesGlob: selectedOptions.ignoreFiles, }); + console.log('Directory successfully validated!'); + if (selectedOptions.print && results.asciiTree) { console.log( results.asciiTree @@ -114,12 +116,13 @@ if (selectedOptions.init) { } else if (err instanceof errors.ValidatorInvalidPathError) { console.error(errorTitle); console.error('\t', dash, err.path.red, 'was not validated'); - } else { + } else if (errors.isError(err)) { console.error(errorTitle); console.error('\t', dash, err.message.red); + } else { + console.error('Unknown error'); } - console.error(); process.exit(1); } } diff --git a/src/program.ts b/src/program.ts index 83d6a33..ebf27be 100644 --- a/src/program.ts +++ b/src/program.ts @@ -17,7 +17,7 @@ function getConfig(rulesPath: string): types.Config { try { configJson = JSON.parse(fs.readFileSync(rulesPath, 'utf8')); - } catch (err: any) { + } catch (err) { throw new errors.JsonParseError(err, rulesPath); }