const bindings = require('./bindings.js'); module.exports.MagicString = bindings.MagicString; module.exports.ParseResult = bindings.ParseResult; module.exports.ExportExportNameKind = bindings.ExportExportNameKind; module.exports.ExportImportNameKind = bindings.ExportImportNameKind; module.exports.ExportLocalNameKind = bindings.ExportLocalNameKind; module.exports.ImportNameKind = bindings.ImportNameKind; module.exports.parseWithoutReturn = bindings.parseWithoutReturn; module.exports.Severity = bindings.Severity; function wrap(result) { let program, module, comments, errors, magicString; return { get program() { if (!program) program = JSON.parse(result.program); return program; }, get module() { if (!module) module = result.module; return module; }, get comments() { if (!comments) comments = result.comments; return comments; }, get errors() { if (!errors) errors = result.errors; return errors; }, get magicString() { if (!magicString) magicString = result.magicString; return magicString; }, }; } module.exports.parseAsync = async function parseAsync(...args) { return wrap(await bindings.parseAsync(...args)); }; module.exports.parseSync = function parseSync(...args) { return wrap(bindings.parseSync(...args)); };