mirror of
https://github.com/swc-project/swc.git
synced 2025-01-03 19:14:01 +03:00
43 lines
750 B
TypeScript
43 lines
750 B
TypeScript
|
// Loaded from https://raw.githubusercontent.com/denjucks/dex/master/lib/ref.js
|
||
|
|
||
|
|
||
|
import Raw from './raw.js';
|
||
|
|
||
|
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;
|