ts-std-lib
Version:
A standard library for typescript
28 lines (20 loc) • 615 B
text/typescript
import { URL } from 'url';
import { Json } from './Json';
import { IJsonSerializer, jsonSerializer } from './IJsonSerializer';
import { Type } from '../../Type';
import { UnexpectedJsonError } from './UnexpectedJsonError';
/**
* Json serializer for the node URL class
*/
export class URLJsonSerializer implements IJsonSerializer<URL> {
public readonly [jsonSerializer] = true;
public serialize(object: URL): Json {
return object;
}
public deserialize(json: Json): URL {
if (!Type.isString(json)) {
throw new UnexpectedJsonError(json);
}
return new URL(json);
}
}