{"version":3,"file":"sdf-creator.umd.js","sources":["../lib/index.js"],"sourcesContent":["/**\n * Converts an array of objects containing molfile to a SDF string.\n * @param molecules - Array of molecule objects with molfile and properties.\n * @param options - Options to create the SDF.\n * @returns An object with the generated SDF string and the time taken.\n */\nexport function create(molecules, options = {}) {\n    const { molfilePropertyName = 'molfile', eol = '\\n', filter = /.*/, strict = false, } = options;\n    const emptyMolfile = 'empty.mol\\n  Spectrum generator\\n\\n  0  0  0  0  0  0  0  0  0  0999 V2000\\nM  END\\n';\n    const start = Date.now();\n    function normaliseMolfile(molfile) {\n        if (!molfile) {\n            if (strict)\n                throw new Error('Array containing emtpy molfiles');\n            molfile = emptyMolfile;\n        }\n        let molfileEOL = '\\n';\n        if (molfile.includes('\\r\\n')) {\n            molfileEOL = '\\r\\n';\n        }\n        else if (molfile.includes('\\r')) {\n            molfileEOL = '\\r';\n        }\n        const lines = molfile.replace(/[\\r\\n]+$/, '').split(molfileEOL);\n        return lines.join(eol);\n    }\n    const result = [];\n    for (const molecule of molecules) {\n        result.push(normaliseMolfile(molecule[molfilePropertyName]));\n        for (const key in molecule) {\n            const value = molecule[key];\n            if (key !== molfilePropertyName &&\n                (!filter || key.match(filter)) &&\n                value) {\n                result.push(`>  <${key}>`, value + eol);\n            }\n        }\n        result.push('$$$$');\n    }\n    const sdf = result.join(eol);\n    return {\n        time: Date.now() - start,\n        sdf,\n    };\n}\n//# sourceMappingURL=index.js.map"],"names":["create","molecules","options","molfilePropertyName","eol","filter","strict","emptyMolfile","start","Date","now","normaliseMolfile","molfile","Error","molfileEOL","includes","lines","replace","split","join","result","molecule","push","key","value","match","sdf","time"],"mappings":";;;;;;;;;;;;;IA8BA;;;;;;IAMM,SAAUA,MAAMA,CACpBC,SAAwC,EACxCC,OAAA,GAAyB,EAAE,EAAA;MAE3B,MAAM;IACJC,IAAAA,mBAAmB,GAAG,SAAS;IAC/BC,IAAAA,GAAG,GAAG,IAAI;IACVC,IAAAA,MAAM,GAAG,IAAI;IACbC,IAAAA,MAAM,GAAG;IAAK,GACf,GAAGJ,OAAO;MAEX,MAAMK,YAAY,GAChB,sFAAsF;IAExF,EAAA,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,EAAE;MAExB,SAASC,gBAAgBA,CAACC,OAA2B,EAAA;QACnD,IAAI,CAACA,OAAO,EAAE;IACZ,MAAA,IAAIN,MAAM,EAAE,MAAM,IAAIO,KAAK,CAAC,iCAAiC,CAAC;IAC9DD,MAAAA,OAAO,GAAGL,YAAY;IACxB,IAAA;QACA,IAAIO,UAAU,GAAG,IAAI;IACrB,IAAA,IAAIF,OAAO,CAACG,QAAQ,CAAC,MAAM,CAAC,EAAE;IAC5BD,MAAAA,UAAU,GAAG,MAAM;QACrB,CAAC,MAAM,IAAIF,OAAO,CAACG,QAAQ,CAAC,IAAI,CAAC,EAAE;IACjCD,MAAAA,UAAU,GAAG,IAAI;IACnB,IAAA;IACA,IAAA,MAAME,KAAK,GAAGJ,OAAO,CAACK,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAACC,KAAK,CAACJ,UAAU,CAAC;IAC/D,IAAA,OAAOE,KAAK,CAACG,IAAI,CAACf,GAAG,CAAC;IACxB,EAAA;MAEA,MAAMgB,MAAM,GAAa,EAAE;IAC3B,EAAA,KAAK,MAAMC,QAAQ,IAAIpB,SAAS,EAAE;QAChCmB,MAAM,CAACE,IAAI,CAACX,gBAAgB,CAACU,QAAQ,CAAClB,mBAAmB,CAAC,CAAC,CAAC;IAC5D,IAAA,KAAK,MAAMoB,GAAG,IAAIF,QAAQ,EAAE;IAC1B,MAAA,MAAMG,KAAK,GAAGH,QAAQ,CAACE,GAAG,CAAC;IAC3B,MAAA,IACEA,GAAG,KAAKpB,mBAAmB,KAC1B,CAACE,MAAM,IAAIkB,GAAG,CAACE,KAAK,CAACpB,MAAM,CAAC,CAAC,IAC9BmB,KAAK,EACL;YACAJ,MAAM,CAACE,IAAI,CAAC,CAAA,IAAA,EAAOC,GAAG,GAAG,EAAEC,KAAK,GAAGpB,GAAG,CAAC;IACzC,MAAA;IACF,IAAA;IACAgB,IAAAA,MAAM,CAACE,IAAI,CAAC,MAAM,CAAC;IACrB,EAAA;IACA,EAAA,MAAMI,GAAG,GAAGN,MAAM,CAACD,IAAI,CAACf,GAAG,CAAC;MAE5B,OAAO;IACLuB,IAAAA,IAAI,EAAElB,IAAI,CAACC,GAAG,EAAE,GAAGF,KAAK;IACxBkB,IAAAA;IACD,GAAA;IACH;;;;;;;;"}