Small bug-fixes and improvements
This commit is contained in:
parent
cf49fca928
commit
363dcf3e7d
@ -7288,7 +7288,7 @@ var log = (0, import_debug.default)("app");
|
|||||||
var builtin = ["number", "string", "boolean"];
|
var builtin = ["number", "string", "boolean"];
|
||||||
var IRError = class extends Error {
|
var IRError = class extends Error {
|
||||||
constructor(statement, message) {
|
constructor(statement, message) {
|
||||||
super("Error Compiling: " + message);
|
super("Error building IR: " + message);
|
||||||
this.statement = statement;
|
this.statement = statement;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -7384,7 +7384,7 @@ function get_ir(parsed) {
|
|||||||
depends.push(fnc.return_type.type);
|
depends.push(fnc.return_type.type);
|
||||||
} else {
|
} else {
|
||||||
if (fnc.return_type.type !== "void" && builtin.indexOf(fnc.return_type.type) < 0) {
|
if (fnc.return_type.type !== "void" && builtin.indexOf(fnc.return_type.type) < 0) {
|
||||||
throw new IRError(fnc, `Type ${fnc.return_type} is not defined`);
|
throw new IRError(fnc, `Type ${fnc.return_type.type} is not defined`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7621,7 +7621,7 @@ var TypescriptTarget = class extends CompileTarget {
|
|||||||
verifyType("elm", 1);
|
verifyType("elm", 1);
|
||||||
a(2, `}`);
|
a(2, `}`);
|
||||||
} else if (field.map) {
|
} else if (field.map) {
|
||||||
a(2, `if(typeof data["${field.name}"] !== "object") throw new VerificationError("object", ${field.name}, data["${field.name}"]);`);
|
a(2, `if(typeof data["${field.name}"] !== "object") throw new VerificationError("object", "${field.name}", data["${field.name}"]);`);
|
||||||
a(2, `for(const key in data["${field.name}"]) {`);
|
a(2, `for(const key in data["${field.name}"]) {`);
|
||||||
verifyType(`data["${field.name}"][key]`, 1);
|
verifyType(`data["${field.name}"][key]`, 1);
|
||||||
a(2, `}`);
|
a(2, `}`);
|
||||||
@ -7644,6 +7644,7 @@ var TypescriptTarget = class extends CompileTarget {
|
|||||||
}
|
}
|
||||||
t.forEach((l) => lines.push(" ".repeat(i) + l.trim()));
|
t.forEach((l) => lines.push(" ".repeat(i) + l.trim()));
|
||||||
};
|
};
|
||||||
|
a(0, this.generateImport("{ VerificationError }", "./ts_base"));
|
||||||
a(0, `enum ${def.name} {`);
|
a(0, `enum ${def.name} {`);
|
||||||
for (const value of def.values) {
|
for (const value of def.values) {
|
||||||
a(1, `${value.name}=${value.value},`);
|
a(1, `${value.name}=${value.value},`);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@hibas123/jrpcgen",
|
"name": "@hibas123/jrpcgen",
|
||||||
"version": "1.0.6",
|
"version": "1.0.9",
|
||||||
"main": "lib/index.js",
|
"main": "lib/index.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"packageManager": "yarn@3.1.1",
|
"packageManager": "yarn@3.1.1",
|
||||||
|
@ -6,7 +6,7 @@ const builtin = ["number", "string", "boolean"];
|
|||||||
|
|
||||||
export class IRError extends Error {
|
export class IRError extends Error {
|
||||||
constructor(public statement: StatementNode, message: string) {
|
constructor(public statement: StatementNode, message: string) {
|
||||||
super("Error Compiling: " + message);
|
super("Error building IR: " + message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ export default function get_ir(parsed: Parsed): IR {
|
|||||||
if (fnc.return_type.type !== "void" && builtin.indexOf(fnc.return_type.type) < 0) {
|
if (fnc.return_type.type !== "void" && builtin.indexOf(fnc.return_type.type) < 0) {
|
||||||
throw new IRError(
|
throw new IRError(
|
||||||
fnc,
|
fnc,
|
||||||
`Type ${fnc.return_type} is not defined`
|
`Type ${fnc.return_type.type} is not defined`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,7 +199,7 @@ export class TypescriptTarget extends CompileTarget {
|
|||||||
} else if (field.map) {
|
} else if (field.map) {
|
||||||
a(
|
a(
|
||||||
2,
|
2,
|
||||||
`if(typeof data["${field.name}"] !== "object") throw new VerificationError("object", ${field.name}, data["${field.name}"]);`
|
`if(typeof data["${field.name}"] !== "object") throw new VerificationError("object", "${field.name}", data["${field.name}"]);`
|
||||||
);
|
);
|
||||||
a(2, `for(const key in data["${field.name}"]) {`);
|
a(2, `for(const key in data["${field.name}"]) {`);
|
||||||
verifyType(`data["${field.name}"][key]`, 1);
|
verifyType(`data["${field.name}"][key]`, 1);
|
||||||
@ -225,6 +225,7 @@ export class TypescriptTarget extends CompileTarget {
|
|||||||
}
|
}
|
||||||
t.forEach((l) => lines.push(" ".repeat(i) + l.trim()));
|
t.forEach((l) => lines.push(" ".repeat(i) + l.trim()));
|
||||||
};
|
};
|
||||||
|
a(0, this.generateImport("{ VerificationError }", "./ts_base"));
|
||||||
|
|
||||||
a(0, `enum ${def.name} {`);
|
a(0, `enum ${def.name} {`);
|
||||||
for (const value of def.values) {
|
for (const value of def.values) {
|
||||||
@ -246,7 +247,10 @@ export class TypescriptTarget extends CompileTarget {
|
|||||||
a(0, `}`);
|
a(0, `}`);
|
||||||
a(0, ``);
|
a(0, ``);
|
||||||
a(0, `export function verify_${def.name} (data: ${def.name}) {`);
|
a(0, `export function verify_${def.name} (data: ${def.name}) {`);
|
||||||
a(1, `if(${def.name}[data] == undefined) throw new VerificationError("${def.name}", undefined, data);`);
|
a(
|
||||||
|
1,
|
||||||
|
`if(${def.name}[data] == undefined) throw new VerificationError("${def.name}", undefined, data);`
|
||||||
|
);
|
||||||
a(1, `return data`);
|
a(1, `return data`);
|
||||||
a(0, `}`);
|
a(0, `}`);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user