@pujansrt/data-genie
Version:
High performant ETL engine written in TypeScript
25 lines (24 loc) • 829 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonReader = void 0;
const fs_1 = require("fs");
class JsonReader {
constructor(filePath) {
this.filePath = filePath;
}
async *read() {
const data = await new Promise((resolve, reject) => {
const stream = (0, fs_1.createReadStream)(this.filePath, { encoding: 'utf8' });
let content = '';
stream.on('data', (chunk) => (content += chunk));
stream.on('end', () => resolve(content));
stream.on('error', (err) => reject(err));
});
// Assuming the JSON file contains an array of objects
const records = JSON.parse(data);
for (const record of records) {
yield record;
}
}
}
exports.JsonReader = JsonReader;