Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function parse(source, reviver) {
if (reviver == null) {
reviver = defaultReviver;
}
function transformNode(csNode) {
const type = nodeTypeString(csNode);
const transform = nodeTransforms[type];
if (!transform) {
throw new SyntaxError(syntaxErrorMessage(csNode, `Unexpected ${type}`));
}
return transform(csNode, transformNode, reviver);
}
if (typeof reviver !== 'function') {
throw new TypeError('reviver has to be a function');
}
const coffeeAst = nodes(source.toString('utf8'));
const parsed = transformNode(coffeeAst);
if (reviver === defaultReviver) {
return parsed;
}
const contextObj = {};
contextObj[''] = parsed;
return reviver.call(contextObj, '', parsed);
}
module.exports = parse;