estools/estraverse

estraverse::map

a-x- opened this issue · 0 comments

a-x- commented

Hey,
what about map method based on traverse method?

now i have to write in none FP style:

const retrieveBemEntities = (fileContent) => {
    var bemjsons = [];
    return new Promise(function(res, err) {
        const ast = parse.parse(fileContent);
        traverse.traverse(ast, {
            enter: node => isObject(node) && isBemjson(node) && bemjsons.push(nodeToObject(node)),
            onEnd: () => res(bemjsons)
        });
    })
}

'll be cool write like this:

/**
 * @returns {Promise<BEMJSON[]>}
 */
const retrieveBemEntities = (fileContent) =>
    traverse.map(parse.parse(fileContent),
        node => isObject(node) && isBemjson(node) && nodeToObject(node));