You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
591 B
37 lines
591 B
import type { Effect } from "./assignment"
|
|
|
|
export default interface Script {
|
|
name: string
|
|
lines: ScriptLine[]
|
|
}
|
|
|
|
export interface ScriptLine {
|
|
if: ScriptLineIf
|
|
assign: ScriptLineAssign
|
|
set: ScriptLineSet
|
|
}
|
|
|
|
export interface ScriptLineIf {
|
|
condition: ScriptCondition
|
|
then: ScriptLine[]
|
|
else: ScriptLine[]
|
|
}
|
|
|
|
export interface ScriptCondition {
|
|
scope: string
|
|
key: string
|
|
op: string
|
|
value?: string
|
|
not?: boolean
|
|
}
|
|
|
|
export interface ScriptLineAssign {
|
|
match: string
|
|
effect: Effect
|
|
}
|
|
|
|
export interface ScriptLineSet {
|
|
scope: string
|
|
key: string
|
|
value: string
|
|
}
|