Last active
July 17, 2020 14:25
-
-
Save ascorbic/005477cf6f1368a6ccb83105d85d310a 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