@atlaskit/eslint-plugin-platform 0.7.0 → 0.7.2
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/CHANGELOG.md +17 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/rules/ensure-feature-flag-prefix/index.js +2 -1
- package/dist/cjs/rules/inline-usage/index.js +1 -1
- package/dist/cjs/rules/no-alias/index.js +1 -1
- package/dist/cjs/rules/no-module-level-eval/index.js +2 -2
- package/dist/cjs/rules/no-preconditioning/index.js +1 -1
- package/dist/cjs/rules/prefer-fg/index.js +1 -1
- package/dist/cjs/rules/static-feature-flags/index.js +1 -1
- package/dist/cjs/rules/use-recommended-utils/index.js +1 -1
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/rules/ensure-feature-flag-prefix/index.js +2 -1
- package/dist/es2019/rules/inline-usage/index.js +1 -1
- package/dist/es2019/rules/no-alias/index.js +1 -1
- package/dist/es2019/rules/no-module-level-eval/index.js +2 -2
- package/dist/es2019/rules/no-preconditioning/index.js +1 -1
- package/dist/es2019/rules/prefer-fg/index.js +1 -1
- package/dist/es2019/rules/static-feature-flags/index.js +1 -1
- package/dist/es2019/rules/use-recommended-utils/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/rules/ensure-feature-flag-prefix/index.js +2 -1
- package/dist/esm/rules/inline-usage/index.js +1 -1
- package/dist/esm/rules/no-alias/index.js +1 -1
- package/dist/esm/rules/no-module-level-eval/index.js +2 -2
- package/dist/esm/rules/no-preconditioning/index.js +1 -1
- package/dist/esm/rules/prefer-fg/index.js +1 -1
- package/dist/esm/rules/static-feature-flags/index.js +1 -1
- package/dist/esm/rules/use-recommended-utils/index.js +1 -1
- package/package.json +1 -1
- package/src/index.tsx +1 -4
- package/src/rules/ensure-feature-flag-prefix/index.tsx +2 -1
- package/src/rules/inline-usage/index.tsx +1 -1
- package/src/rules/no-alias/index.tsx +1 -1
- package/src/rules/no-module-level-eval/index.tsx +2 -2
- package/src/rules/no-preconditioning/index.tsx +1 -1
- package/src/rules/prefer-fg/index.tsx +1 -1
- package/src/rules/static-feature-flags/index.tsx +1 -1
- package/src/rules/use-recommended-utils/index.tsx +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# @atlaskit/eslint-plugin-platform
|
|
2
2
|
|
|
3
|
+
## 0.7.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#116772](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/116772)
|
|
8
|
+
[`46167815c5528`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/46167815c5528) -
|
|
9
|
+
Update feature flag prefix rule to be warn and recommend prefix only for deprecated launch darkly
|
|
10
|
+
flags.
|
|
11
|
+
|
|
12
|
+
## 0.7.1
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [#116062](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/116062)
|
|
17
|
+
[`c965047f03c61`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c965047f03c61) -
|
|
18
|
+
Update rule docs link.
|
|
19
|
+
|
|
3
20
|
## 0.7.0
|
|
4
21
|
|
|
5
22
|
### Minor Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -55,7 +55,7 @@ var configs = exports.configs = {
|
|
|
55
55
|
plugins: ['@atlaskit/platform'],
|
|
56
56
|
rules: {
|
|
57
57
|
'@atlaskit/platform/ensure-feature-flag-registration': 'error',
|
|
58
|
-
'@atlaskit/platform/ensure-feature-flag-prefix': ['
|
|
58
|
+
'@atlaskit/platform/ensure-feature-flag-prefix': ['warn', {
|
|
59
59
|
allowedPrefixes: ['platform.']
|
|
60
60
|
}],
|
|
61
61
|
'@atlaskit/platform/ensure-test-runner-arguments': 'error',
|
|
@@ -10,11 +10,12 @@ var _registrationUtils = require("../util/registration-utils");
|
|
|
10
10
|
var rule = {
|
|
11
11
|
meta: {
|
|
12
12
|
docs: {
|
|
13
|
+
url: 'http://go/pff-eslint',
|
|
13
14
|
recommended: false
|
|
14
15
|
},
|
|
15
16
|
type: 'problem',
|
|
16
17
|
messages: {
|
|
17
|
-
featureFlagIncorrectPrefix: "
|
|
18
|
+
featureFlagIncorrectPrefix: "Is this a LaunchDarkly feature flag? It needs a prefix so Confluence picks it up: [{{ allowedPrefixes }}]. Statsig feature gates don't need a prefix."
|
|
18
19
|
},
|
|
19
20
|
hasSuggestions: true,
|
|
20
21
|
schema: [{
|
|
@@ -72,7 +72,7 @@ var rule = {
|
|
|
72
72
|
type: 'problem',
|
|
73
73
|
docs: {
|
|
74
74
|
description: 'Ensure feature flags/gates and experiments are inlined so that they can be statically analyzable.',
|
|
75
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
75
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/inline-usage/README.md'
|
|
76
76
|
},
|
|
77
77
|
messages: {
|
|
78
78
|
inlineUsage: 'Do not export or wrap feature flags/gates and experiments usages. Inline calls at the callsite to ensure it is statically analyzable.'
|
|
@@ -12,7 +12,7 @@ var IMPORT_SOURCES = new Set([].concat((0, _toConsumableArray2.default)(_constan
|
|
|
12
12
|
var rule = {
|
|
13
13
|
meta: {
|
|
14
14
|
docs: {
|
|
15
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
15
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-alias/README.md',
|
|
16
16
|
description: 'Disallow aliasing of feature flag utils to ensure feature flag usage is statically analyzable'
|
|
17
17
|
},
|
|
18
18
|
messages: {
|
|
@@ -23,10 +23,10 @@ var rule = {
|
|
|
23
23
|
meta: {
|
|
24
24
|
docs: {
|
|
25
25
|
description: 'Disallow feature flag usage at module level',
|
|
26
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
26
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-module-level-eval/README.md'
|
|
27
27
|
},
|
|
28
28
|
messages: {
|
|
29
|
-
noModuleLevelEval: 'Do not evaluate feature flags
|
|
29
|
+
noModuleLevelEval: 'Do not evaluate feature flags in the module level, it will always resolve to false when server side rendered or when flags are loaded async.'
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
create: function create(context) {
|
|
@@ -52,7 +52,7 @@ var rule = {
|
|
|
52
52
|
meta: {
|
|
53
53
|
docs: {
|
|
54
54
|
description: 'Inform on how to use gates and experiments in logical expressions',
|
|
55
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
55
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-preconditioning/README.md'
|
|
56
56
|
},
|
|
57
57
|
messages: {
|
|
58
58
|
useConfig: 'Do not precondition gates or experiments with another gate. Configure this in Statsig instead to reduce unnecessary code and simplify cleanup.',
|
|
@@ -53,7 +53,7 @@ var validateUsage = function validateUsage(node, utilName, context, changeMap) {
|
|
|
53
53
|
var rule = {
|
|
54
54
|
meta: {
|
|
55
55
|
docs: {
|
|
56
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
56
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/prefer-fg/README.md',
|
|
57
57
|
description: 'Keep usages of boolean feature flags consistent'
|
|
58
58
|
},
|
|
59
59
|
fixable: 'code',
|
|
@@ -17,7 +17,7 @@ var rule = {
|
|
|
17
17
|
meta: {
|
|
18
18
|
type: 'problem',
|
|
19
19
|
docs: {
|
|
20
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
20
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/static-feature-flags/README.md',
|
|
21
21
|
description: 'Ensure feature flags or gates are static string literals'
|
|
22
22
|
},
|
|
23
23
|
fixable: 'code',
|
|
@@ -9,7 +9,7 @@ var BANNED_IMPORTS_SET = new Set(['@atlaskit/feature-gate-js-client']);
|
|
|
9
9
|
var rule = {
|
|
10
10
|
meta: {
|
|
11
11
|
docs: {
|
|
12
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
12
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/use-recommended-utils/README.md',
|
|
13
13
|
description: 'Prefer using the feature flag abstraction over direct statsig library.'
|
|
14
14
|
},
|
|
15
15
|
messages: {
|
package/dist/es2019/index.js
CHANGED
|
@@ -47,7 +47,7 @@ export const configs = {
|
|
|
47
47
|
plugins: ['@atlaskit/platform'],
|
|
48
48
|
rules: {
|
|
49
49
|
'@atlaskit/platform/ensure-feature-flag-registration': 'error',
|
|
50
|
-
'@atlaskit/platform/ensure-feature-flag-prefix': ['
|
|
50
|
+
'@atlaskit/platform/ensure-feature-flag-prefix': ['warn', {
|
|
51
51
|
allowedPrefixes: ['platform.']
|
|
52
52
|
}],
|
|
53
53
|
'@atlaskit/platform/ensure-test-runner-arguments': 'error',
|
|
@@ -4,11 +4,12 @@ import { getMetadataForFilename, getterIdentifierToFlagTypeMap } from '../util/r
|
|
|
4
4
|
const rule = {
|
|
5
5
|
meta: {
|
|
6
6
|
docs: {
|
|
7
|
+
url: 'http://go/pff-eslint',
|
|
7
8
|
recommended: false
|
|
8
9
|
},
|
|
9
10
|
type: 'problem',
|
|
10
11
|
messages: {
|
|
11
|
-
featureFlagIncorrectPrefix: `
|
|
12
|
+
featureFlagIncorrectPrefix: `Is this a LaunchDarkly feature flag? It needs a prefix so Confluence picks it up: [{{ allowedPrefixes }}]. Statsig feature gates don't need a prefix.`
|
|
12
13
|
},
|
|
13
14
|
hasSuggestions: true,
|
|
14
15
|
schema: [{
|
|
@@ -66,7 +66,7 @@ const rule = {
|
|
|
66
66
|
type: 'problem',
|
|
67
67
|
docs: {
|
|
68
68
|
description: 'Ensure feature flags/gates and experiments are inlined so that they can be statically analyzable.',
|
|
69
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
69
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/inline-usage/README.md'
|
|
70
70
|
},
|
|
71
71
|
messages: {
|
|
72
72
|
inlineUsage: 'Do not export or wrap feature flags/gates and experiments usages. Inline calls at the callsite to ensure it is statically analyzable.'
|
|
@@ -4,7 +4,7 @@ const IMPORT_SOURCES = new Set([...FEATURE_API_IMPORT_SOURCES, ...FEATURE_MOCKS_
|
|
|
4
4
|
const rule = {
|
|
5
5
|
meta: {
|
|
6
6
|
docs: {
|
|
7
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
7
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-alias/README.md',
|
|
8
8
|
description: 'Disallow aliasing of feature flag utils to ensure feature flag usage is statically analyzable'
|
|
9
9
|
},
|
|
10
10
|
messages: {
|
|
@@ -17,10 +17,10 @@ const rule = {
|
|
|
17
17
|
meta: {
|
|
18
18
|
docs: {
|
|
19
19
|
description: 'Disallow feature flag usage at module level',
|
|
20
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
20
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-module-level-eval/README.md'
|
|
21
21
|
},
|
|
22
22
|
messages: {
|
|
23
|
-
noModuleLevelEval: 'Do not evaluate feature flags
|
|
23
|
+
noModuleLevelEval: 'Do not evaluate feature flags in the module level, it will always resolve to false when server side rendered or when flags are loaded async.'
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
create(context) {
|
|
@@ -47,7 +47,7 @@ const rule = {
|
|
|
47
47
|
meta: {
|
|
48
48
|
docs: {
|
|
49
49
|
description: 'Inform on how to use gates and experiments in logical expressions',
|
|
50
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
50
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-preconditioning/README.md'
|
|
51
51
|
},
|
|
52
52
|
messages: {
|
|
53
53
|
useConfig: 'Do not precondition gates or experiments with another gate. Configure this in Statsig instead to reduce unnecessary code and simplify cleanup.',
|
|
@@ -32,7 +32,7 @@ const validateUsage = (node, utilName, context, changeMap) => {
|
|
|
32
32
|
const rule = {
|
|
33
33
|
meta: {
|
|
34
34
|
docs: {
|
|
35
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
35
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/prefer-fg/README.md',
|
|
36
36
|
description: 'Keep usages of boolean feature flags consistent'
|
|
37
37
|
},
|
|
38
38
|
fixable: 'code',
|
|
@@ -9,7 +9,7 @@ const rule = {
|
|
|
9
9
|
meta: {
|
|
10
10
|
type: 'problem',
|
|
11
11
|
docs: {
|
|
12
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
12
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/static-feature-flags/README.md',
|
|
13
13
|
description: 'Ensure feature flags or gates are static string literals'
|
|
14
14
|
},
|
|
15
15
|
fixable: 'code',
|
|
@@ -3,7 +3,7 @@ const BANNED_IMPORTS_SET = new Set(['@atlaskit/feature-gate-js-client']);
|
|
|
3
3
|
const rule = {
|
|
4
4
|
meta: {
|
|
5
5
|
docs: {
|
|
6
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
6
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/use-recommended-utils/README.md',
|
|
7
7
|
description: 'Prefer using the feature flag abstraction over direct statsig library.'
|
|
8
8
|
},
|
|
9
9
|
messages: {
|
package/dist/esm/index.js
CHANGED
|
@@ -50,7 +50,7 @@ export var configs = {
|
|
|
50
50
|
plugins: ['@atlaskit/platform'],
|
|
51
51
|
rules: {
|
|
52
52
|
'@atlaskit/platform/ensure-feature-flag-registration': 'error',
|
|
53
|
-
'@atlaskit/platform/ensure-feature-flag-prefix': ['
|
|
53
|
+
'@atlaskit/platform/ensure-feature-flag-prefix': ['warn', {
|
|
54
54
|
allowedPrefixes: ['platform.']
|
|
55
55
|
}],
|
|
56
56
|
'@atlaskit/platform/ensure-test-runner-arguments': 'error',
|
|
@@ -4,11 +4,12 @@ import { getMetadataForFilename, getterIdentifierToFlagTypeMap } from '../util/r
|
|
|
4
4
|
var rule = {
|
|
5
5
|
meta: {
|
|
6
6
|
docs: {
|
|
7
|
+
url: 'http://go/pff-eslint',
|
|
7
8
|
recommended: false
|
|
8
9
|
},
|
|
9
10
|
type: 'problem',
|
|
10
11
|
messages: {
|
|
11
|
-
featureFlagIncorrectPrefix: "
|
|
12
|
+
featureFlagIncorrectPrefix: "Is this a LaunchDarkly feature flag? It needs a prefix so Confluence picks it up: [{{ allowedPrefixes }}]. Statsig feature gates don't need a prefix."
|
|
12
13
|
},
|
|
13
14
|
hasSuggestions: true,
|
|
14
15
|
schema: [{
|
|
@@ -65,7 +65,7 @@ var rule = {
|
|
|
65
65
|
type: 'problem',
|
|
66
66
|
docs: {
|
|
67
67
|
description: 'Ensure feature flags/gates and experiments are inlined so that they can be statically analyzable.',
|
|
68
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
68
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/inline-usage/README.md'
|
|
69
69
|
},
|
|
70
70
|
messages: {
|
|
71
71
|
inlineUsage: 'Do not export or wrap feature flags/gates and experiments usages. Inline calls at the callsite to ensure it is statically analyzable.'
|
|
@@ -5,7 +5,7 @@ var IMPORT_SOURCES = new Set([].concat(_toConsumableArray(FEATURE_API_IMPORT_SOU
|
|
|
5
5
|
var rule = {
|
|
6
6
|
meta: {
|
|
7
7
|
docs: {
|
|
8
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
8
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-alias/README.md',
|
|
9
9
|
description: 'Disallow aliasing of feature flag utils to ensure feature flag usage is statically analyzable'
|
|
10
10
|
},
|
|
11
11
|
messages: {
|
|
@@ -17,10 +17,10 @@ var rule = {
|
|
|
17
17
|
meta: {
|
|
18
18
|
docs: {
|
|
19
19
|
description: 'Disallow feature flag usage at module level',
|
|
20
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
20
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-module-level-eval/README.md'
|
|
21
21
|
},
|
|
22
22
|
messages: {
|
|
23
|
-
noModuleLevelEval: 'Do not evaluate feature flags
|
|
23
|
+
noModuleLevelEval: 'Do not evaluate feature flags in the module level, it will always resolve to false when server side rendered or when flags are loaded async.'
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
create: function create(context) {
|
|
@@ -46,7 +46,7 @@ var rule = {
|
|
|
46
46
|
meta: {
|
|
47
47
|
docs: {
|
|
48
48
|
description: 'Inform on how to use gates and experiments in logical expressions',
|
|
49
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
49
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-preconditioning/README.md'
|
|
50
50
|
},
|
|
51
51
|
messages: {
|
|
52
52
|
useConfig: 'Do not precondition gates or experiments with another gate. Configure this in Statsig instead to reduce unnecessary code and simplify cleanup.',
|
|
@@ -46,7 +46,7 @@ var validateUsage = function validateUsage(node, utilName, context, changeMap) {
|
|
|
46
46
|
var rule = {
|
|
47
47
|
meta: {
|
|
48
48
|
docs: {
|
|
49
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
49
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/prefer-fg/README.md',
|
|
50
50
|
description: 'Keep usages of boolean feature flags consistent'
|
|
51
51
|
},
|
|
52
52
|
fixable: 'code',
|
|
@@ -10,7 +10,7 @@ var rule = {
|
|
|
10
10
|
meta: {
|
|
11
11
|
type: 'problem',
|
|
12
12
|
docs: {
|
|
13
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
13
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/static-feature-flags/README.md',
|
|
14
14
|
description: 'Ensure feature flags or gates are static string literals'
|
|
15
15
|
},
|
|
16
16
|
fixable: 'code',
|
|
@@ -3,7 +3,7 @@ var BANNED_IMPORTS_SET = new Set(['@atlaskit/feature-gate-js-client']);
|
|
|
3
3
|
var rule = {
|
|
4
4
|
meta: {
|
|
5
5
|
docs: {
|
|
6
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
6
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/use-recommended-utils/README.md',
|
|
7
7
|
description: 'Prefer using the feature flag abstraction over direct statsig library.'
|
|
8
8
|
},
|
|
9
9
|
messages: {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/eslint-plugin-platform",
|
|
3
3
|
"description": "The essential plugin for use with Atlassian frontend platform tools",
|
|
4
|
-
"version": "0.7.
|
|
4
|
+
"version": "0.7.2",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"atlassian": {
|
|
7
7
|
"team": "UIP - Platform Integration Trust (PITa)",
|
package/src/index.tsx
CHANGED
|
@@ -49,10 +49,7 @@ export const configs = {
|
|
|
49
49
|
plugins: ['@atlaskit/platform'],
|
|
50
50
|
rules: {
|
|
51
51
|
'@atlaskit/platform/ensure-feature-flag-registration': 'error',
|
|
52
|
-
'@atlaskit/platform/ensure-feature-flag-prefix': [
|
|
53
|
-
'error',
|
|
54
|
-
{ allowedPrefixes: ['platform.'] },
|
|
55
|
-
],
|
|
52
|
+
'@atlaskit/platform/ensure-feature-flag-prefix': ['warn', { allowedPrefixes: ['platform.'] }],
|
|
56
53
|
'@atlaskit/platform/ensure-test-runner-arguments': 'error',
|
|
57
54
|
'@atlaskit/platform/ensure-test-runner-nested-count': 'warn',
|
|
58
55
|
'@atlaskit/platform/no-invalid-feature-flag-usage': 'error',
|
|
@@ -9,11 +9,12 @@ type RuleOptions = {
|
|
|
9
9
|
const rule: Rule.RuleModule = {
|
|
10
10
|
meta: {
|
|
11
11
|
docs: {
|
|
12
|
+
url: 'http://go/pff-eslint',
|
|
12
13
|
recommended: false,
|
|
13
14
|
},
|
|
14
15
|
type: 'problem',
|
|
15
16
|
messages: {
|
|
16
|
-
featureFlagIncorrectPrefix: `
|
|
17
|
+
featureFlagIncorrectPrefix: `Is this a LaunchDarkly feature flag? It needs a prefix so Confluence picks it up: [{{ allowedPrefixes }}]. Statsig feature gates don't need a prefix.`,
|
|
17
18
|
},
|
|
18
19
|
hasSuggestions: true,
|
|
19
20
|
schema: [
|
|
@@ -107,7 +107,7 @@ const rule: Rule.RuleModule = {
|
|
|
107
107
|
docs: {
|
|
108
108
|
description:
|
|
109
109
|
'Ensure feature flags/gates and experiments are inlined so that they can be statically analyzable.',
|
|
110
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
110
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/inline-usage/README.md',
|
|
111
111
|
},
|
|
112
112
|
messages: {
|
|
113
113
|
inlineUsage:
|
|
@@ -15,7 +15,7 @@ const IMPORT_SOURCES = new Set([
|
|
|
15
15
|
const rule: Rule.RuleModule = {
|
|
16
16
|
meta: {
|
|
17
17
|
docs: {
|
|
18
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
18
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-alias/README.md',
|
|
19
19
|
description:
|
|
20
20
|
'Disallow aliasing of feature flag utils to ensure feature flag usage is statically analyzable',
|
|
21
21
|
},
|
|
@@ -23,11 +23,11 @@ const rule: Rule.RuleModule = {
|
|
|
23
23
|
meta: {
|
|
24
24
|
docs: {
|
|
25
25
|
description: 'Disallow feature flag usage at module level',
|
|
26
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
26
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-module-level-eval/README.md',
|
|
27
27
|
},
|
|
28
28
|
messages: {
|
|
29
29
|
noModuleLevelEval:
|
|
30
|
-
'Do not evaluate feature flags
|
|
30
|
+
'Do not evaluate feature flags in the module level, it will always resolve to false when server side rendered or when flags are loaded async.',
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
create(context) {
|
|
@@ -64,7 +64,7 @@ const rule: Rule.RuleModule = {
|
|
|
64
64
|
meta: {
|
|
65
65
|
docs: {
|
|
66
66
|
description: 'Inform on how to use gates and experiments in logical expressions',
|
|
67
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
67
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/no-preconditioning/README.md',
|
|
68
68
|
},
|
|
69
69
|
messages: {
|
|
70
70
|
useConfig:
|
|
@@ -48,7 +48,7 @@ const validateUsage = (
|
|
|
48
48
|
const rule: Rule.RuleModule = {
|
|
49
49
|
meta: {
|
|
50
50
|
docs: {
|
|
51
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
51
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/prefer-fg/README.md',
|
|
52
52
|
description: 'Keep usages of boolean feature flags consistent',
|
|
53
53
|
},
|
|
54
54
|
fixable: 'code',
|
|
@@ -45,7 +45,7 @@ const rule: Rule.RuleModule = {
|
|
|
45
45
|
meta: {
|
|
46
46
|
type: 'problem',
|
|
47
47
|
docs: {
|
|
48
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
48
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/static-feature-flags/README.md',
|
|
49
49
|
description: 'Ensure feature flags or gates are static string literals',
|
|
50
50
|
},
|
|
51
51
|
fixable: 'code',
|
|
@@ -6,7 +6,7 @@ const BANNED_IMPORTS_SET = new Set(['@atlaskit/feature-gate-js-client']);
|
|
|
6
6
|
const rule: Rule.RuleModule = {
|
|
7
7
|
meta: {
|
|
8
8
|
docs: {
|
|
9
|
-
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/
|
|
9
|
+
url: 'https://stash.atlassian.com/projects/ATLASSIAN/repos/atlassian-frontend-monorepo/browse/platform/packages/platform/eslint-plugin/src/rules/use-recommended-utils/README.md',
|
|
10
10
|
description: 'Prefer using the feature flag abstraction over direct statsig library.',
|
|
11
11
|
},
|
|
12
12
|
messages: {
|