From ae3a00259a547bf56c6b4413f73af300cfbaf5ed Mon Sep 17 00:00:00 2001 From: pngwn Date: Thu, 3 Sep 2020 23:39:08 +0100 Subject: [PATCH] start moving errors into a single location --- package-lock.json | 6 +- package.json | 2 +- src/compiler/parse/errors.ts | 109 +++++++++++++++++++++++++++ src/compiler/parse/index.ts | 16 +--- src/compiler/parse/read/script.ts | 20 ++--- src/compiler/parse/read/style.ts | 30 ++------ src/compiler/parse/state/mustache.ts | 33 ++++---- 7 files changed, 144 insertions(+), 72 deletions(-) create mode 100644 src/compiler/parse/errors.ts diff --git a/package-lock.json b/package-lock.json index 4e9e06824a..193784692e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4329,9 +4329,9 @@ "dev": true }, "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", "dev": true }, "uri-js": { diff --git a/package.json b/package.json index 36453769e6..bc32f287be 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,7 @@ "source-map-support": "^0.5.13", "tiny-glob": "^0.2.6", "tslib": "^1.10.0", - "typescript": "^3.5.3" + "typescript": "^4.0.2" }, "nyc": { "include": [ diff --git a/src/compiler/parse/errors.ts b/src/compiler/parse/errors.ts new file mode 100644 index 0000000000..3f2f8a711e --- /dev/null +++ b/src/compiler/parse/errors.ts @@ -0,0 +1,109 @@ +interface ErroMessage { + /** + * The short code that references this error + */ + code: string; + /** + * A friendly error message that will be displayed to the user + */ + message: string; +} + +/** + * Generates an error message for a given parsing error. + * + * Returns an object containing the error code and an actionable message + */ +type error_generator = (...args: string[]) => ErroMessage; + +export const template_errors: Record = { + duplicate_style: () => ({ + code: 'duplicate-style', + message: 'You can only have one top-level