remove ts errors
This commit is contained in:
parent
7b7f161755
commit
36ee6dcc73
3 changed files with 679 additions and 186 deletions
843
dist/test.js
vendored
843
dist/test.js
vendored
File diff suppressed because it is too large
Load diff
20
src/de.ts
20
src/de.ts
|
@ -1,5 +1,5 @@
|
||||||
import { GlobalRegistry, IterResult, Registry } from 'serde'
|
import { GlobalRegistry, IterResult, Registry } from 'serde'
|
||||||
import { IIterableAccess, MapAccess, IVisitor, IDeserializer, Deserialize, GenericVisitor, GenericSeed } from 'serde/de'
|
import { IIterableAccess, MapAccess, IVisitor, IDeserializer, Deserialize, ProxyVisitor, GenericSeed } from 'serde/de'
|
||||||
import { unexpected } from './err'
|
import { unexpected } from './err'
|
||||||
|
|
||||||
type Byte = number
|
type Byte = number
|
||||||
|
@ -46,20 +46,20 @@ const Token = Object.freeze({
|
||||||
|
|
||||||
export class CommaSeparated<T> extends MapAccess implements IIterableAccess {
|
export class CommaSeparated<T> extends MapAccess implements IIterableAccess {
|
||||||
private readonly de: JSONDeserializer
|
private readonly de: JSONDeserializer
|
||||||
private readonly defaultSeed: GenericSeed<T>
|
private readonly defaultSeed: GenericSeed<any>
|
||||||
private first: boolean = true
|
private first: boolean = true
|
||||||
|
|
||||||
constructor(deserializer: JSONDeserializer, visitor: IVisitor<T> = new GenericVisitor()) {
|
constructor(deserializer: JSONDeserializer, visitor: IVisitor<T> = new ProxyVisitor()) {
|
||||||
super()
|
super()
|
||||||
this.de = deserializer
|
this.de = deserializer
|
||||||
this.defaultSeed = new GenericSeed(visitor)
|
this.defaultSeed = new GenericSeed(visitor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private seed(): Deserialize {
|
private seed<V>(): Deserialize<V> {
|
||||||
return this.defaultSeed.deserialize.bind(this.defaultSeed) as Deserialize
|
return this.defaultSeed.deserialize.bind(this.defaultSeed) as Deserialize<V>
|
||||||
}
|
}
|
||||||
|
|
||||||
private nextItemSeed<T, D extends Deserialize>(seed: D, end: number): IteratorResult<T> {
|
private nextItemSeed<T, D extends Deserialize<T>>(seed: D, end: number): IteratorResult<T> {
|
||||||
if (this.de.buffer.peek().next() === end) {
|
if (this.de.buffer.peek().next() === end) {
|
||||||
return IterResult.Done()
|
return IterResult.Done()
|
||||||
}
|
}
|
||||||
|
@ -75,11 +75,11 @@ export class CommaSeparated<T> extends MapAccess implements IIterableAccess {
|
||||||
return IterResult.Next(seed(this.de)) as IteratorResult<T>
|
return IterResult.Next(seed(this.de)) as IteratorResult<T>
|
||||||
}
|
}
|
||||||
|
|
||||||
nextKeySeed<T, K extends Deserialize>(seed: K): IteratorResult<T> {
|
nextKeySeed<T, K extends Deserialize<T>>(seed: K): IteratorResult<T> {
|
||||||
return this.nextItemSeed(seed, Token.RightCurly)
|
return this.nextItemSeed(seed, Token.RightCurly)
|
||||||
}
|
}
|
||||||
|
|
||||||
nextValueSeed<T, V extends Deserialize>(seed: V): IteratorResult<T> {
|
nextValueSeed<T, V extends Deserialize<T>>(seed: V): IteratorResult<T> {
|
||||||
const next = this.de.buffer.next()
|
const next = this.de.buffer.next()
|
||||||
|
|
||||||
if (next !== Token.Colon) {
|
if (next !== Token.Colon) {
|
||||||
|
@ -90,7 +90,7 @@ export class CommaSeparated<T> extends MapAccess implements IIterableAccess {
|
||||||
}
|
}
|
||||||
|
|
||||||
private nextItem<T>(end: number): IteratorResult<T> {
|
private nextItem<T>(end: number): IteratorResult<T> {
|
||||||
return this.nextItemSeed(this.seed(), end)
|
return this.nextItemSeed(this.seed<T>(), end)
|
||||||
}
|
}
|
||||||
|
|
||||||
nextKey<T>(): IteratorResult<T> {
|
nextKey<T>(): IteratorResult<T> {
|
||||||
|
@ -98,7 +98,7 @@ export class CommaSeparated<T> extends MapAccess implements IIterableAccess {
|
||||||
}
|
}
|
||||||
|
|
||||||
nextValue<V>(): IteratorResult<V> {
|
nextValue<V>(): IteratorResult<V> {
|
||||||
return this.nextValueSeed(this.seed())
|
return this.nextValueSeed(this.seed<V>())
|
||||||
}
|
}
|
||||||
|
|
||||||
nextElement<T>(): IteratorResult<T> {
|
nextElement<T>(): IteratorResult<T> {
|
||||||
|
|
|
@ -9,7 +9,7 @@ export function toString(value: any): string {
|
||||||
return serializer.output
|
return serializer.output
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fromString<T, D extends Deserialize<T>>(value: string, into: D): T {
|
export function fromString<T, D extends Deserialize<T>>(value: string, into: any): T {
|
||||||
const deserializer = JSONDeserializer.fromString(value)
|
const deserializer = JSONDeserializer.fromString(value)
|
||||||
return deserialize(deserializer, into)
|
return deserialize(deserializer, into)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue