Simple Typesafe Object builder for Typescript
npm install ts-object-builderBuild status: 

Simple Typesafe Object builder for Typescript
npm install --save-dev ts-object-builder
typescript
class Sample {
numericField: number;
stringField: string;
}class SampleObjectBuilder extends ObjectBuilder {
constructor() {
super(Sample);
}
}
const obj = new SampleObjectBuilder()
.with('numericField', 123)
.with('stringField', 'awesome string')
.build();
// Builds:
// {
// numericField: 123,
// stringField: 'awesome string'
// }
`$3
`typescript
const obj = new SampleObjectBuilder()
.with('numericField', 123)
.with('stringField', () => 'awesome string')
.build();// Builds:
// {
// numericField: 123,
// stringField: 'awesome string'
// }
`$3
`typescript
const objList = new SampleObjectBuilder()
.with('numericField', () => Math.random() * 1000000)
.with('stringField', 'awesome string')
.buildList(2);// Builds:
// [
// {
// numericField: 123,
// stringField: 'awesome string'
// },
// {
// numericField: 234,
// stringField: 'awesome string'
// }
// ]
`
$3
`typescript
const objList = new SampleObjectBuilder()
.with('numericField', () => Math.random() * 1000000)
.with('stringField', (index: number) => value ${index})
.buildList(2);// Builds:
// [
// {
// numericField: 123,
// stringField: 'value 0'
// },
// {
// numericField: 234,
// stringField: 'value 1'
// }
// ]
`$3
`typescript
const objList = new SampleObjectBuilder()
.with('numericField', () => Math.random() * 1000000)
.with('stringField', 'awesome string')
.without('stringField')
.buildList(2);// Builds:
// [
// {
// numericField: 123
// },
// {
// numericField: 234
// }
// ]
``