* feat: support YAML * fix: do not indent sequence in mappingValue * docs: add yaml to index.md * fix: reduce `SyntaxError: Node#parse consumed no characters` * chore: remove old-build and new-worker.js * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * refactor * fix: no space after `<<` * fix: add yaml to standalone test * test: add tests * fix: next empty line in flow collection * fix: tabs are not allowed http://yaml.org/spec/1.2/spec.html#space/indentation/ * fix: update parser * feat: rewrite the mappingItem logic * feat: indent sequence in mapping * feat(doc): add ifBreak#groupId and group#id * chore: fix node 4 * chore: add tools_yaml.svg * chore: remove resolved TODO * refactor: remove unnecessary workaround * chore(worker): importScriptOnce * chore(build): rename with babelPlugins * make it rollup compatible * feat: support singleQuote * refactor
27 lines
619 B
JavaScript
27 lines
619 B
JavaScript
"use strict";
|
|
|
|
//
|
|
// BEFORE:
|
|
// [__something__].includes(__something__)
|
|
//
|
|
// AFTER:
|
|
// [__something__].indexOf(__something__) !== -1
|
|
//
|
|
|
|
module.exports = ({ types: t }) => ({
|
|
visitor: {
|
|
CallExpression(path) {
|
|
const node = path.node;
|
|
const callee = node.callee;
|
|
if (
|
|
t.isMemberExpression(callee, { computed: false }) &&
|
|
t.isArrayExpression(callee.object) &&
|
|
t.isIdentifier(callee.property, { name: "includes" })
|
|
) {
|
|
callee.property.name = "indexOf";
|
|
path.replaceWith(t.binaryExpression("!==", node, t.numericLiteral(-1)));
|
|
}
|
|
}
|
|
}
|
|
});
|