UNPKG

@swizzyweb/swerve

Version:

swizzy-swerve is a bootstrapper for swizzy web services. This package will bootstrap and run independent swizzy web services.

238 lines (141 loc) 3.5 kB
# swerve swizzy-swerve is a bootstrapper for swizzy web services. This package will bootstrap and run independent swizzy web services. ## Getting started ### Install with npm ``` npm install --registry=https://npm.swizzyweb.com @swizzyweb/swerve ``` ### Sample Apps #### Frontend template https://github.com/swizzyweb/swizzy-frontend-template-web-service #### Backend template https://github.com/swizzyweb/swizzy-backend-template-web-service ### Supported commands swerve: synonym for swerven swerven: swerve with nodejs swerveb: swerve with bun swerved: swerve with deno swervenc: swerve with node clustered swervebc: swerve with bun clustered swervedc: swervice with deno clustered. ## Usage: npm run server <packageName> <port (optional> ## Or install globally: npm install -g . ## Uninstall npm uninstall -g @swizzyweb/swerve ## Command swerve <packageNames> Swerve can run multiple packages on the same port using a single command. Just provide multiple package names space separated. ## run ``` swerve <service> [seriveB serivceC...] [options] ``` ## run clustered ``` swervec <service> [--numThreads (optional)] [options] ``` Note: cluster commands end with c #### options ``` --port : (default 3005) port value to run service --appDataRoot - (default project root) path to where appdata root directory will be placed, stores logs and service data --numThreads - (default num cpu's reported by os) (cluster only) number of threads to use in the cluster --<argKey> - Any additional key passed will be a serviceArg passed to all services ``` #### ie: ``` swerve some-service-name --port=3000 ``` ## ### No args This will run the project in the current working directory ``` swerve ``` ### Current dir with port This will run the server in the current directory with the specified port ``` swerve . ``` #### with port: ``` swerve . --port 3000 ``` ### Run single file ``` swerve /path/to/file.js ``` #### ie: ``` swerve /absolute/path/to/app.js ``` or ``` swerve $(pwd)/dist/app.js ``` ## Additional runtimes We support bun deno and nodejs for runtimes ``` swerven # node swerveb # bun swerved # deno (Requires deno to be installed globally) swerven # default (points to swerven as of 0.2.4) ``` ## cluster to run a cluster of your swerve services, you can use the cluster scripts. These are implemented in nodejs, bun, and deno. ### default cluster ``` swervec ``` ### nodejs cluster ``` swerven ``` ### bun cluster ``` swervebc ``` ### deno ``` servedc ``` ### What's passed to getWebservice in web service package ``` { packageName: string, port: number, app: expressApp, logger: ILogger, appDataPath: "/appDataRoot/appdata/serviceName/" ...serviceArgs // Anything else (from service config or swerve command args) } ``` ## Service Configurations ``` { "port": 3000, // Global port "services": { "friendlyLocalServiceName": { "port": 3001, // Optional port override "servicePath": ".", // if building package in current directory "myArg1": "AnythingYouWant" // Custom serviceArg }, "friendlyImportServiceName": { "port": 3002, "servicePath": "@swizzyweb/dyn-serve-web-service" // running installed web service package }, "friendlyNeighborServiceName": { "port": 3002, "servicePath": "../my-friendly-neighbor-web-service", "authCode": "SomeAuthCode" } } } ``` ### Running ``` swerve --config my-web-service-config.json ```