stitch-ui
Version:
43 lines (39 loc) • 1.04 kB
JavaScript
import { List, Record } from "immutable";
import JSONState from "./JSONState";
import Pipeline from "./Pipeline";
import PipelineStage from "./PipelineStage";
export default class NamedPipeline extends Record({
name: "",
output: "",
pipeline: List(),
skipRules: false,
canEvaluate: JSONState,
parameters: List(),
private: false,
dirty: false
}) {
static fromRaw(raw) {
const out = new NamedPipeline({
output: raw.output,
pipeline: new Pipeline({
output: raw.output,
stages: new List(raw.pipeline.map(s => new PipelineStage(s)))
}),
skipRules: !!raw.skipRules,
canEvaluate: JSONState.fromRaw(raw.canEvaluate, {}),
parameters: List(raw.parameters),
private: !!raw.private
});
return out;
}
toRaw() {
return {
output: this.output,
pipeline: this.pipeline.toRaw().pipeline,
skipRules: this.skipRules,
canEvaluate: this.canEvaluate.data,
parameters: this.parameters.toArray(),
private: this.private
};
}
}