{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cargo",
			"command": "build",
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"label": "rust: cargo build"
		},
		{
			"type": "cargo",
			"command": "fmt",
			"label": "rust: cargo fmt"
		},
		{
			"type": "cargo",
			"command": "check",
			"label": "rust: cargo check"
		},
		{
			"label": "start dev",
			"dependsOn": [
				"run core",
				"start frontend"
			],
			"problemMatcher": []
		},
		{
			"type": "shell",
			"command": "yarn start",
			"label": "start frontend",
			"options": {
				"cwd": "${workspaceFolder}/frontend"
			},
			"presentation": {
				"group": "start"
			}
		},
		{
			"type": "cargo",
			"command": "run",
			"label": "run core",
			"options": {
				"cwd": "${workspaceFolder}/bin/core"
			},
			"presentation": {
				"group": "start"
			}
		},
		{
			"type": "cargo",
			"command": "run",
			"label": "run periphery",
			"options": {
				"cwd": "${workspaceFolder}/bin/periphery"
			}
		},
		{
			"type": "cargo",
			"command": "run",
			"label": "run tests",
			"options": {
				"cwd": "${workspaceFolder}/bin/tests"
			}
		},
		{
			"type": "cargo",
			"command": "publish",
			"args": ["--allow-dirty"],
			"label": "publish types",
			"options": {
				"cwd": "${workspaceFolder}/lib/types"
			}
		},
		{
			"type": "cargo",
			"command": "publish",
			"label": "publish rs client",
			"options": {
				"cwd": "${workspaceFolder}/lib/rs_client"
			}
		},
		{
			"type": "shell",
			"command": "node ./client/ts/generate_types.mjs",
			"label": "generate typescript types",
			"problemMatcher": []
		}
	]
}