1.0.3 • Published 4 years ago
@paddls/ts-mapperize v1.0.3
TS-Mapperize
Informations
:warning: Since version 1.0.2,
ts-mapperizehas been published under@paddlsnamespace. We continue to maintain@witty-servicesnamespace.
Get Started
Install
npm install @paddls/ts-mapperizeor
npm install @witty-services/ts-mapperizeCreate simple mapper
class A {
a: string;
}
class B {
b: string;
}
class MyMapper {
@Mapper(() => B, [
{target: 'b', source: 'a'}
])
public mapAToB: MapperFn<A, B>;
}
const mapper: MyMapper = new MyMapper();
mapper.mapAToB(new A())
// should return B{ b: '...' }Working with array
Define all mapping behavior
class A {
a: string;
}
class B {
b: string;
}
class MyMapper {
@ArrayMapper(() => B, [
{target: 'b', source: 'a'}
])
public mapAToB: ArrayMapperFn<A, B>;
}
const mapper: MyMapper = new MyMapper();
mapper.mapAToB([new A()])
// should return [B{ b: '...' }]Reuse behavior from function
class A {
a: string;
}
class B {
b: string;
}
class MyMapper {
@Mapper(() => B, [
{target: 'b', source: 'a'}
])
public mapAToB: MapperFn<A, B>;
@ArrayMapper('mapAToB')
public mapAToBArray: ArrayMapperFn<A, B>;
}
const mapper: MyMapper = new MyMapper();
mapper.mapAToBArray([new A()])
// should return [B{ b: '...' }]API
MapperParamContext
| Argument | Type | Required | Description |
|---|---|---|---|
| source | string, keyof\ | false | select from the input, the value to be mapped |
| target | string, keyof\ | false | select the destination of the value inside the output object |
| customTransformer | (() => new(...args: any[]) => CustomTransformer<any, any>) | false | use an existing CustomTransformer class |
| transform | (input: any) => any | false | custom function to map value from selected source to target |
| type | () => new(...args: any[]) => any | false | type of the child object |
| params | MapperParamContext<any, any>[] | false | list of mapping information for child object |
How to run Unit Tests
To run unit tests and generate coverage with Jest, run :
npm run test