This commit consolidates scripts and categories under a unified 'Executable' concept. This simplifies the architecture and improves code readability. - Introduce subfolders within `src/domain` to segregate domain elements. - Update class and interface names by removing the 'I' prefix in alignment with new coding standards. - Replace 'Node' with 'Executable' to clarify usage; reserve 'Node' exclusively for the UI's tree component.
18 lines
577 B
TypeScript
18 lines
577 B
TypeScript
import { BaseEntity } from '@/infrastructure/Entity/BaseEntity';
|
|
import type { Script } from '@/domain/Executables/Script/Script';
|
|
import type { SelectedScript } from './SelectedScript';
|
|
|
|
type SelectedScriptId = SelectedScript['id'];
|
|
|
|
export class UserSelectedScript extends BaseEntity<SelectedScriptId> {
|
|
constructor(
|
|
public readonly script: Script,
|
|
public readonly revert: boolean,
|
|
) {
|
|
super(script.id);
|
|
if (revert && !script.canRevert()) {
|
|
throw new Error(`The script with ID '${script.id}' is not reversible and cannot be reverted.`);
|
|
}
|
|
}
|
|
}
|