cerializr
Version:
(de)serialization made easy with ES7/Typescript annotations (decorators)
50 lines (44 loc) • 1.43 kB
text/typescript
import { MetaData } from "./meta_data";
import { NoOp } from "./string_transforms";
import { InstantiationMethod } from "./interfaces";
import isFunction from "lodash/isFunction";
/**
* Use one of the provided function or use your own custom function.
*
* No function provided will result to an unchanged string property.
*
* @example```js
import { SetSerializeKeyTransform, CamelCase } from "cerializr";
SetSerializeKeyTransform(CamelCase);```
*
* @param fn
*/
export function SetSerializeKeyTransform(fn: (str: string) => string): void {
MetaData.serializeKeyTransform = isFunction(fn) ? fn : NoOp;
}
/**
* Use one of the provided function or use your own custom function.
*
* No function provided will result to an unchanged string property.
*
* @example```js
import { SetDeserializeKeyTransform, CamelCase } from "cerializr";
SetDeserializeKeyTransform(CamelCase);```
*
* @param fn
*/
export function SetDeserializeKeyTransform(fn: (str: string) => string): void {
MetaData.deserializeKeyTransform = isFunction(fn) ? fn : NoOp;
}
/**
* Change the default InstantiationMethod
* @param instantiationMethod
*/
export function SetDefaultInstantiationMethod(
instantiationMethod: InstantiationMethod | null
): void {
MetaData.deserializeInstantationMethod =
instantiationMethod === null
? InstantiationMethod.New
: instantiationMethod;
}