Make dev mode one command and add VS Code config

npm run dev now runs scripts/dev-env.ts first, which creates .dev/site.env with
a known dev password and a random session secret, so a fresh clone serves a
working admin without anyone hand-building a hash. Adds .vscode launch
configurations and tasks for the dev server, one test file, and check-site, and
brings scripts/ under typecheck, which it had been missing.
This commit is contained in:
tanshu committed 2026-09-22 21:47:11 +05:30
1 parent a635c5a214
commit 1f41398370
8 files changed
+229 -11

No files matched your search

+58
View File
@@ -0,0 +1,58 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Dev server (debug)",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/src/server.ts",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"skipFiles": ["<node_internals>/**"],
"preLaunchTask": "dev: ensure .dev/site.env",
"env": {
"MENU_ROOT": "${workspaceFolder}/.dev",
"MENU_SITE_CONFIG": "${workspaceFolder}/config/hopsngrains.site.json",
"SECURE_COOKIES": "false",
"LOG_LEVEL": "info",
"PORT": "3000"
}
},
{
"name": "Dev server (watch, no debugger)",
"type": "node-terminal",
"request": "launch",
"command": "npm run dev",
"cwd": "${workspaceFolder}"
},
{
"name": "Debug the open test file",
"type": "node",
"request": "launch",
"program": "${file}",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"skipFiles": ["<node_internals>/**"],
"runtimeArgs": ["--test"],
"autoAttachChildProcesses": true
},
{
"name": "Check the running site",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/scripts/check-site.ts",
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"skipFiles": ["<node_internals>/**"],
"args": ["${input:siteUrl}"]
}
],
"inputs": [
{
"id": "siteUrl",
"type": "promptString",
"description": "Base URL to check",
"default": "http://127.0.0.1:3000"
}
]
}
+23
View File
@@ -0,0 +1,23 @@
{
"files.exclude": {
"**/.dev": true,
"**/.tmp": true,
"**/.npm-cache": true
},
"search.exclude": {
"**/.dev": true,
"**/.tmp": true,
"**/.npm-cache": true,
"**/node_modules": true
},
"files.watcherExclude": {
"**/.dev/**": true,
"**/.tmp/**": true,
"**/.npm-cache/**": true
},
"editor.tabSize": 2,
"editor.insertSpaces": true,
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}
+49
View File
@@ -0,0 +1,49 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "dev: ensure .dev/site.env",
"type": "npm",
"script": "dev:env",
"problemMatcher": []
},
{
"label": "dev: seed placeholder menus",
"type": "npm",
"script": "seed",
"problemMatcher": []
},
{
"label": "dev: watch server",
"type": "npm",
"script": "dev",
"problemMatcher": []
},
{
"label": "test",
"type": "npm",
"script": "test",
"group": { "kind": "test", "isDefault": true },
"problemMatcher": []
},
{
"label": "typecheck",
"type": "npm",
"script": "typecheck",
"group": { "kind": "build", "isDefault": true },
"problemMatcher": ["$tsc"]
},
{
"label": "verify the data directory",
"type": "npm",
"script": "verify",
"problemMatcher": []
},
{
"label": "repair missing derivatives",
"type": "npm",
"script": "repair",
"problemMatcher": []
}
]
}