remove ts errors

This commit is contained in:
Rowan 2025-05-24 04:09:56 -05:00
parent 7b7f161755
commit 36ee6dcc73
3 changed files with 679 additions and 186 deletions

843
dist/test.js vendored

File diff suppressed because it is too large Load diff

View file

@ -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> {

View file

@ -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)
} }