Last active
July 19, 2020 19:26
-
-
Save dsngo/346a37f95b74cd762f264e92c7c87478 to your computer and use it in GitHub Desktop.
Generated by XState Viz: https://xstate.js.org/viz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Available variables: | |
// - Machine | |
// - interpret | |
// - assign | |
// - send | |
// - sendParent | |
// - spawn | |
// - raise | |
// - actions | |
// - XState (all XState exports) | |
const developMachine = Machine({ | |
"id": "develop", | |
"key": "develop", | |
"context": {}, | |
"type": "compound", | |
"initial": "initializing", | |
"history": false, | |
"states": { | |
"initializing": { | |
"id": "build.initializing", | |
"key": "initializing", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.initialize": [ | |
{ | |
"target": ["#build.initializingData"], | |
"actions": [ | |
{ "type": "assignStoreAndWorkerPool" }, | |
{ "type": "spawnMutationListener" } | |
], | |
"event": "done.invoke.initialize", | |
"source": "#build.initializing", | |
"internal": false, | |
"eventType": "done.invoke.initialize" | |
} | |
], | |
"ADD_NODE_MUTATION": [ | |
{ | |
"event": "ADD_NODE_MUTATION", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"WEBHOOK_RECEIVED": [ | |
{ | |
"event": "WEBHOOK_RECEIVED", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "WEBHOOK_RECEIVED" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"target": ["#build.initializingData"], | |
"actions": [ | |
{ "type": "assignStoreAndWorkerPool" }, | |
{ "type": "spawnMutationListener" } | |
], | |
"event": "done.invoke.initialize", | |
"source": "#build.initializing", | |
"internal": false, | |
"eventType": "done.invoke.initialize" | |
}, | |
{ | |
"event": "ADD_NODE_MUTATION", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
}, | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
}, | |
{ | |
"event": "WEBHOOK_RECEIVED", | |
"actions": [], | |
"source": "#build.initializing", | |
"internal": true, | |
"eventType": "WEBHOOK_RECEIVED" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "initialize", | |
"src": "initialize", | |
"onDone": { | |
"target": "initializingData", | |
"actions": ["assignStoreAndWorkerPool", "spawnMutationListener"] | |
}, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 1, | |
"invoke": [ | |
{ | |
"src": "initialize", | |
"onDone": { | |
"target": "initializingData", | |
"actions": ["assignStoreAndWorkerPool", "spawnMutationListener"] | |
}, | |
"type": "xstate.invoke", | |
"id": "initialize" | |
} | |
] | |
}, | |
"initializingData": { | |
"id": "build.initializingData", | |
"key": "initializingData", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.initializeData": [ | |
{ | |
"actions": [ | |
{ "type": "assignServiceResult" }, | |
{ "type": "clearWebhookBody" }, | |
{ "type": "finishParentSpan" } | |
], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.initializeData", | |
"source": "#build.initializingData", | |
"internal": false, | |
"eventType": "done.invoke.initializeData" | |
} | |
], | |
"ADD_NODE_MUTATION": [ | |
{ | |
"actions": [{ "type": "markNodesDirty" }, { "type": "callApi" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.initializingData", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.initializingData", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"actions": [ | |
{ "type": "assignServiceResult" }, | |
{ "type": "clearWebhookBody" }, | |
{ "type": "finishParentSpan" } | |
], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.initializeData", | |
"source": "#build.initializingData", | |
"internal": false, | |
"eventType": "done.invoke.initializeData" | |
}, | |
{ | |
"actions": [{ "type": "markNodesDirty" }, { "type": "callApi" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.initializingData", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
}, | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.initializingData", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "initializeData", | |
"src": "initializeData", | |
"onDone": { | |
"actions": [ | |
"assignServiceResult", | |
"clearWebhookBody", | |
"finishParentSpan" | |
], | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 2, | |
"invoke": [ | |
{ | |
"src": "initializeData", | |
"onDone": { | |
"actions": [ | |
"assignServiceResult", | |
"clearWebhookBody", | |
"finishParentSpan" | |
], | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke", | |
"id": "initializeData" | |
} | |
] | |
}, | |
"runningQueries": { | |
"id": "build.runningQueries", | |
"key": "runningQueries", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.run-queries": [ | |
{ | |
"target": ["#build.startingDevServers"], | |
"actions": [{ "type": "setQueryRunningFinished" }], | |
"cond": { "type": "xstate.guard", "name": "cond" }, | |
"event": "done.invoke.run-queries", | |
"source": "#build.runningQueries", | |
"internal": false, | |
"eventType": "done.invoke.run-queries" | |
}, | |
{ | |
"target": ["#build.waiting"], | |
"event": "done.invoke.run-queries", | |
"actions": [], | |
"source": "#build.runningQueries", | |
"internal": false, | |
"eventType": "done.invoke.run-queries" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"actions": [ | |
{ | |
"to": "run-queries", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "QUERY_FILE_CHANGED" } | |
} | |
], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build.runningQueries", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"target": ["#build.startingDevServers"], | |
"actions": [{ "type": "setQueryRunningFinished" }], | |
"cond": { "type": "xstate.guard", "name": "cond" }, | |
"event": "done.invoke.run-queries", | |
"source": "#build.runningQueries", | |
"internal": false, | |
"eventType": "done.invoke.run-queries" | |
}, | |
{ | |
"target": ["#build.waiting"], | |
"event": "done.invoke.run-queries", | |
"actions": [], | |
"source": "#build.runningQueries", | |
"internal": false, | |
"eventType": "done.invoke.run-queries" | |
}, | |
{ | |
"actions": [ | |
{ | |
"to": "run-queries", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "QUERY_FILE_CHANGED" } | |
} | |
], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build.runningQueries", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "run-queries", | |
"src": "runQueries", | |
"onDone": [ | |
{ | |
"target": "startingDevServers", | |
"actions": "setQueryRunningFinished" | |
}, | |
{ "target": "waiting" } | |
], | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 3, | |
"invoke": [ | |
{ | |
"id": "run-queries", | |
"src": "runQueries", | |
"onDone": [ | |
{ | |
"target": "startingDevServers", | |
"actions": "setQueryRunningFinished" | |
}, | |
{ "target": "waiting" } | |
], | |
"type": "xstate.invoke" | |
} | |
] | |
}, | |
"startingDevServers": { | |
"id": "build.startingDevServers", | |
"key": "startingDevServers", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.startWebpackServer": [ | |
{ | |
"target": ["#build.waiting"], | |
"actions": [{ "type": "assignServers" }], | |
"event": "done.invoke.startWebpackServer", | |
"source": "#build.startingDevServers", | |
"internal": false, | |
"eventType": "done.invoke.startWebpackServer" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"target": ["#build.waiting"], | |
"actions": [{ "type": "assignServers" }], | |
"event": "done.invoke.startWebpackServer", | |
"source": "#build.startingDevServers", | |
"internal": false, | |
"eventType": "done.invoke.startWebpackServer" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "startWebpackServer", | |
"src": "startWebpackServer", | |
"onDone": { "target": "waiting", "actions": "assignServers" }, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 4, | |
"invoke": [ | |
{ | |
"src": "startWebpackServer", | |
"onDone": { "target": "waiting", "actions": "assignServers" }, | |
"type": "xstate.invoke", | |
"id": "startWebpackServer" | |
} | |
] | |
}, | |
"waiting": { | |
"id": "build.waiting", | |
"key": "waiting", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.waiting": [ | |
{ | |
"actions": [{ "type": "assignServiceResult" }], | |
"target": ["#build.recreatingPages"], | |
"event": "done.invoke.waiting", | |
"source": "#build.waiting", | |
"internal": false, | |
"eventType": "done.invoke.waiting" | |
} | |
], | |
"ADD_NODE_MUTATION": [ | |
{ | |
"actions": [ | |
{ | |
"to": "waiting", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "ADD_NODE_MUTATION" } | |
} | |
], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.waiting", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"actions": [ | |
{ | |
"to": "waiting", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "QUERY_FILE_CHANGED" } | |
} | |
], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build.waiting", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"EXTRACT_QUERIES_NOW": [ | |
{ | |
"target": ["#build.runningQueries"], | |
"event": "EXTRACT_QUERIES_NOW", | |
"actions": [], | |
"source": "#build.waiting", | |
"internal": false, | |
"eventType": "EXTRACT_QUERIES_NOW" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"actions": [{ "type": "assignServiceResult" }], | |
"target": ["#build.recreatingPages"], | |
"event": "done.invoke.waiting", | |
"source": "#build.waiting", | |
"internal": false, | |
"eventType": "done.invoke.waiting" | |
}, | |
{ | |
"actions": [ | |
{ | |
"to": "waiting", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "ADD_NODE_MUTATION" } | |
} | |
], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.waiting", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
}, | |
{ | |
"actions": [ | |
{ | |
"to": "waiting", | |
"type": "xstate.send", | |
"id": "", | |
"event": { "type": "QUERY_FILE_CHANGED" } | |
} | |
], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build.waiting", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
}, | |
{ | |
"target": ["#build.runningQueries"], | |
"event": "EXTRACT_QUERIES_NOW", | |
"actions": [], | |
"source": "#build.waiting", | |
"internal": false, | |
"eventType": "EXTRACT_QUERIES_NOW" | |
} | |
], | |
"entry": [{ "type": "saveDbState" }], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "waiting", | |
"src": "waitForMutations", | |
"onDone": { | |
"actions": "assignServiceResult", | |
"target": "recreatingPages" | |
}, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 5, | |
"invoke": [ | |
{ | |
"id": "waiting", | |
"src": "waitForMutations", | |
"onDone": { | |
"actions": "assignServiceResult", | |
"target": "recreatingPages" | |
}, | |
"type": "xstate.invoke" | |
} | |
] | |
}, | |
"reloadingData": { | |
"id": "build.reloadingData", | |
"key": "reloadingData", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.reloadData": [ | |
{ | |
"actions": [ | |
{ "type": "assignServiceResult" }, | |
{ "type": "clearWebhookBody" }, | |
{ "type": "finishParentSpan" } | |
], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.reloadData", | |
"source": "#build.reloadingData", | |
"internal": false, | |
"eventType": "done.invoke.reloadData" | |
} | |
], | |
"ADD_NODE_MUTATION": [ | |
{ | |
"actions": [{ "type": "markNodesDirty" }, { "type": "callApi" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.reloadingData", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.reloadingData", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"actions": [ | |
{ "type": "assignServiceResult" }, | |
{ "type": "clearWebhookBody" }, | |
{ "type": "finishParentSpan" } | |
], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.reloadData", | |
"source": "#build.reloadingData", | |
"internal": false, | |
"eventType": "done.invoke.reloadData" | |
}, | |
{ | |
"actions": [{ "type": "markNodesDirty" }, { "type": "callApi" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build.reloadingData", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
}, | |
{ | |
"event": "QUERY_FILE_CHANGED", | |
"actions": [], | |
"source": "#build.reloadingData", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "reloadData", | |
"src": "reloadData", | |
"onDone": { | |
"actions": [ | |
"assignServiceResult", | |
"clearWebhookBody", | |
"finishParentSpan" | |
], | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 6, | |
"invoke": [ | |
{ | |
"src": "reloadData", | |
"onDone": { | |
"actions": [ | |
"assignServiceResult", | |
"clearWebhookBody", | |
"finishParentSpan" | |
], | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke", | |
"id": "reloadData" | |
} | |
] | |
}, | |
"recreatingPages": { | |
"id": "build.recreatingPages", | |
"key": "recreatingPages", | |
"type": "atomic", | |
"history": false, | |
"states": {}, | |
"on": { | |
"done.invoke.recreatePages": [ | |
{ | |
"actions": [{ "type": "assignServiceResult" }], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.recreatePages", | |
"source": "#build.recreatingPages", | |
"internal": false, | |
"eventType": "done.invoke.recreatePages" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"actions": [{ "type": "assignServiceResult" }], | |
"target": ["#build.runningQueries"], | |
"event": "done.invoke.recreatePages", | |
"source": "#build.recreatingPages", | |
"internal": false, | |
"eventType": "done.invoke.recreatePages" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [ | |
{ | |
"id": "recreatePages", | |
"src": "recreatePages", | |
"onDone": { | |
"actions": "assignServiceResult", | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke" | |
} | |
], | |
"order": 7, | |
"invoke": [ | |
{ | |
"src": "recreatePages", | |
"onDone": { | |
"actions": "assignServiceResult", | |
"target": "runningQueries" | |
}, | |
"type": "xstate.invoke", | |
"id": "recreatePages" | |
} | |
] | |
} | |
}, | |
"on": { | |
"ADD_NODE_MUTATION": [ | |
{ | |
"actions": [{ "type": "addNodeMutation" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
} | |
], | |
"QUERY_FILE_CHANGED": [ | |
{ | |
"actions": [{ "type": "markQueryFilesDirty" }], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
} | |
], | |
"WEBHOOK_RECEIVED": [ | |
{ | |
"target": ["#build.reloadingData"], | |
"actions": [{ "type": "assignWebhookBody" }], | |
"event": "WEBHOOK_RECEIVED", | |
"source": "#build", | |
"internal": false, | |
"eventType": "WEBHOOK_RECEIVED" | |
} | |
] | |
}, | |
"transitions": [ | |
{ | |
"actions": [{ "type": "addNodeMutation" }], | |
"event": "ADD_NODE_MUTATION", | |
"source": "#build", | |
"internal": true, | |
"eventType": "ADD_NODE_MUTATION" | |
}, | |
{ | |
"actions": [{ "type": "markQueryFilesDirty" }], | |
"event": "QUERY_FILE_CHANGED", | |
"source": "#build", | |
"internal": true, | |
"eventType": "QUERY_FILE_CHANGED" | |
}, | |
{ | |
"target": ["#build.reloadingData"], | |
"actions": [{ "type": "assignWebhookBody" }], | |
"event": "WEBHOOK_RECEIVED", | |
"source": "#build", | |
"internal": false, | |
"eventType": "WEBHOOK_RECEIVED" | |
} | |
], | |
"entry": [], | |
"exit": [], | |
"activities": [], | |
"order": -1, | |
"invoke": [] | |
} | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment