UNPKG

e-lado

Version:

[![CircleCI](https://circleci.com/gh/sharetribe/sharetribe/tree/master.svg?style=svg)](https://circleci.com/gh/sharetribe/sharetribe/tree/master) [![Dependency Status](https://gemnasium.com/sharetribe/sharetribe.png)](https://gemnasium.com/sharetribe/shar

69 lines (60 loc) 1.53 kB
export const parser = 'flow'; export default function transformer(file, api, options) { const j = api.jscodeshift; const s = j(file.source); const { ruleName, rulePath, } = options || {}; const nameSort = (a, b) => { const aName = (a.key.type === 'Literal') ? a.key.value : a.key.name; const bName = (b.key.type === 'Literal') ? b.key.value : b.key.name; if (aName < bName) { return -1; } if (bName < aName) { return 1; } return 0; }; let changesMade = 0; const rulePathInSrc = './' + rulePath.match(/src\/(.*)\.js/)[1]; changesMade += s.find(j.Identifier, { name: 'rules' }).forEach((path, index) => { // Add rule path. if (index === 0) { path.parentPath.value.value.properties.unshift( j.property( 'init', j.literal(ruleName), j.callExpression( j.identifier('require'), [ j.literal(rulePathInSrc), ] ), ) ); path.parentPath.value.value.properties.sort(nameSort); } // Set default reporting to error. if (index === 1) { path.parentPath.value.value.properties.unshift( j.property( 'init', j.literal('jsx-a11y/' + ruleName), j.literal('error'), ) ); path.parentPath.value.value.properties.sort(nameSort); } }).length; if (changesMade === 0) { return null; } return s.toSource({ quote: 'single', trailingComma: true, }); }