1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 15x 22x 22x 22x 18x 22x 15x | import { ILexer } from "./interface"; import { Select, Use, Create, Drop } from "../barrel/statements"; class StatementFactory { public build(statement: string): ILexer { let builtStatement = new Select(); const statementMap: { [key: string]: ILexer } = { select: new Select(), use: new Use(), drop: new Drop(), create: new Create() }; if (Object.keys(statementMap).includes(statement)) { builtStatement = statementMap[statement]; } return builtStatement; } } export { StatementFactory }; |