deno.land / x / pg_mem@2.8.1 / datatypes / t-interval.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
import { DataType, nil, _IType } from '../interfaces-private.ts';import { Interval, normalizeInterval, parseIntervalLiteral } from 'https://deno.land/x/pgsql_ast_parser@12.0.1/mod.ts';import { TypeBase } from './datatype-base.ts';import { Evaluator } from '../evaluator.ts';import { intervalToSec } from '../utils.ts';
export class IntervalType extends TypeBase<Interval> {
get primary(): DataType { return DataType.interval; }
doCanBuildFrom(from: _IType) { switch (from.primary) { case DataType.text: return true; } return false; }
doBuildFrom(value: Evaluator, from: _IType): Evaluator<Interval> | nil { switch (from.primary) { case DataType.text: return value .setConversion(str => { const conv = normalizeInterval(parseIntervalLiteral(str)); return conv; } , toInterval => ({ toInterval })); } return null; }
doEquals(a: Interval, b: Interval): boolean { return intervalToSec(a) === intervalToSec(b); } doGt(a: Interval, b: Interval): boolean { return intervalToSec(a) > intervalToSec(b); } doLt(a: Interval, b: Interval): boolean { return intervalToSec(a) < intervalToSec(b); }}
pg_mem

Version Info

Tagged at
4 months ago