UNPKG

ffc-pay-etl-framework

Version:

A framework for creating ETL pipelines in node

36 lines (33 loc) 895 B
// @ts-nocheck const { Transform } = require('node:stream') /** * * @param {Object} options * @param {String} options.message * @param {Array} options.columns * @returns Transform */ function requiredValidator (options) { return new Transform({ readableObjectMode: true, writableObjectMode: true, decodeStrings: false, construct (callback) { this.message = options.message ? options.message : 'Required value is null' this.requiredColumns = options.columns callback() }, transform (chunk, _, callback) { this.requiredColumns.forEach(column => { const requiredVal = chunk[column] if (requiredVal === undefined || requiredVal === '') { chunk.errors.push(`${this.message} in column ${column}`) } }) callback(null, chunk) } }) } module.exports = { RequiredValidator: requiredValidator }