knex/src/ref.js

45 lines
707 B
JavaScript
Raw Normal View History

'use strict';
import Raw from './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);
}
}
export default Ref