eslint-plugin-formatjs 7.0.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +17 -12
  2. package/index.js.map +1 -1
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -639,6 +639,17 @@ function checkInlineMessage(context, node) {
639
639
  const imports = hoistTypes(context, node, contract);
640
640
  contract = imports.text;
641
641
  const parameters = generic?.params;
642
+ if (contract === "{}" && node.arguments.length === 1) {
643
+ if (!generic) return true;
644
+ if (parameters?.length === 1) {
645
+ context.report({
646
+ node: generic,
647
+ messageId: "contract",
648
+ fix: (fixer) => fixer.remove(generic)
649
+ });
650
+ return true;
651
+ }
652
+ }
642
653
  if (parameters && parameters.length >= 1 && parameters.length <= 2 && renderType(parameters[0]) === contract && !generated) return true;
643
654
  if (generic && (!parameters || parameters.length > 2)) {
644
655
  context.report({
@@ -769,19 +780,18 @@ const rule$20 = {
769
780
  const generated = !!generic && /^<\s*\/\* @formatjs-generated \*\//.test(source.getText(generic));
770
781
  const options = node.arguments[1];
771
782
  const typed = staticObject(options) && options.properties.length === 1 && options.properties.some((p) => p.type === "Property" && (p.key.type === "Identifier" ? p.key.name : p.key.type === "Literal" ? p.key.value : void 0) === "typed" && p.value.type === "Literal" && p.value.value === true);
772
- if (!typed && !generated && !context.options[0]?.generateTypes) return;
773
- if (!typed && generic && !generated && !context.options[0]?.generateTypes) return;
783
+ if (!generic && !typed && !context.options[0]?.generateTypes) return;
774
784
  if (node.arguments.length > 2 || options && !typed) return;
775
785
  const descriptor = node.arguments[0];
776
786
  if (!staticObject(descriptor)) {
777
- if (typed || generated) context.report({
787
+ if (generic || typed) context.report({
778
788
  node,
779
789
  messageId: "dynamic"
780
790
  });
781
791
  return;
782
792
  }
783
793
  if (imported.helper === "defineMessages" && !descriptor.properties.every((p) => p.type === "Property" && staticObject(p.value))) {
784
- if (typed || generated) context.report({
794
+ if (generic || typed) context.report({
785
795
  node,
786
796
  messageId: "dynamic"
787
797
  });
@@ -795,7 +805,7 @@ const rule$20 = {
795
805
  }
796
806
  }, getSettings(context));
797
807
  if (messages.some(([message]) => typeof message.message.defaultMessage !== "string" || !staticMessage(message.messageNode ?? void 0)) || messages.length !== (imported.helper === "defineMessage" ? 1 : descriptor.properties.length)) {
798
- if (typed || generated) context.report({
808
+ if (generic || typed) context.report({
799
809
  node,
800
810
  messageId: "dynamic"
801
811
  });
@@ -841,7 +851,7 @@ const rule$20 = {
841
851
  const annotationMatches = !annotation || annotation.annotation === annotation.generated && renderType(annotation.generated) === catalogType;
842
852
  const expected = `<${contract}>`;
843
853
  const parameters = generic?.params;
844
- if (parameters && parameters.length >= 1 && parameters.length <= 2 && renderType(parameters[0]) === contract && typed && !generated && annotationMatches) return;
854
+ if (parameters && parameters.length >= 1 && parameters.length <= 2 && renderType(parameters[0]) === contract && !generated && annotationMatches) return;
845
855
  if (generic && (!parameters || parameters.length < 1 || parameters.length > 2)) {
846
856
  context.report({
847
857
  node: generic,
@@ -855,11 +865,6 @@ const rule$20 = {
855
865
  fix(fixer) {
856
866
  const edits = [...imports.fix(fixer), generic && parameters?.[0] ? fixer.replaceTextRange([generic.range[0] + 1, parameters[0].range[1]], contract) : fixer.insertTextAfter(node.optional ? source.getTokenAfter(node.callee) : node.callee, expected)];
857
867
  if (annotation && !annotationMatches) edits.push(fixer.replaceText(annotation.annotation, catalogType));
858
- if (!typed) {
859
- const close = source.getLastToken(node);
860
- const previous = source.getTokenBefore(close);
861
- edits.push(fixer.insertTextBefore(close, `${previous.value === "," ? "" : ","} {typed: true}`));
862
- }
863
868
  return edits;
864
869
  }
865
870
  });
@@ -5117,7 +5122,7 @@ var package_exports = /* @__PURE__ */ __exportAll({
5117
5122
  version: () => version$1
5118
5123
  });
5119
5124
  var name$1 = "eslint-plugin-formatjs";
5120
- var version$1 = "7.0.0";
5125
+ var version$1 = "8.0.0";
5121
5126
  var description = "ESLint plugin for formatjs";
5122
5127
  var keywords = [
5123
5128
  "eslint",