-
Notifications
You must be signed in to change notification settings - Fork 0
/
prsAction.js
37 lines (37 loc) · 1.03 KB
/
prsAction.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { tryParse } from 'be-enhanced/cpu.js';
const reActionStatement = [
{
regExp: new RegExp(String.raw `^triggeredBy(?<dependencies>.*)`),
defaultVals: {}
}
];
export function prsAction(self) {
//be careful about making this asynchronous due to args getting out of sync
let { Action, instructions } = self;
if (instructions === undefined)
instructions = [];
const args = [];
const instruction = {
args,
isAction: true
};
instructions.push(instruction);
const act0 = Action[0];
const test = tryParse(act0, reActionStatement);
if (test === null)
throw 'PE'; //Parse Error
const { dependencies } = test;
const splitDependencies = dependencies.split(',').map(x => x.trim());
for (const dependency of splitDependencies) {
const type = dependency[0];
const prop = dependency.substring(1);
const arg = {
type,
prop
};
args.push(arg);
}
return {
instructions
};
}