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.
27 lines
776 B
TypeScript
27 lines
776 B
TypeScript
import { BaseEntity } from '@/infrastructure/Entity/BaseEntity';
|
|
import { RecommendationLevel } from './RecommendationLevel';
|
|
import type { IScript } from './IScript';
|
|
import type { IScriptCode } from './IScriptCode';
|
|
|
|
export class Script extends BaseEntity<string> implements IScript {
|
|
constructor(
|
|
public readonly name: string,
|
|
public readonly code: IScriptCode,
|
|
public readonly docs: ReadonlyArray<string>,
|
|
public readonly level?: RecommendationLevel,
|
|
) {
|
|
super(name);
|
|
validateLevel(level);
|
|
}
|
|
|
|
public canRevert(): boolean {
|
|
return Boolean(this.code.revert);
|
|
}
|
|
}
|
|
|
|
function validateLevel(level?: RecommendationLevel) {
|
|
if (level !== undefined && !(level in RecommendationLevel)) {
|
|
throw new Error(`invalid level: ${level}`);
|
|
}
|
|
}
|