sms.js 588 Bytes
'use strict';

const moment = require('moment');

function extract(raw) {
    if (!raw) return null;
    const lines = raw.trim().split(/[\n\r]+/m);
    if (!lines) return null;

    const metadata = lines[0].split(',') || [];

    const ts = moment(`20${metadata[3]} ${metadata[4]}`, 'YYYY/MM/DD HH:mmm:ss').format('YYYY-MM-DD HH:mm:ss');

    const result = {
        metadata: {
            from: metadata[1],
            ts,
            raw: lines[0],
        },
        message: lines.slice(1).join('\n').trim(),
        raw,
    };

    return result;
}

exports.extract = extract;