@hazae41/glacier
Version:
Yet another React data (re)fetching library
1 lines • 4.84 kB
Source Map (JSON)
{"version":3,"file":"coder.mjs","sources":["../../../../../src/mods/coders/coder.ts"],"sourcesContent":["import { Awaitable } from \"libs/promises/promises.js\"\n\nexport type Encoder<I, O> =\n | SyncEncoder<I, O>\n | AsyncEncoder<I, O>\n\nexport interface SyncEncoder<I, O> {\n encodeOrThrow(input: I): O\n}\n\nexport interface AsyncEncoder<I, O> {\n encodeOrThrow(input: I): Awaitable<O>\n}\n\nexport type Bicoder<I, O> =\n | SyncBicoder<I, O>\n | AsyncBicoder<I, O>\n\nexport interface SyncBicoder<I, O> {\n encodeOrThrow(input: I): O\n decodeOrThrow(output: O): I\n}\n\nexport interface AsyncBicoder<I, O> {\n encodeOrThrow(input: I): Awaitable<O>\n decodeOrThrow(output: O): Awaitable<I>\n}\n\nexport namespace Identity {\n\n export function encodeOrThrow<T>(value: T): T {\n return value\n }\n\n export function decodeOrThrow<T>(value: T): T {\n return value\n }\n\n}\n\nexport namespace Jsoned {\n\n export function encodeOrThrow<T>(value: T): string {\n return JSON.stringify(value)\n }\n\n export function decodeOrThrow<T>(value: string): T {\n return JSON.parse(value) as T\n }\n\n}\n\nexport class AsyncPipeBicoder<I, X, O> implements AsyncBicoder<I, O> {\n\n constructor(\n readonly outer: AsyncBicoder<I, X>,\n readonly inner: AsyncBicoder<X, O>\n ) { }\n\n async encodeOrThrow(input: I): Promise<O> {\n return await this.inner.encodeOrThrow(await this.outer.encodeOrThrow(input))\n }\n\n async decodeOrThrow(output: O): Promise<I> {\n return await this.outer.decodeOrThrow(await this.inner.decodeOrThrow(output))\n }\n\n}\n\nexport class AsyncPipeEncoder<I, X, O> implements AsyncEncoder<I, O> {\n\n constructor(\n readonly outer: AsyncEncoder<I, X>,\n readonly inner: AsyncEncoder<X, O>\n ) { }\n\n async encodeOrThrow(input: I): Promise<O> {\n return await this.inner.encodeOrThrow(await this.outer.encodeOrThrow(input))\n }\n\n}\n\nexport class SyncPipeBicoder<I, X, O> implements SyncBicoder<I, O> {\n\n constructor(\n readonly outer: SyncBicoder<I, X>,\n readonly inner: SyncBicoder<X, O>\n ) { }\n\n encodeOrThrow(input: I): O {\n return this.inner.encodeOrThrow(this.outer.encodeOrThrow(input))\n }\n\n decodeOrThrow(output: O): I {\n return this.outer.decodeOrThrow(this.inner.decodeOrThrow(output))\n }\n\n}\n\nexport class SyncPipeEncoder<I, X, O> implements SyncEncoder<I, O> {\n\n constructor(\n readonly outer: SyncEncoder<I, X>,\n readonly inner: SyncEncoder<X, O>\n ) { }\n\n encodeOrThrow(input: I): O {\n return this.inner.encodeOrThrow(this.outer.encodeOrThrow(input))\n }\n\n}"],"names":[],"mappings":"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"}