import "package:flutter/material.dart"; import "package:process_run/which.dart"; import "package:prod/models/rand.dart"; class Editor { final String id; final String name; final String command; final String commandTemplate; // final Icon icon; const Editor(this.name, this.command, this.commandTemplate, this.id); factory Editor.create(String name, String command, String commandTemplate) { return Editor(name, command, commandTemplate, getRandomString(5)); } bool validateCommand() { final String? fullPath = whichSync(command); if (fullPath == null) { return false; } else { return true; } } Map toJson() { return { "name": name, "command": command, "commandTemplate": commandTemplate, "id": id, }; } factory Editor.fromJson(Map data) { if (!data.containsKey("name") || !data.containsKey("command") || !data.containsKey("commandTemplate") || !data.containsKey("id")) { print("Found invalid editor config when parsing: $data"); return Editor("null", "null", "null", "null"); } return Editor( data["name"] as String, data["command"] as String, data["commandTemplate"] as String, data["id"] as String, ); } }