Files
privacy.sexy/tests/unit/shared/Stubs/PipeFactoryStub.ts
undergroundwires 949fac1a7c Refactor to enforce strictNullChecks
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.
2023-11-12 22:54:00 +01:00

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;
}
}