Skip to content

Commit 74da9e9

Browse files
lint: Add timelineTrigger Syntax Checks (quisquous#2700)
1 parent 3bb4747 commit 74da9e9

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

.eslintrc.cjs

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ module.exports = {
2424
'files': ['**/raidboss/data/**/*'],
2525
'rules': {
2626
'rulesdir/cactbot-output-strings': 'error',
27+
'rulesdir/cactbot-timeline-triggers': 'error',
2728
},
2829
},
2930
{

eslint/cactbot-timeline-triggers.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
module.exports = {
2+
meta: {
3+
type: 'problem',
4+
docs: {
5+
description: 'prevent syntax issues within timelineTriggers',
6+
category: 'Syntax Issues',
7+
recommended: true,
8+
url: 'https://github.com/quisquous/cactbot/blob/main/docs/RaidbossGuide.md#trigger-elements',
9+
},
10+
schema: [],
11+
},
12+
13+
create: (context) => {
14+
return {
15+
'Property[key.name=\'timelineTriggers\'] > ArrayExpression > ObjectExpression > Property[key.name=\'regex\'] > :not(Identifier, Literal)': (node) => context.report({
16+
node,
17+
message: 'timelineTrigger regex has to be a regular expression literal, such as /^Ability Name$/',
18+
}),
19+
'Property[key.name=\'timelineTriggers\'] > ArrayExpression > ObjectExpression > Property[key.name=/(?:netRegex.{0,2}|regex.{2})/]': (node) => context.report({
20+
node,
21+
message: 'timelineTriggers only support "regex"',
22+
}),
23+
};
24+
},
25+
};

0 commit comments

Comments
 (0)