UNPKG

@pujansrt/data-genie

Version:

High performant ETL engine written in TypeScript

19 lines (18 loc) 1.26 kB
"use strict"; 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);