Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/wincloud_gateway/node_modules/react-dates/scripts/ drwxr-xr-x | |
| Viewing file: Select action/file-type: module.exports = function pureComponentFallback({ types: t, template }) {
const buildPureOrNormalSuperclass = () => t.LogicalExpression('||',
t.memberExpression(t.identifier('React'), t.identifier('PureComponent')),
t.memberExpression(t.identifier('React'), t.identifier('Component')));
const buildShouldComponentUpdate = () => {
const method = t.classMethod(
'method',
t.logicalExpression(
'&&',
t.unaryExpression('!', t.memberExpression(t.identifier('React'), t.identifier('PureComponent'))),
t.stringLiteral('shouldComponentUpdate')
),
[t.identifier('nextProps'), t.identifier('nextState')],
t.blockStatement([template('return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);')()]),
true
);
return method;
};
function superclassIsPureComponent(path) {
const superclass = path.get('superClass');
// check for PureComponent
if (t.isIdentifier(superclass)) {
return superclass.node.name === 'PureComponent';
}
if (t.isMemberExpression(superclass)) {
// Check for React.PureComponent
return superclass.get('object').node.name === 'React'
&& superclass.get('property').node.name === 'PureComponent';
}
return false;
}
return {
visitor: {
Program: {
exit({ node }, { file }) {
if (file.get('addShallowEqualImport')) {
const shallowEqualImportDeclaration = t.importDeclaration([
t.importDefaultSpecifier(t.identifier('shallowEqual')),
], t.stringLiteral('enzyme-shallow-equal'));
node.body.unshift(shallowEqualImportDeclaration);
}
},
},
ClassDeclaration(path, { file }) {
if (superclassIsPureComponent(path)) {
const superclassPath = path.get('superClass');
// Replace the superclass
superclassPath.replaceWith(buildPureOrNormalSuperclass());
// Only add an SCU if one doesn't already exist
const existingSCU = path.get('body').get('body').find((
p => p.isClassMethod() && p.get('key').node.name === 'shouldComponentUpdate'
));
if (!existingSCU) {
file.set('addShallowEqualImport', true);
path.get('body').unshiftContainer('body', buildShouldComponentUpdate());
}
}
},
},
};
};
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]-- |