@pujansrt/data-genie
Version:
High performant ETL engine written in TypeScript
19 lines (18 loc) • 1.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const csv_reader_1 = require("../readers/csv-reader");
const transforming_reader_1 = require("../transformers/transforming-reader");
const field_transformers_1 = require("../transformers/field-transformers");
const job_1 = require("../core/job");
const remove_duplicates_reader_1 = require("../transformers/remove-duplicates-reader");
const fixed_width_writer_1 = require("../writers/fixed-width-writer");
async function runExample() {
let reader = new csv_reader_1.CSVReader('input/credit-balance-01.csv').setFieldNamesInFirstRow(true);
reader = new remove_duplicates_reader_1.RemoveDuplicatesReader(reader, 'Rating', 'CreditLimit');
reader = new transforming_reader_1.TransformingReader(reader)
.add(new field_transformers_1.SetCalculatedField('AvailableCredit', 'parseFloat(record.CreditLimit) - parseFloat(record.Balance)').transform())
.add(new field_transformers_1.RemoveFields('CreditLimit', 'Balance').transform());
const fwWriter = new fixed_width_writer_1.FixedWidthWriter('output/ex-simulated.fw').setFieldNamesInFirstRow(true).setFieldWidths(10, 15, 10, 15);
await job_1.Job.run(reader, fwWriter);
}
runExample().catch(console.error);