-
Notifications
You must be signed in to change notification settings - Fork 1
/
qs.ts
64 lines (48 loc) · 2.03 KB
/
qs.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
/**
* @module kryo/readers/qs
*/
import _qs from "qs";
import { Reader, ReadVisitor } from "../core";
import { QsValueReader } from "./qs-value";
export class QsReader implements Reader<string> {
trustInput?: boolean | undefined;
private readonly qs: typeof _qs;
private readonly valueReader: QsValueReader;
private readonly primitiveWrapper: string;
constructor(qs: typeof _qs, trust?: boolean, primitiveWrapper: string = "_") {
this.qs = qs;
this.trustInput = trust;
this.primitiveWrapper = primitiveWrapper;
this.valueReader = new QsValueReader(trust);
}
readAny<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readAny(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readBoolean<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readBoolean(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readBytes<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readBytes(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readDate<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readDate(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readDocument<R>(raw: any, visitor: ReadVisitor<R>): R {
return this.valueReader.readDocument(this.qs.parse(raw), visitor);
}
readFloat64<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readFloat64(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readList<R>(raw: any, visitor: ReadVisitor<R>): R {
return this.valueReader.readList(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readMap<R>(raw: any, visitor: ReadVisitor<R>): R {
return this.valueReader.readMap(this.qs.parse(raw), visitor);
}
readNull<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readNull(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
readString<R>(raw: string, visitor: ReadVisitor<R>): R {
return this.valueReader.readString(this.qs.parse(raw)[this.primitiveWrapper], visitor);
}
}