@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
414 lines • 10.4 kB
JavaScript
import { getConstructorName, } from "../../../utilities/_module-exports.js";
/**
* @internal
*/
export class ArrayBufferSerdeTransformer {
get name() {
return ArrayBuffer.name;
}
isApplicable(value) {
return (value instanceof ArrayBuffer &&
getConstructorName(value) === ArrayBuffer.name);
}
deserialize(serializedValue) {
return Buffer.from(serializedValue.buffer, "base64").buffer;
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class BufferSerdeTransformer {
get name() {
return Buffer.name;
}
isApplicable(value) {
return (value instanceof Buffer && getConstructorName(value) === Buffer.name);
}
deserialize(serializedValue) {
return Buffer.from(serializedValue.buffer, "base64");
}
serialize(deserializedValue) {
return {
buffer: deserializedValue.toString("base64"),
};
}
}
/**
* @internal
*/
export class Uint8ArraySerdeTransformer {
get name() {
return Uint8Array.name;
}
isApplicable(value) {
return (value instanceof Uint8Array &&
getConstructorName(value) === Uint8Array.name);
}
deserialize(serializedValue) {
return new Uint8Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Int8ArraySerdeTransformer {
get name() {
return Int8Array.name;
}
isApplicable(value) {
return (value instanceof Int8Array &&
getConstructorName(value) === Int8Array.name);
}
deserialize(serializedValue) {
return new Int8Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Uint16ArraySerdeTransformer {
get name() {
return Uint16Array.name;
}
isApplicable(value) {
return (value instanceof Uint16Array &&
getConstructorName(value) === Uint16Array.name);
}
deserialize(serializedValue) {
return new Uint16Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Int16ArraySerdeTransformer {
get name() {
return Int16Array.name;
}
isApplicable(value) {
return (value instanceof Int16Array &&
getConstructorName(value) === Int16Array.name);
}
deserialize(serializedValue) {
return new Int16Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Uint32ArraySerdeTransformer {
get name() {
return Uint32Array.name;
}
isApplicable(value) {
return (value instanceof Uint32Array &&
getConstructorName(value) === Uint32Array.name);
}
deserialize(serializedValue) {
return new Uint32Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Int32ArraySerdeTransformer {
get name() {
return Int32Array.name;
}
isApplicable(value) {
return (value instanceof Int32Array &&
getConstructorName(value) === Int32Array.name);
}
deserialize(serializedValue) {
return new Int32Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class BigUint64ArraySerdeTransformer {
get name() {
return BigUint64Array.name;
}
isApplicable(value) {
return (value instanceof BigUint64Array &&
getConstructorName(value) === BigUint64Array.name);
}
deserialize(serializedValue) {
return new BigUint64Array(Buffer.from(serializedValue.buffer, "base64").buffer);
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue.buffer).toString("base64"),
};
}
}
/**
* @internal
*/
export class BigInt64ArraySerdeTransformer {
get name() {
return BigInt64Array.name;
}
isApplicable(value) {
return (value instanceof BigInt64Array &&
getConstructorName(value) === BigInt64Array.name);
}
deserialize(serializedValue) {
return new BigInt64Array(Buffer.from(serializedValue.buffer, "base64").buffer);
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue.buffer).toString("base64"),
};
}
}
/**
* @internal
*/
export class Float32ArraySerdeTransformer {
get name() {
return Float32Array.name;
}
isApplicable(value) {
return (value instanceof Float32Array &&
getConstructorName(value) === Float32Array.name);
}
deserialize(serializedValue) {
return new Float32Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class Float64ArraySerdeTransformer {
get name() {
return Float64Array.name;
}
isApplicable(value) {
return (value instanceof Float64Array &&
getConstructorName(value) === Float64Array.name);
}
deserialize(serializedValue) {
return new Float64Array(Buffer.from(serializedValue.buffer, "base64"));
}
serialize(deserializedValue) {
return {
buffer: Buffer.from(deserializedValue).toString("base64"),
};
}
}
/**
* @internal
*/
export class MapSerdeTransformer {
get name() {
return Map.name;
}
isApplicable(value) {
return value instanceof Map && getConstructorName(value) === Map.name;
}
deserialize(serializedValue) {
return new Map(serializedValue);
}
serialize(deserializedValue) {
return [...deserializedValue.entries()];
}
}
/**
* @internal
*/
export class SetSerdeTransformer {
get name() {
return Set.name;
}
isApplicable(value) {
return value instanceof Set && getConstructorName(value) === Set.name;
}
deserialize(serializedValue) {
return new Set(serializedValue);
}
serialize(deserializedValue) {
return [...deserializedValue.values()];
}
}
/**
* @internal
*/
export class BigIntSerdeTransformer {
get name() {
return BigInt.name;
}
isApplicable(value) {
return typeof value === "bigint";
}
deserialize(serializedValue) {
return BigInt(serializedValue);
}
serialize(deserializedValue) {
return deserializedValue.toString();
}
}
/**
* @internal
*/
export class NaNSerdeTransformer {
get name() {
return NaN.toString();
}
isApplicable(value) {
return typeof value === "number" && Number.isNaN(value);
}
deserialize(serializedValue) {
return Number(serializedValue);
}
serialize(deserializedValue) {
return deserializedValue.toString();
}
}
/**
* @internal
*/
export class InfinitySerdeTransformer {
get name() {
return Infinity.toString();
}
isApplicable(value) {
return typeof value === "number" && !Number.isFinite(value);
}
deserialize(serializedValue) {
return Number(serializedValue);
}
serialize(deserializedValue) {
return deserializedValue.toString();
}
}
/**
* @internal
*/
export class UndefinedSerdeTransformer {
get name() {
return "undefined";
}
isApplicable(value) {
return value === undefined;
}
deserialize(_serializedValue) {
return undefined;
}
serialize(deserializedValue) {
return String(deserializedValue);
}
}
/**
* @internal
*/
export class RegExpSerdeTransformer {
get name() {
return RegExp.name;
}
isApplicable(value) {
return (value instanceof RegExp && getConstructorName(value) === RegExp.name);
}
deserialize(serializedValue) {
const body = serializedValue.slice(1, serializedValue.lastIndexOf("/"));
const flags = serializedValue.slice(serializedValue.lastIndexOf("/") + 1);
return new RegExp(body, flags);
}
serialize(deserializedValue) {
return deserializedValue.toString();
}
}
/**
* @internal
*/
export class DateSerdeTransformer {
get name() {
return Date.name;
}
isApplicable(value) {
return value instanceof Date && getConstructorName(value) === Date.name;
}
deserialize(serializedValue) {
return new Date(serializedValue);
}
serialize(deserializedValue) {
return deserializedValue.getTime();
}
}
/**
* @internal
*/
export class URLSerdeTransformer {
get name() {
return URL.name;
}
isApplicable(value) {
return value instanceof URL && getConstructorName(value) === URL.name;
}
deserialize(serializedValue) {
return new URL(serializedValue);
}
serialize(deserializedValue) {
return deserializedValue.toString();
}
}
/**
* @internal
*/
export class URLSearchParamsSerdeTransformer {
get name() {
return URLSearchParams.name;
}
isApplicable(value) {
return (value instanceof URLSearchParams &&
getConstructorName(value) === URLSearchParams.name);
}
deserialize(serializedValue) {
return new URLSearchParams(serializedValue);
}
serialize(deserializedValue) {
return [...deserializedValue.entries()];
}
}
//# sourceMappingURL=serde-transformers.js.map