-
Notifications
You must be signed in to change notification settings - Fork 2
/
functions.ts
executable file
·121 lines (101 loc) · 2.32 KB
/
functions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import { Item } from './item';
export abstract class Function implements Item {
constructor(protected functionKeyWord: string, protected selector?: string) {}
toString(): string {
if (this.selector) {
return `${this.functionKeyWord}(${this.selector})`;
} else {
return `${this.functionKeyWord}()`;
}
}
}
export class CustomFunction extends Function {
constructor(functionName: string, ...values: (string | number)[]) {
super(functionName, values.join(', '));
}
}
export class Absolute extends Function {
constructor(selector: string) {
super('absolute', selector);
}
}
export class Average extends Function {
constructor(selector: string) {
super('average', selector);
}
}
export class Ceiling extends Function {
constructor(selector: string) {
super('ceiling', selector);
}
}
export class Concat extends Function {
constructor(...values: string[]) {
super('concat', values.join(', '));
}
}
export class Count extends Function {
constructor(selector: string) {
super('count', selector);
}
}
export class CountDistinct extends Function {
constructor(selector: string) {
super('countDistinct', selector);
}
}
export class CurrentDate extends Function {
constructor() {
super('currentDate');
}
}
export class CurrentTime extends Function {
constructor() {
super('currentTime');
}
}
export class CurrentTimestamp extends Function {
constructor() {
super('currentTimestamp');
}
}
export class Min extends Function {
constructor(selector: string) {
super('min', selector);
}
}
export class Max extends Function {
constructor(selector: string) {
super('max', selector);
}
}
export class Sum extends Function {
constructor(...selector: string[]) {
super('sum', selector.join(', '));
}
}
export class Size extends Function {
constructor(selector: string) {
super('size', selector);
}
}
export class Length extends Function {
constructor(selector: string) {
super('length', selector);
}
}
export class Trim extends Function {
constructor(selector: string) {
super('trim', selector);
}
}
export class Upper extends Function {
constructor(selector: string) {
super('upper', selector);
}
}
export class Lower extends Function {
constructor(selector: string) {
super('lower', selector);
}
}