summaryrefslogtreecommitdiff
path: root/src/compiler/utils/error.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-03-19 17:07:45 -0400
committerGravatar GitHub <noreply@github.com> 2021-03-19 17:07:45 -0400
commit17c3c98f07628b43b941b84831e8e1f9bcd7ca46 (patch)
tree2e2b3c7d6bd67ebaabe6636ae6867ad368ac6c3a /src/compiler/utils/error.ts
parent8ebc077cb0d9f50aae22d2651bd5ef13fe4641d3 (diff)
downloadastro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.gz
astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.tar.zst
astro-17c3c98f07628b43b941b84831e8e1f9bcd7ca46.zip
Initial tests set up (#10)
* Begin debugging * Initial tests set up This adds tests using uvu (we can switch if people want) and restructures things a bit so that it's easier to test. Like in snowpack you set up a little project. In our tests you can say: ```js const result = await runtime.load('/blog/hello-world') ``` And analyze the result. I included a `test-helpers.js` which has a function that will turn HTML into a cheerio instance, for inspecting the result HTML. * Add CI * Remove extra console logs * Formatting
Diffstat (limited to 'src/compiler/utils/error.ts')
-rw-r--r--src/compiler/utils/error.ts69
1 files changed, 36 insertions, 33 deletions
diff --git a/src/compiler/utils/error.ts b/src/compiler/utils/error.ts
index 438d8c500..3c1b23e4c 100644
--- a/src/compiler/utils/error.ts
+++ b/src/compiler/utils/error.ts
@@ -4,39 +4,42 @@ import { locate } from 'locate-character';
import get_code_frame from './get_code_frame.js';
export class CompileError extends Error {
- code: string;
- start: { line: number; column: number };
- end: { line: number; column: number };
- pos: number;
- filename: string;
- frame: string;
-
- toString() {
- return `${this.message} (${this.start.line}:${this.start.column})\n${this.frame}`;
- }
+ code: string;
+ start: { line: number; column: number };
+ end: { line: number; column: number };
+ pos: number;
+ filename: string;
+ frame: string;
+
+ toString() {
+ return `${this.message} (${this.start.line}:${this.start.column})\n${this.frame}`;
+ }
}
-export default function error(message: string, props: {
- name: string;
- code: string;
- source: string;
- filename: string;
- start: number;
- end?: number;
-}): never {
- const error = new CompileError(message);
- error.name = props.name;
-
- const start = locate(props.source, props.start, { offsetLine: 1 });
- const end = locate(props.source, props.end || props.start, { offsetLine: 1 });
-
- error.code = props.code;
- error.start = start;
- error.end = end;
- error.pos = props.start;
- error.filename = props.filename;
-
- error.frame = get_code_frame(props.source, start.line - 1, start.column);
-
- throw error;
+export default function error(
+ message: string,
+ props: {
+ name: string;
+ code: string;
+ source: string;
+ filename: string;
+ start: number;
+ end?: number;
+ }
+): never {
+ const error = new CompileError(message);
+ error.name = props.name;
+
+ const start = locate(props.source, props.start, { offsetLine: 1 });
+ const end = locate(props.source, props.end || props.start, { offsetLine: 1 });
+
+ error.code = props.code;
+ error.start = start;
+ error.end = end;
+ error.pos = props.start;
+ error.filename = props.filename;
+
+ error.frame = get_code_frame(props.source, start.line - 1, start.column);
+
+ throw error;
}