1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import { clone } from 'lodash';
- export class SqlPartDef {
- type: string;
- style: string;
- label: string;
- params: any[];
- defaultParams: any[];
- wrapOpen: string;
- wrapClose: string;
- separator: string;
- constructor(options: any) {
- this.type = options.type;
- if (options.label) {
- this.label = options.label;
- } else {
- this.label = this.type[0].toUpperCase() + this.type.substring(1) + ':';
- }
- this.style = options.style;
- if (this.style === 'function') {
- this.wrapOpen = '(';
- this.wrapClose = ')';
- this.separator = ', ';
- } else {
- this.wrapOpen = ' ';
- this.wrapClose = ' ';
- this.separator = ' ';
- }
- this.params = options.params;
- this.defaultParams = options.defaultParams;
- }
- }
- export class SqlPart {
- part: any;
- def: SqlPartDef;
- params: any[];
- label: string;
- name: string;
- datatype: string;
- constructor(part: any, def: any) {
- this.part = part;
- this.def = def;
- if (!this.def) {
- throw { message: 'Could not find sql part ' + part.type };
- }
- this.datatype = part.datatype;
- if (part.name) {
- this.name = part.name;
- this.label = def.label + ' ' + part.name;
- } else {
- this.name = '';
- this.label = def.label;
- }
- part.params = part.params || clone(this.def.defaultParams);
- this.params = part.params;
- }
- updateParam(strValue: string, index: number) {
- // handle optional parameters
- if (strValue === '' && this.def.params[index].optional) {
- this.params.splice(index, 1);
- } else {
- this.params[index] = strValue;
- }
- this.part.params = this.params;
- }
- }
|