---@diagnostic disable: missing-fields return { { "mxsdev/nvim-dap-vscode-js", dependencies = { "mfussenegger/nvim-dap", { "microsoft/vscode-js-debug", version = "1.x", build = "npm ci --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out", }, }, config = function() local dap = require("dap") require("dap-vscode-js").setup({ debugger_path = vim.fn.stdpath("data") .. "/lazy/vscode-js-debug", adapters = { "pwa-node", "pwa-chrome", "pwa-msedge", "node-terminal", "pwa-extensionHost" }, }) for _, language in ipairs({ "typescript", "javascript", "typescriptreact", "javascriptreact", "vue" }) do dap.configurations[language] = { { type = "pwa-node", request = "launch", name = "Launch file", program = "${file}", cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "attach", name = "Attach", processId = require("dap.utils").pick_process, cwd = "${workspaceFolder}", }, { type = "pwa-node", request = "launch", name = "Debug Jest Tests", runtimeExecutable = "node", runtimeArgs = { "./node_modules/jest/bin/jest.js", "--runInBand", }, rootPath = "${workspaceFolder}", cwd = "${workspaceFolder}", console = "integratedTerminal", internalConsoleOptions = "neverOpen", }, { type = "pwa-chrome", request = "launch", name = "Launch Chrome", url = "http://localhost:3000", webRoot = "${workspaceFolder}", }, { type = "pwa-chrome", request = "launch", name = "Launch Chrome (Vue dev server)", url = function() local port = vim.fn.input("Port (default 8080): ", "8080") return "http://localhost:" .. port end, webRoot = "${workspaceFolder}", sourceMaps = true, }, } end end, }, }