타입 별칭: ConfigWithArbitraryCollectionTypes<TTable, TSchema>
type ConfigWithArbitraryCollectionTypes<TTable, TSchema> = SerializerConfig<StandardSchemaV1.InferOutput<TSchema>, ExtractedTable<TTable>> & object;
정의 위치: definitions.ts:127
TInput과 TOutput이 임의로 타입 지정된 값을 갖는 구성입니다. 타입의 키는 SQLite 타입과 일치해야 합니다. TInput은 SQLite 타입이 아니므로, 들어오는 SQLite 업데이트를 역직렬화하려면 스키마가 필요합니다. 스키마는 SQLite에서 TOutput으로의 변환을 검증해야 합니다.
타입 선언
deserializationSchema
deserializationSchema: StandardSchemaV1<ExtractedTable<TTable>, StandardSchemaV1.InferOutput<TSchema>>;
동기화 스트림의 입력 데이터를 역직렬화하고 검증하기 위한 스키마입니다.
이 스키마는 SQLite 타입(데이터베이스에 저장된 형태)에서 애플리케이션 또는 검증 로직이 기대하는 원하는 출력 타입(TOutput)으로 데이터를 변환하고 검증하는 방법을 정의합니다.
제네릭 매개변수를 사용하면 입력 및 출력 타입을 임의로 지정할 수 있으므로 각 열에 대한 사용자 지정 변환 규칙을 지정할 수 있습니다. 이는 애플리케이션이 SQLite에서 기본적으로 지원하는 타입보다 풍부한 타입(예: Date, 열거형, 객체)을 기대할 때 특히 유용합니다.
동기화 스트림에서 들어오는 데이터가 사용되기 전에 올바르게 변환되고 검증되도록 하려면 이를 사용합니다.
예:
deserializationSchema: z.object({
createdAt: z.preprocess((val) => new Date(val as string), z.date()),
meta: z.preprocess((val) => JSON.parse(val as string), z.object({ ... })),
})
이를 통해 들어오는 데이터에 강력한 타입 안전성과 검증을 적용하여 SQLite 저장소와 애플리케이션이 기대하는 타입 간의 차이를 해소할 수 있습니다.
schema
schema: TSchema;
타입 매개변수
TTable
TTable extends Table
TSchema
TSchema extends StandardSchemaV1<AnyTableColumnType<TTable>, AnyTableColumnType<TTable>>