38 lines
591 B
TypeScript
38 lines
591 B
TypeScript
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
|
|
}
|