sedk-mysql
Version:
Simple SQL builder and validator for MySQL
48 lines • 1.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.InnerJoinStep = exports.RightJoinStep = exports.LeftJoinStep = exports.JoinStep = void 0;
const AfterFromStep_1 = require("./AfterFromStep");
const database_1 = require("../../database");
const BaseStep_1 = require("../BaseStep");
class BaseJoinStep extends BaseStep_1.BaseStep {
constructor(joinType, prevStep, fromItem) {
super(prevStep);
this.joinType = joinType;
this.fromItem = fromItem;
}
on(condition) {
return new AfterFromStep_1.OnStep(this, condition);
}
getStepStatement(artifacts = { tables: new Set(), columns: new Set() }) {
return `${this.joinType} ${this.fromItem.getStmt(this.data, artifacts)}`;
}
getStepArtifacts() {
const table = this.fromItem instanceof database_1.Table ? this.fromItem : this.fromItem.table;
return { tables: new Set([table]), columns: new Set() };
}
}
class JoinStep extends BaseJoinStep {
constructor(prevStep, fromItem) {
super('JOIN', prevStep, fromItem);
}
}
exports.JoinStep = JoinStep;
class LeftJoinStep extends BaseJoinStep {
constructor(prevStep, fromItem) {
super('LEFT JOIN', prevStep, fromItem);
}
}
exports.LeftJoinStep = LeftJoinStep;
class RightJoinStep extends BaseJoinStep {
constructor(prevStep, fromItem) {
super('RIGHT JOIN', prevStep, fromItem);
}
}
exports.RightJoinStep = RightJoinStep;
class InnerJoinStep extends BaseJoinStep {
constructor(prevStep, fromItem) {
super('INNER JOIN', prevStep, fromItem);
}
}
exports.InnerJoinStep = InnerJoinStep;
//# sourceMappingURL=BaseJoinStep.js.map