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.
- package/index.js +17 -12
- package/index.js.map +1 -1
- 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 (!
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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 &&
|
|
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 = "
|
|
5125
|
+
var version$1 = "8.0.0";
|
|
5121
5126
|
var description = "ESLint plugin for formatjs";
|
|
5122
5127
|
var keywords = [
|
|
5123
5128
|
"eslint",
|