This commit upgrades TypeScript to the latest version 5.3 and introduces `verbatimModuleSyntax` in line with the official Vue guide recommendatinos (vuejs/docs#2592). By enforcing `import type` for type-only imports, this commit improves code clarity and supports tooling optimization, ensuring imports are only bundled when necessary for runtime. Changes: - Bump TypeScript to 5.3.3 across the project. - Adjust import statements to utilize `import type` where applicable, promoting cleaner and more efficient code.
32 lines
739 B
TypeScript
32 lines
739 B
TypeScript
import type { IScriptCode } from './IScriptCode';
|
|
|
|
export class ScriptCode implements IScriptCode {
|
|
constructor(
|
|
public readonly execute: string,
|
|
public readonly revert: string | undefined,
|
|
) {
|
|
validateCode(execute);
|
|
validateRevertCode(revert, execute);
|
|
}
|
|
}
|
|
|
|
function validateRevertCode(revertCode: string | undefined, execute: string) {
|
|
if (!revertCode) {
|
|
return;
|
|
}
|
|
try {
|
|
validateCode(revertCode);
|
|
if (execute === revertCode) {
|
|
throw new Error('Code itself and its reverting code cannot be the same');
|
|
}
|
|
} catch (err) {
|
|
throw Error(`(revert): ${err.message}`);
|
|
}
|
|
}
|
|
|
|
function validateCode(code: string): void {
|
|
if (code.length === 0) {
|
|
throw new Error('missing code');
|
|
}
|
|
}
|