mirror of
https://github.com/swc-project/swc.git
synced 2024-12-20 20:22:26 +03:00
bbaf619f63
swc_bundler: - [x] Fix wrapped esms. (denoland/deno#9307) - [x] Make test secure.
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;
|