Skip to content

Commit

Permalink
[Refactor] context.getSource -> sourceCode.getText
Browse files Browse the repository at this point in the history
  • Loading branch information
ljharb committed May 19, 2024
1 parent 65f10f9 commit 2bc74ca
Show file tree
Hide file tree
Showing 37 changed files with 144 additions and 121 deletions.
9 changes: 6 additions & 3 deletions lib/rules/boolean-prop-naming.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ const propsUtil = require('../util/props');
const docsUrl = require('../util/docsUrl');
const propWrapperUtil = require('../util/propWrapper');
const report = require('../util/report');
const getSourceCode = require('../util/eslint').getSourceCode;
const eslintUtil = require('../util/eslint');

const getSourceCode = eslintUtil.getSourceCode;
const getText = eslintUtil.getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -309,7 +312,7 @@ module.exports = {
&& node.value.type === 'CallExpression'
&& propWrapperUtil.isPropWrapperFunction(
context,
getSourceCode(context).getText(node.value.callee)
getText(context, node.value.callee)
)
) {
checkPropWrapperArguments(node, node.value.arguments);
Expand All @@ -335,7 +338,7 @@ module.exports = {
right.type === 'CallExpression'
&& propWrapperUtil.isPropWrapperFunction(
context,
getSourceCode(context).getText(right.callee)
getText(context, right.callee)
)
) {
checkPropWrapperArguments(component.node, right.arguments);
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/destructuring-assignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const eslintUtil = require('../util/eslint');
const isAssignmentLHS = require('../util/ast').isAssignmentLHS;
const report = require('../util/report');

const getSourceCode = eslintUtil.getSourceCode;
const getText = eslintUtil.getText;

const DEFAULT_OPTION = 'always';

Expand Down Expand Up @@ -272,7 +272,7 @@ module.exports = {
param.typeAnnotation ? param.typeAnnotation.range[0] : param.range[1],
];
return [
fixer.replaceTextRange(replaceRange, getSourceCode(context).getText(node.id)),
fixer.replaceTextRange(replaceRange, getText(context, node.id)),
fixer.remove(node.parent),
];
},
Expand Down
6 changes: 3 additions & 3 deletions lib/rules/forbid-elements.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

const has = require('object.hasown/polyfill')();
const docsUrl = require('../util/docsUrl');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;
const isCreateElement = require('../util/isCreateElement');
const report = require('../util/report');

Expand Down Expand Up @@ -91,7 +91,7 @@ module.exports = {

return {
JSXOpeningElement(node) {
reportIfForbidden(getSourceCode(context).getText(node.name), node.name);
reportIfForbidden(getText(context, node.name), node.name);
},

CallExpression(node) {
Expand All @@ -111,7 +111,7 @@ module.exports = {
} else if (argType === 'Literal' && /^[a-z][^.]*$/.test(argument.value)) {
reportIfForbidden(argument.value, argument);
} else if (argType === 'MemberExpression') {
reportIfForbidden(getSourceCode(context).getText(argument), argument);
reportIfForbidden(getText(context, argument), argument);
}
},
};
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/forbid-prop-types.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const astUtil = require('../util/ast');
const docsUrl = require('../util/docsUrl');
const propWrapperUtil = require('../util/propWrapper');
const report = require('../util/report');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;

// ------------------------------------------------------------------------------
// Constants
Expand Down Expand Up @@ -172,7 +172,7 @@ module.exports = {
case 'CallExpression': {
const innerNode = node.arguments && node.arguments[0];
if (
propWrapperUtil.isPropWrapperFunction(context, getSourceCode(context).getText(node.callee))
propWrapperUtil.isPropWrapperFunction(context, getText(context, node.callee))
&& innerNode
) {
checkNode(innerNode);
Expand Down
5 changes: 2 additions & 3 deletions lib/rules/function-component-definition.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const arrayIncludes = require('array-includes');
const Components = require('../util/Components');
const docsUrl = require('../util/docsUrl');
const reportC = require('../util/report');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -182,8 +182,7 @@ module.exports = {
);

function getFixer(node, options) {
const sourceCode = getSourceCode(context);
const source = sourceCode.getText();
const source = getText(context);

const typeAnnotation = getTypeAnnotation(node, source);

Expand Down
4 changes: 2 additions & 2 deletions lib/rules/hook-use-state.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const Components = require('../util/Components');
const docsUrl = require('../util/docsUrl');
const report = require('../util/report');
const getMessageData = require('../util/message');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -168,7 +168,7 @@ module.exports = {
// Convert useState call to useMemo + arrow function + dependency array
fixer.replaceTextRange(
node.range,
`${useMemoCode}(() => ${getSourceCode(context).getText(node.arguments[0])}, [])`
`${useMemoCode}(() => ${getText(context, node.arguments[0])}, [])`
),
].filter(Boolean),
}
Expand Down
14 changes: 7 additions & 7 deletions lib/rules/jsx-curly-brace-presence.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ const arrayIncludes = require('array-includes');
const docsUrl = require('../util/docsUrl');
const jsxUtil = require('../util/jsx');
const report = require('../util/report');
const getSourceCode = require('../util/eslint').getSourceCode;
const eslintUtil = require('../util/eslint');

const getSourceCode = eslintUtil.getSourceCode;
const getText = eslintUtil.getText;

// ------------------------------------------------------------------------------
// Constants
Expand Down Expand Up @@ -177,8 +180,7 @@ module.exports = {

let textToReplace;
if (jsxUtil.isJSX(expression)) {
const sourceCode = getSourceCode(context);
textToReplace = sourceCode.getText(expression);
textToReplace = getText(context, expression);
} else {
const expressionType = expression && expression.type;
const parentType = JSXExpressionNode.parent.type;
Expand All @@ -189,9 +191,7 @@ module.exports = {
: expression.raw.slice(1, -1)
}"`;
} else if (jsxUtil.isJSX(expression)) {
const sourceCode = getSourceCode(context);

textToReplace = sourceCode.getText(expression);
textToReplace = getText(context, expression);
} else {
textToReplace = expressionType === 'TemplateLiteral'
? expression.quasis[0].value.cooked : expression.value;
Expand All @@ -208,7 +208,7 @@ module.exports = {
node: literalNode,
fix(fixer) {
if (jsxUtil.isJSX(literalNode)) {
return fixer.replaceText(literalNode, `{${getSourceCode(context).getText(literalNode)}}`);
return fixer.replaceText(literalNode, `{${getText(context, literalNode)}}`);
}

// If a HTML entity name is found, bail out because it can be fixed
Expand Down
11 changes: 6 additions & 5 deletions lib/rules/jsx-curly-newline.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
'use strict';

const docsUrl = require('../util/docsUrl');
const getSourceCode = require('../util/eslint').getSourceCode;
const eslintUtil = require('../util/eslint');
const report = require('../util/report');

const getSourceCode = eslintUtil.getSourceCode;
const getText = eslintUtil.getText;

// ------------------------------------------------------------------------------
// Rule Definition
// ------------------------------------------------------------------------------
Expand Down Expand Up @@ -131,8 +134,7 @@ module.exports = {
report(context, messages.unexpectedAfter, 'unexpectedAfter', {
node: leftCurly,
fix(fixer) {
return sourceCode
.getText()
return getText(context)
.slice(leftCurly.range[1], tokenAfterLeftCurly.range[0])
.trim()
? null // If there is a comment between the { and the first element, don't do a fix.
Expand All @@ -150,8 +152,7 @@ module.exports = {
report(context, messages.unexpectedBefore, 'unexpectedBefore', {
node: rightCurly,
fix(fixer) {
return sourceCode
.getText()
return getText(context)
.slice(tokenBeforeRightCurly.range[1], rightCurly.range[0])
.trim()
? null // If there is a comment between the last element and the }, don't do a fix.
Expand Down
18 changes: 8 additions & 10 deletions lib/rules/jsx-fragments.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const variableUtil = require('../util/variable');
const testReactVersion = require('../util/version').testReactVersion;
const docsUrl = require('../util/docsUrl');
const report = require('../util/report');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -66,36 +66,34 @@ module.exports = {
}

function getFixerToLong(jsxFragment) {
const sourceCode = getSourceCode(context);
if (!jsxFragment.closingFragment || !jsxFragment.openingFragment) {
// the old TS parser crashes here
// TODO: FIXME: can we fake these two descriptors?
return null;
}
return function fix(fixer) {
let source = sourceCode.getText();
let source = getText(context);
source = replaceNode(source, jsxFragment.closingFragment, closeFragLong);
source = replaceNode(source, jsxFragment.openingFragment, openFragLong);
const lengthDiff = openFragLong.length - sourceCode.getText(jsxFragment.openingFragment).length
+ closeFragLong.length - sourceCode.getText(jsxFragment.closingFragment).length;
const lengthDiff = openFragLong.length - getText(context, jsxFragment.openingFragment).length
+ closeFragLong.length - getText(context, jsxFragment.closingFragment).length;
const range = jsxFragment.range;
return fixer.replaceTextRange(range, source.slice(range[0], range[1] + lengthDiff));
};
}

function getFixerToShort(jsxElement) {
const sourceCode = getSourceCode(context);
return function fix(fixer) {
let source = sourceCode.getText();
let source = getText(context);
let lengthDiff;
if (jsxElement.closingElement) {
source = replaceNode(source, jsxElement.closingElement, closeFragShort);
source = replaceNode(source, jsxElement.openingElement, openFragShort);
lengthDiff = sourceCode.getText(jsxElement.openingElement).length - openFragShort.length
+ sourceCode.getText(jsxElement.closingElement).length - closeFragShort.length;
lengthDiff = getText(context, jsxElement.openingElement).length - openFragShort.length
+ getText(context, jsxElement.closingElement).length - closeFragShort.length;
} else {
source = replaceNode(source, jsxElement.openingElement, `${openFragShort}${closeFragShort}`);
lengthDiff = sourceCode.getText(jsxElement.openingElement).length - openFragShort.length
lengthDiff = getText(context, jsxElement.openingElement).length - openFragShort.length
- closeFragShort.length;
}

Expand Down
10 changes: 5 additions & 5 deletions lib/rules/jsx-handler-names.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
'use strict';

const docsUrl = require('../util/docsUrl');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;
const report = require('../util/report');

// ------------------------------------------------------------------------------
Expand Down Expand Up @@ -130,10 +130,10 @@ module.exports = {

const propKey = typeof node.name === 'object' ? node.name.name : node.name;
const expression = node.value.expression;
const propValue = getSourceCode(context)
.getText(checkInlineFunction && isInlineHandler(node) ? expression.body.callee : expression)
.replace(/\s*/g, '')
.replace(/^this\.|.*::/, '');
const propValue = getText(
context,
checkInlineFunction && isInlineHandler(node) ? expression.body.callee : expression
).replace(/\s*/g, '').replace(/^this\.|.*::/, '');

if (propKey === 'ref') {
return;
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/jsx-indent-props.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

const astUtil = require('../util/ast');
const docsUrl = require('../util/docsUrl');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;
const reportC = require('../util/report');

// ------------------------------------------------------------------------------
Expand Down Expand Up @@ -141,7 +141,7 @@ module.exports = {
* @return {Number} Indent
*/
function getNodeIndent(node) {
let src = getSourceCode(context).getText(node, node.loc.start.column + extraColumnStart);
let src = getText(context, node, node.loc.start.column + extraColumnStart);
const lines = src.split('\n');
src = lines[0];

Expand Down
9 changes: 6 additions & 3 deletions lib/rules/jsx-indent.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ const astUtil = require('../util/ast');
const docsUrl = require('../util/docsUrl');
const reportC = require('../util/report');
const jsxUtil = require('../util/jsx');
const getSourceCode = require('../util/eslint').getSourceCode;
const eslintUtil = require('../util/eslint');

const getSourceCode = eslintUtil.getSourceCode;
const getText = eslintUtil.getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -117,7 +120,7 @@ module.exports = {
}

if (node.type === 'ReturnStatement') {
const raw = getSourceCode(context).getText(node);
const raw = getText(context, node);
const lines = raw.split('\n');
if (lines.length > 1) {
return function fix(fixer) {
Expand Down Expand Up @@ -169,7 +172,7 @@ module.exports = {
* @return {Number} Indent
*/
function getNodeIndent(node, byLastLine, excludeCommas) {
let src = getSourceCode(context).getText(node, node.loc.start.column + extraColumnStart);
let src = getText(context, node, node.loc.start.column + extraColumnStart);
const lines = src.split('\n');
if (byLastLine) {
src = lines[lines.length - 1];
Expand Down
4 changes: 2 additions & 2 deletions lib/rules/jsx-key.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const docsUrl = require('../util/docsUrl');
const pragmaUtil = require('../util/pragma');
const report = require('../util/report');
const astUtil = require('../util/ast');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;

// ------------------------------------------------------------------------------
// Rule Definition
Expand Down Expand Up @@ -214,7 +214,7 @@ module.exports = {
}
} else {
keys.forEach((attr) => {
const value = getSourceCode(context).getText(attr.value);
const value = getText(context, attr.value);
if (!map[value]) { map[value] = []; }
map[value].push(attr);

Expand Down
9 changes: 4 additions & 5 deletions lib/rules/jsx-max-props-per-line.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
'use strict';

const docsUrl = require('../util/docsUrl');
const getSourceCode = require('../util/eslint').getSourceCode;
const getText = require('../util/eslint').getText;
const report = require('../util/report');

function getPropName(context, propNode) {
if (propNode.type === 'JSXSpreadAttribute') {
return getSourceCode(context).getText(propNode.argument);
return getText(context, propNode.argument);
}
return propNode.name.name;
}
Expand Down Expand Up @@ -88,7 +88,6 @@ module.exports = {
};

function generateFixFunction(line, max) {
const sourceCode = getSourceCode(context);
const output = [];
const front = line[0].range[0];
const back = line[line.length - 1].range[1];
Expand All @@ -97,9 +96,9 @@ module.exports = {
const nodes = line.slice(i, i + max);
output.push(nodes.reduce((prev, curr) => {
if (prev === '') {
return sourceCode.getText(curr);
return getText(context, curr);
}
return `${prev} ${sourceCode.getText(curr)}`;
return `${prev} ${getText(context, curr)}`;
}, ''));
}

Expand Down

0 comments on commit 2bc74ca

Please sign in to comment.