UNPKG

@flourd/toml

Version:

Familiar parse and stringify for TOML, with a CLI to convert to/from JSON.

31 lines (28 loc) 846 B
'use strict' module.exports = parseAsync const TOMLParser = require('../toml') const prettyError = require('../parse/pretty-error') function parseAsync(str, opts) { if (!opts) opts = {} const index = 0 const blocksize = opts.blocksize || 40960 const parser = new TOMLParser() return new Promise((resolve, reject) => { setImmediate(parseAsyncNext, index, blocksize, resolve, reject) }) function parseAsyncNext(index, blocksize, resolve, reject) { if (index >= str.length) { try { return resolve(parser.finish()) } catch (err) { return reject(prettyError(err, str)) } } try { parser.parse(str.slice(index, index + blocksize)) setImmediate(parseAsyncNext, index + blocksize, blocksize, resolve, reject) } catch (err) { reject(prettyError(err, str)) } } }