This commit applies `strictNullChecks` to the entire codebase to improve maintainability and type safety. Key changes include: - Remove some explicit null-checks where unnecessary. - Add necessary null-checks. - Refactor static factory functions for a more functional approach. - Improve some test names and contexts for better debugging. - Add unit tests for any additional logic introduced. - Refactor `createPositionFromRegexFullMatch` to its own function as the logic is reused. - Prefer `find` prefix on functions that may return `undefined` and `get` prefix for those that always return a value.
24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import type { FunctionData } from '@/application/collections/';
|
|
import { IScriptingDefinition } from '@/domain/IScriptingDefinition';
|
|
import { IScriptCompiler } from './Compiler/IScriptCompiler';
|
|
import { ScriptCompiler } from './Compiler/ScriptCompiler';
|
|
import { ICategoryCollectionParseContext } from './ICategoryCollectionParseContext';
|
|
import { SyntaxFactory } from './Validation/Syntax/SyntaxFactory';
|
|
import { ISyntaxFactory } from './Validation/Syntax/ISyntaxFactory';
|
|
import { ILanguageSyntax } from './Validation/Syntax/ILanguageSyntax';
|
|
|
|
export class CategoryCollectionParseContext implements ICategoryCollectionParseContext {
|
|
public readonly compiler: IScriptCompiler;
|
|
|
|
public readonly syntax: ILanguageSyntax;
|
|
|
|
constructor(
|
|
functionsData: ReadonlyArray<FunctionData> | undefined,
|
|
scripting: IScriptingDefinition,
|
|
syntaxFactory: ISyntaxFactory = new SyntaxFactory(),
|
|
) {
|
|
this.syntax = syntaxFactory.create(scripting.language);
|
|
this.compiler = new ScriptCompiler(functionsData ?? [], this.syntax);
|
|
}
|
|
}
|