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.
19 lines
736 B
TypeScript
19 lines
736 B
TypeScript
import type { ILanguageSyntax } from '@/application/Parser/Executable/Script/Validation/Syntax/ILanguageSyntax';
|
|
import type { ISyntaxFactory } from '@/application/Parser/Executable/Script/Validation/Syntax/ISyntaxFactory';
|
|
import type { ScriptingLanguage } from '@/domain/ScriptingLanguage';
|
|
import { LanguageSyntaxStub } from './LanguageSyntaxStub';
|
|
|
|
export function createSyntaxFactoryStub(
|
|
expectedLanguage?: ScriptingLanguage,
|
|
result?: ILanguageSyntax,
|
|
): ISyntaxFactory {
|
|
return {
|
|
create: (language: ScriptingLanguage) => {
|
|
if (expectedLanguage !== undefined && language !== expectedLanguage) {
|
|
throw new Error('unexpected language');
|
|
}
|
|
return result ?? new LanguageSyntaxStub();
|
|
},
|
|
};
|
|
}
|