create()

in lib/rules/i18n-no-reference.js [45:76]


  create(context) {
    const SOURCE_CODE = context.sourceCode ?? context.getSourceCode();

    return {
      CallExpression(node) {
        const [methodName, methodArgs] = extractI18nMethodAndArgs(node);

        if (!methodName || !methodArgs || methodName.includes('ngettext')) {
          return;
        }

        const positions = I18N_METHODS[methodName] || [];

        positions.forEach((position) => {
          const arg = methodArgs[position];

          const [argMethod] = extractI18nMethodAndArgs(arg);

          if (isReferenceNode(arg) && !argMethod) {
            context.report({
              node,
              messageId: 'noDynamicValue',
              data: {
                method: methodName,
                arg: SOURCE_CODE.getText(arg),
              },
            });
          }
        });
      },
    };
  },