@generaltranslation/react-core-linter 0.1.0 → 0.1.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/static-string/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAwBjE,eAAO,MAAM,YAAY;;sCAkHvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/static-string/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAwBjE,eAAO,MAAM,YAAY;;sCA2IvB,CAAC"}
@@ -58,8 +58,8 @@ export const staticString = createRule({
58
58
  * Handle function calls
59
59
  */
60
60
  CallExpression(node) {
61
- if (!isMsgFunction({ context, node, libs }) &&
62
- !isGTCallbackFunction({ context, node, libs })) {
61
+ const isMsgCall = isMsgFunction({ context, node, libs });
62
+ if (!isMsgCall && !isGTCallbackFunction({ context, node, libs })) {
63
63
  return;
64
64
  }
65
65
  // Ignore if there is no first argument
@@ -73,15 +73,33 @@ export const staticString = createRule({
73
73
  messageId: 'variableInterpolationRequired',
74
74
  });
75
75
  }
76
- // Validate gt()'s params
77
- validateGTInvocation(firstArgument);
76
+ // Validate params — arrays only allowed for msg()
77
+ validateGTInvocation(firstArgument, isMsgCall);
78
78
  /**
79
79
  * Helper function to validate gt()'s params
80
+ * TODO: when enable array support in gt function remove allowArrays parameter as it will always be true
80
81
  */
81
- function validateGTInvocation(expression) {
82
+ function validateGTInvocation(expression, allowArrays = false) {
82
83
  // Static string is okay
83
84
  if (isStaticString(expression))
84
85
  return;
86
+ // Array of static strings — only for msg() currently
87
+ if (allowArrays &&
88
+ expression.type === TSESTree.AST_NODE_TYPES.ArrayExpression) {
89
+ for (const element of expression.elements) {
90
+ if (element &&
91
+ element.type !== TSESTree.AST_NODE_TYPES.SpreadElement) {
92
+ validateGTInvocation(element, false); // no nested arrays
93
+ }
94
+ else if (element?.type === TSESTree.AST_NODE_TYPES.SpreadElement) {
95
+ return context.report({
96
+ node: element,
97
+ messageId: 'staticStringRequired',
98
+ });
99
+ }
100
+ }
101
+ return;
102
+ }
85
103
  // declareStatic() is okay
86
104
  if (expression.type === TSESTree.AST_NODE_TYPES.CallExpression &&
87
105
  isDeclareStaticFunction({ context, node: expression, libs })) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/static-string/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/static-string/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@generaltranslation/react-core-linter",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "ESLint plugin for General Translation React Core integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",