UNPKG

@bazilio-san/af-stream

Version:
85 lines (77 loc) 1.7 kB
const moment = require('moment-timezone'); import * as sql from 'mssql'; const isDateType = (sqlType) => { switch (sqlType) { case sql.DateTime: case sql.DateTime2: case sql.Time: case sql.Date: case sql.SmallDateTime: return true; } return false; }; const isIntType = (sqlType) => { switch (sqlType) { case sql.TinyInt: case sql.SmallInt: case sql.Int: case sql.BigInt: return true; } return false; }; const isFloatType = (sqlType) => { switch (sqlType) { case sql.Decimal: case sql.Float: case sql.Money: case sql.Numeric: case sql.SmallMoney: case sql.Real: return true; } return false; }; const convertFunctionForIntLong = (msSqlType) => { const _intConv = (v) => { if (v == null) { return null; } const val = Number(v); return Number.isNaN(val) ? null : val; }; if (isIntType(msSqlType)) { return _intConv; } if (isFloatType(msSqlType)) { return (v) => { if (v == null) { return null; } const val = Number(v); return Number.isNaN(val) ? null : Math.round(val); }; } if (isDateType(msSqlType)) { return (v) => { if (v == null) { return null; } if (v instanceof Date) { return +v; } if (typeof v === 'string') { const val = moment(v); return val.isValid() ? val.valueOf() : null; } const val = Number(v); return Number.isNaN(val) ? null : Math.round(val); }; } return _intConv; }; const getConvertFunctionDbValueToSiddhi = () => { return (v) => (v == null ? null : v); }; module.exports = getConvertFunctionDbValueToSiddhi;