dijkstra-backend-cloudron/node_modules/knex/lib/ref.js

40 lines
672 B
JavaScript
Raw Permalink Normal View History

const Raw = require('./raw');
class Ref extends Raw {
constructor(client, ref) {
super(client);
this.ref = ref;
this._schema = null;
this._alias = null;
}
withSchema(schema) {
this._schema = schema;
return this;
}
as(alias) {
this._alias = alias;
return this;
}
toSQL() {
const string = this._schema ? `${this._schema}.${this.ref}` : this.ref;
const formatter = this.client.formatter(this);
const ref = formatter.columnize(string);
const sql = this._alias ? `${ref} as ${formatter.wrap(this._alias)}` : ref;
this.set(sql, []);
return super.toSQL(...arguments);
}
}
module.exports = Ref;