@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 2.81 kB
Source Map (JSON)
{"version":3,"sources":["../src/sql/Select.ts"],"sourcesContent":["import { Column, OrderColumn } from './Column';\nimport { Join } from './Join';\nimport { SqlQuery } from './SqlQuery';\nimport { Table } from './Table';\nimport { List, toList } from '../types/List';\nimport { ifGet } from '../types/Get';\n\nexport class Select extends SqlQuery {\n protected ordered: List<OrderColumn> = toList();\n protected grouped: List<Column> = toList();\n protected _top = 0;\n protected _limit = 0;\n protected _offset = 0;\n\n constructor(\n table: Table | Join,\n readonly columns: List<Column> = toList()\n ) {\n super(table);\n }\n\n from(t?: Table | Join): this {\n this.table = t ?? this.table;\n return this;\n }\n\n orderBy = (...ordered: OrderColumn[]): this => {\n this.ordered.add(ordered);\n return this;\n };\n\n groupBy(...grouped: Column[]): this {\n this.grouped.add(grouped);\n return this;\n }\n\n top(t: number): this {\n this._top = t;\n return this;\n }\n\n limit(l: number): this {\n this._limit = l;\n return this;\n }\n\n offset(o: number): this {\n this._offset = o;\n return this;\n }\n\n toString(): string {\n return (\n `SELECT ` +\n ifGet(this._top, `TOP ${this._top} `, '') +\n ifGet(this.columns.length, this.columns.join(', '), '*') +\n ` FROM ${this.table}` +\n ifGet(this.clauses.length, ` WHERE ${this.clauses.join(' AND ')}`, '') +\n ifGet(this.grouped.length, ` GROUP BY ${this.grouped.join(', ')}`, '') +\n ifGet(this.ordered.length, ` ORDERED BY ${this.ordered.join(', ')}`, '') +\n ifGet(this._limit, ` LIMIT ${this._limit}`, '') +\n ifGet(this._offset, ` OFFSET ${this._offset};`, ';')\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAOO,IAAM,SAAN,cAAqB,SAAS;AAAA,EAOnC,YACE,OACS,UAAwB,OAAO,GACxC;AACA,UAAM,KAAK;AAFF;AAAA,EAGX;AAAA,EAXU,UAA6B,OAAO;AAAA,EACpC,UAAwB,OAAO;AAAA,EAC/B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EASpB,KAAK,GAAwB;AAC3B,SAAK,QAAQ,KAAK,KAAK;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,IAAI,YAAiC;AAC7C,SAAK,QAAQ,IAAI,OAAO;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,SAAyB;AAClC,SAAK,QAAQ,IAAI,OAAO;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,GAAiB;AACnB,SAAK,OAAO;AACZ,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,GAAiB;AACrB,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,GAAiB;AACtB,SAAK,UAAU;AACf,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,WACE,YACA,MAAM,KAAK,MAAM,OAAO,KAAK,IAAI,KAAK,EAAE,IACxC,MAAM,KAAK,QAAQ,QAAQ,KAAK,QAAQ,KAAK,IAAI,GAAG,GAAG,IACvD,SAAS,KAAK,KAAK,KACnB,MAAM,KAAK,QAAQ,QAAQ,UAAU,KAAK,QAAQ,KAAK,OAAO,CAAC,IAAI,EAAE,IACrE,MAAM,KAAK,QAAQ,QAAQ,aAAa,KAAK,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,IACrE,MAAM,KAAK,QAAQ,QAAQ,eAAe,KAAK,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,IACvE,MAAM,KAAK,QAAQ,UAAU,KAAK,MAAM,IAAI,EAAE,IAC9C,MAAM,KAAK,SAAS,WAAW,KAAK,OAAO,KAAK,GAAG;AAAA,EAEvD;AACF;","names":[]}