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.
27 lines
716 B
TypeScript
27 lines
716 B
TypeScript
import { IPipe } from '@/application/Parser/Script/Compiler/Expressions/Pipes/IPipe';
|
|
import { IPipeFactory } from '@/application/Parser/Script/Compiler/Expressions/Pipes/PipeFactory';
|
|
|
|
export class PipeFactoryStub implements IPipeFactory {
|
|
private readonly pipes = new Array<IPipe>();
|
|
|
|
public get(pipeName: string): IPipe {
|
|
const result = this.pipes.find((pipe) => pipe.name === pipeName);
|
|
if (!result) {
|
|
throw new Error(`pipe not registered: "${pipeName}"`);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public withPipe(pipe: IPipe) {
|
|
this.pipes.push(pipe);
|
|
return this;
|
|
}
|
|
|
|
public withPipes(pipes: IPipe[]) {
|
|
for (const pipe of pipes) {
|
|
this.withPipe(pipe);
|
|
}
|
|
return this;
|
|
}
|
|
}
|