@dusted/anqst
v0.1.3
Published
Opinionated backend generator for webapps.
Readme
AnQstGen
TypeScript implementation of the anqst CLI generator package.
Build locally
npm install
npm run buildRun from build output:
node dist/src/bin/anqst.js <command> [args]Or with npm link during development:
npm link
anqst <command> [args]In-project contract
AnQst-generated artifacts are consolidated under one project-root directory:
./AnQst
package.json stores a settings path string:
{
"AnQst": "./AnQst/<WidgetName>.settings.json"
}Settings file (./AnQst/<WidgetName>.settings.json) owns project-local AnQst configuration:
{
"layoutVersion": 2,
"widgetName": "<WidgetName>",
"spec": "./AnQst/<WidgetName>.AnQst.d.ts",
"generate": ["QWidget", "AngularService", "node_express_ws"],
"widgetCategory": "AnQst Widgets"
}CLI commands
anqst instill <WidgetName>- Initializes
./AnQst. - Creates:
./AnQst/<WidgetName>.AnQst.d.ts./AnQst/<WidgetName>.settings.json./AnQst/.gitignore./AnQst/README.md
- Updates
package.json:AnQststring path to settings file.- build hooks:
postinstall,prebuild,prestart(all runnpx anqst build).
- Updates
tsconfig.json(when present):compilerOptions.paths["anqst-generated/*"] = ["AnQst/generated/frontend/<WidgetName>_Angular/*"]
- Initializes
anqst test- Loads settings from
package.json.AnQst. - Verifies the configured spec.
- Loads settings from
anqst build [--designerplugin[=true|false]]- Loads settings from
package.json.AnQst. - Verifies spec and regenerates selected targets.
- Writes only under
./AnQst/generated. - Removes selected target roots before regeneration (no stale generated files).
- If
QWidgetis enabled andangular.jsonexists:- runs production Angular build
- embeds built web assets into generated Qt widget
webapp/.
- If
--designerpluginis enabled:- requires
ANQST_WEBBASE_DIR - emits plugin sources in
./AnQst/generated/backend/cpp/qt/<WidgetName>_widget/designerPlugin - runs CMake configure/build in plugin
build/subdir.
- requires
- Loads settings from
anqst generate <specFile>- Verifies explicit spec and emits selected outputs.
- Uses package settings targets when package
AnQstkey exists, else default targets.
anqst verify <specFile>- Verifies explicit spec only.
anqst clean <path> [-f|--force]- Without
--force: resolves settings under<path>and removes widget-scoped generated roots. - With
--force: removes<path>/AnQst/generated. - Prints grouped cleanup summary (
Deleted,Not found,Failed).
- Without
Generated structure
<project-root>/
AnQst/
<WidgetName>.AnQst.d.ts
<WidgetName>.settings.json
.gitignore
README.md
generated/
frontend/
<WidgetName>_Angular/
backend/
node/
express/
<WidgetName>_anQst/
cpp/
cmake/
CMakeLists.txt
qt/
<WidgetName>_widget/
CMakeLists.txt
<WidgetName>.qrc
<WidgetName>.cpp
include/
webapp/
designerPlugin/
CMakeLists.txt
<WidgetName>DesignerPlugin.cpp
designerplugin.qrc
plugin-icon.png
build/
<WidgetName>DesignerPlugin.(so|dylib|dll)
debug/
intermediate/Typical workflow
npx @dusted/anqst instill BurgerConstructor
# edit spec
code AnQst/BurgerConstructor.AnQst.d.ts
npx @dusted/anqst test
npx @dusted/anqst build