estools / estraverse

ECMAScript JS AST traversal functions
BSD 2-Clause "Simplified" License
937 stars 131 forks source link

estraverse::map #75

Open a-x- opened 8 years ago

a-x- commented 8 years ago

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));