UNPKG

charlike

Version:

Small, fast, simple and streaming project scaffolder for myself, but not only. Supports hundreds of template engines through the @JSTransformers API or if you want custom `render` function passed through options

36 lines (29 loc) 589 B
'use strict'; var errorEx = require('error-ex'); var fallback = require('./vendor/parse'); var JSONError = errorEx('JSONError', { fileName: errorEx.append('in %s') }); module.exports = function (x, reviver, filename) { if (typeof reviver === 'string') { filename = reviver; reviver = null; } try { try { return JSON.parse(x, reviver); } catch (err) { fallback.parse(x, { mode: 'json', reviver: reviver }); throw err; } } catch (err) { var jsonErr = new JSONError(err); if (filename) { jsonErr.fileName = filename; } throw jsonErr; } };