@nexusts/cli 0.7.3 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/index.d.ts +1 -0
- package/dist/core/version.d.ts +1 -0
- package/dist/index.js +173 -131
- package/dist/index.js.map +6 -5
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/info.ts", "../src/core/args.ts", "../src/core/config.ts", "../src/core/fs.ts", "../src/core/logger.ts", "../src/core/loose-json.ts", "../src/core/prompts.ts", "../src/core/template.ts", "../src/commands/init.ts", "../src/templates/controller/adonis.ts", "../src/templates/controller/functional.ts", "../src/templates/controller/nest.ts", "../src/templates/crud/controller.ts", "../src/templates/crud/dto.ts", "../src/templates/crud/module.ts", "../src/templates/crud/test.ts", "../src/templates/middleware/middleware.ts", "../src/templates/migration/drizzle.ts", "../src/templates/migration/sql.ts", "../src/templates/model/drizzle.ts", "../src/templates/model/kysely.ts", "../src/templates/model/prisma.ts", "../src/templates/module/module.ts", "../src/templates/project/nx.config.ts", "../src/templates/project/drizzle.config.ts", "../src/templates/repository/repository.ts", "../src/templates/service/service.ts", "../src/templates/validator/validator.ts", "../src/templates/index.ts", "../src/commands/make-auth.ts", "../src/commands/make-controller.ts", "../src/commands/make-crud.ts", "../src/templates/model/drizzle-dialect.ts", "../src/commands/make-listener.ts", "../src/commands/make-middleware.ts", "../src/commands/make-migration.ts", "../src/commands/make-model.ts", "../src/commands/make-module.ts", "../src/commands/make-queue.ts", "../src/commands/make-schedule.ts", "../src/commands/make-service.ts", "../src/commands/make-session.ts", "../src/commands/make-validator.ts", "../src/commands/db-migrate.ts", "../src/commands/db-generate.ts", "../src/commands/db-seed.ts", "../src/commands/new.ts", "../src/commands/config.ts", "../src/commands/repl.ts", "../src/commands/route-list.ts", "../src/commands/index.ts", "../src/index.ts"],
|
|
3
|
+
"sources": ["../src/commands/info.ts", "../src/core/args.ts", "../src/core/config.ts", "../src/core/fs.ts", "../src/core/logger.ts", "../src/core/loose-json.ts", "../src/core/prompts.ts", "../src/core/template.ts", "../src/core/version.ts", "../src/commands/init.ts", "../src/templates/controller/adonis.ts", "../src/templates/controller/functional.ts", "../src/templates/controller/nest.ts", "../src/templates/crud/controller.ts", "../src/templates/crud/dto.ts", "../src/templates/crud/module.ts", "../src/templates/crud/test.ts", "../src/templates/middleware/middleware.ts", "../src/templates/migration/drizzle.ts", "../src/templates/migration/sql.ts", "../src/templates/model/drizzle.ts", "../src/templates/model/kysely.ts", "../src/templates/model/prisma.ts", "../src/templates/module/module.ts", "../src/templates/project/nx.config.ts", "../src/templates/project/drizzle.config.ts", "../src/templates/repository/repository.ts", "../src/templates/service/service.ts", "../src/templates/validator/validator.ts", "../src/templates/index.ts", "../src/commands/make-auth.ts", "../src/commands/make-controller.ts", "../src/commands/make-crud.ts", "../src/templates/model/drizzle-dialect.ts", "../src/commands/make-listener.ts", "../src/commands/make-middleware.ts", "../src/commands/make-migration.ts", "../src/commands/make-model.ts", "../src/commands/make-module.ts", "../src/commands/make-queue.ts", "../src/commands/make-schedule.ts", "../src/commands/make-service.ts", "../src/commands/make-session.ts", "../src/commands/make-validator.ts", "../src/commands/db-migrate.ts", "../src/commands/db-generate.ts", "../src/commands/db-seed.ts", "../src/commands/new.ts", "../src/commands/config.ts", "../src/commands/repl.ts", "../src/commands/route-list.ts", "../src/commands/index.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * `nx info` — print the resolved project configuration.\n *\n * Useful for debugging the config layer: shows which `nx.config.ts`\n * file was loaded, the resolved config (with env overrides), and the\n * current environment values that affect the CLI.\n */\n\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { colors, logger } from \"../core/index.js\";\n\nexport const infoCommand: Command = {\n\tname: \"info\",\n\taliases: [\"i\"],\n\tsummary: \"Show project configuration\",\n\tdescription: \"Prints the resolved nx.config.ts plus relevant env vars.\",\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tlogger.heading(\"Nexus CLI — Project Info\");\n\n\t\tlogger.info(colors.bold(\"Resolved configuration\"));\n\t\tlogger.blank();\n\t\tlogger.table([\n\t\t\t[\"routing\", String(ctx.config.routing)],\n\t\t\t[\"view\", String(ctx.config.view)],\n\t\t\t[\"orm\", String(ctx.config.orm)],\n\t\t\t[\"dialect\", String(ctx.config.dialect ?? \"(none)\")],\n\t\t\t[\"database.driver\", String(ctx.config.database.driver)],\n\t\t\t[\"database.url\", String(ctx.config.database.url)],\n\t\t\t[\"inertia.frontend\", String(ctx.config.inertia.frontend)],\n\t\t\t[\"inertia.ssr\", String(ctx.config.inertia.ssr)],\n\t\t\t[\"inertia.version\", String(ctx.config.inertia.version)],\n\t\t]);\n\n\t\tlogger.blank();\n\t\tlogger.info(colors.bold(\"Paths\"));\n\t\tlogger.blank();\n\t\tfor (const [k, v] of Object.entries(ctx.config.paths)) {\n\t\t\tlogger.table([[k, v]]);\n\t\t}\n\n\t\tlogger.blank();\n\t\tlogger.info(colors.bold(\"Environment\"));\n\t\tlogger.blank();\n\t\tconst envKeys = [\n\t\t\t\"NODE_ENV\",\n\t\t\t\"PORT\",\n\t\t\t\"NEXUS_DEBUG\",\n\t\t\t\"NO_COLOR\",\n\t\t\t\"FORCE_COLOR\",\n\t\t\t\"NX_ROUTING\",\n\t\t\t\"NX_VIEW\",\n\t\t\t\"NX_ORM\",\n\t\t\t\"NX_DATABASE_DRIVER\",\n\t\t\t\"NX_DATABASE_URL\",\n\t\t\t\"NX_INERTIA_FRONTEND\",\n\t\t\t\"NX_INERTIA_SSR\",\n\t\t];\n\t\tfor (const k of envKeys) {\n\t\t\tconst v = process.env[k];\n\t\t\tlogger.table([[k, v === undefined ? colors.dim(\"(unset)\") : v]]);\n\t\t}\n\n\t\tlogger.blank();\n\t\tlogger.info(colors.bold(\"Working directory\"));\n\t\tlogger.blank();\n\t\tlogger.info(` ${resolve(ctx.cwd)}`);\n\t\tlogger.blank();\n\n\t\treturn 0;\n\t},\n};\n\nexport default infoCommand;\n",
|
|
6
6
|
"/**\n * Minimal argv parser for the `nx` CLI.\n *\n * Supports:\n * - positional args\n * - short flags (-v, -p 3000)\n * - long flags (--verbose, --port=3000, --port 3000)\n * - boolean toggles (--no-color / --color)\n * - `--` end-of-options marker\n *\n * Usage:\n * const { command, positional, flags } = parseArgs(process.argv.slice(2));\n */\n\nexport interface ParsedArgs {\n\t/** Subcommand name (first positional arg, e.g. `make:controller`). */\n\tcommand: string | undefined;\n\t/** Remaining positional args after the command. */\n\tpositional: string[];\n\t/** Flag map: long → string | boolean | string[]. */\n\tflags: Record<string, string | boolean | string[]>;\n}\n\nconst LONG_RE = /^--([^=]+)(?:=(.*))?$/;\nconst SHORT_RE = /^-([A-Za-z])$/;\n\nexport function parseArgs(argv: string[]): ParsedArgs {\n\tconst positional: string[] = [];\n\tconst flags: Record<string, string | boolean | string[]> = {};\n\tlet endOfOptions = false;\n\n\tlet i = 0;\n\twhile (i < argv.length) {\n\t\tconst arg = argv[i]!;\n\n\t\tif (arg === \"--\") {\n\t\t\tendOfOptions = true;\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (endOfOptions || !arg.startsWith(\"-\")) {\n\t\t\tpositional.push(arg);\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst longMatch = LONG_RE.exec(arg);\n\t\tif (longMatch) {\n\t\t\tconst [, name, inline] = longMatch;\n\t\t\tconst flagName = name!;\n\n\t\t\tif (inline !== undefined) {\n\t\t\t\tsetFlag(flags, flagName, inline);\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// `--flag` (boolean) or `--flag value` (consume next arg if no leading dash)\n\t\t\tconst next = argv[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"-\")) {\n\t\t\t\tsetFlag(flags, flagName, next);\n\t\t\t\ti += 2;\n\t\t\t} else {\n\t\t\t\tsetFlag(flags, flagName, true);\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst shortMatch = SHORT_RE.exec(arg);\n\t\tif (shortMatch) {\n\t\t\tconst flagName = shortMatch[1]!;\n\t\t\tconst next = argv[i + 1];\n\t\t\tif (next !== undefined && !next.startsWith(\"-\")) {\n\t\t\t\tsetFlag(flags, flagName, next);\n\t\t\t\ti += 2;\n\t\t\t} else {\n\t\t\t\tsetFlag(flags, flagName, true);\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Unknown flag shape — treat as positional.\n\t\tpositional.push(arg);\n\t\ti++;\n\t}\n\n\tconst command = positional.shift();\n\treturn { command, positional, flags };\n}\n\nfunction setFlag(\n\tflags: Record<string, string | boolean | string[]>,\n\tname: string,\n\tvalue: string | boolean,\n) {\n\t// `--no-foo` toggles `foo` to false.\n\tif (name.startsWith(\"no-\") && value === true) {\n\t\tconst key = name.slice(3);\n\t\tflags[key] = false;\n\t\treturn;\n\t}\n\n\tconst existing = flags[name];\n\tif (existing === undefined) {\n\t\tflags[name] = value;\n\t} else if (Array.isArray(existing)) {\n\t\texisting.push(typeof value === \"string\" ? value : String(value));\n\t} else {\n\t\tflags[name] = [\n\t\t\tString(existing),\n\t\t\ttypeof value === \"string\" ? value : String(value),\n\t\t];\n\t}\n}\n\n/** Coerce a flag value to string with a default. */\nexport function flagString(\n\tflags: Record<string, string | boolean | string[]>,\n\tname: string,\n\tfallback?: string,\n): string | undefined {\n\tconst v = flags[name];\n\tif (v === undefined || v === false) return fallback;\n\tif (typeof v === \"string\") return v;\n\tif (Array.isArray(v)) return v[0];\n\treturn String(v);\n}\n\n/** Coerce a flag value to boolean with a default. */\nexport function flagBool(\n\tflags: Record<string, string | boolean | string[]>,\n\tname: string,\n\tfallback = false,\n): boolean {\n\tconst v = flags[name];\n\tif (v === undefined) return fallback;\n\tif (typeof v === \"boolean\") return v;\n\treturn v !== \"false\" && v !== \"0\" && v !== \"no\";\n}\n\n/** Read a flag list (each occurrence appends). */\nexport function flagList(\n\tflags: Record<string, string | boolean | string[]>,\n\tname: string,\n): string[] {\n\tconst v = flags[name];\n\tif (v === undefined) return [];\n\tif (Array.isArray(v)) return v;\n\tif (typeof v === \"string\") return [v];\n\treturn [String(v)];\n}\n",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"/**\n * Lenient JSON parser.\n *\n * Standard `JSON.parse` rejects three things that show up regularly\n * in hand-edited `package.json` / `tsconfig.json` files:\n *\n * 1. Line comments: `// like this`\n * 2. Block comments: `/* like this *\\/`\n * 3. Trailing commas: `\\{ \"a\": 1, \\}` or `[ 1, 2, ]`\n *\n * `bun init` and several other generators emit files with at least\n * some of these (the user's `package.json` had `//` comments and\n * tripped the CLI with `Unrecognized token '/'`).\n *\n * Bun has full JSON5 support built in (`Bun.JSON5.parse()`,\n * `Bun.JSON5.stringify()` — see\n * https://bun.sh/docs/runtime/json5#bun-json5-parse), so this\n * module is a thin pass-through rather than a reimplementation.\n * The CLI runs in Bun >= 1.1.0 (see `engines` in package.json).\n *\n * Use this anywhere the CLI reads a user-owned `package.json` or\n * `tsconfig.json`. For framework-owned files (like the templates\n * we render), use plain `JSON.parse` — they're always strict.\n */\nexport function parseJsonLoose<T = Record<string, unknown>>(text: string): T {\n\treturn Bun.JSON5.parse(text) as T;\n}\n",
|
|
11
11
|
"/**\n * Lightweight interactive prompts.\n *\n * Avoids a runtime dependency on a TTY prompt library — we only need\n * confirm / select / text prompts, all of which can be done with\n * `readline` and a fallback to defaults when stdin is not a TTY.\n *\n * Every prompt can be skipped with `--no-interaction` or by passing the\n * answer via flags. This mirrors Adonis ACE and Symfony Console.\n */\n\nimport { createInterface } from \"node:readline\";\n\nexport interface PromptOptions {\n\t/** Default value when the user just presses enter. */\n\tdefault?: string;\n\t/** Choices for select. The first one is the default. */\n\tchoices?: string[];\n\t/** When false, stdin must be a TTY — otherwise the default is used. */\n\tinteractive?: boolean;\n}\n\nexport async function prompt(\n\tmessage: string,\n\toptions: PromptOptions = {},\n): Promise<string> {\n\tconst interactive = options.interactive ?? true;\n\tconst fallback = options.default ?? options.choices?.[0];\n\n\tif (!interactive || !process.stdin.isTTY) {\n\t\tif (fallback === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`No default provided for non-interactive prompt: ${message}`,\n\t\t\t);\n\t\t}\n\t\treturn fallback;\n\t}\n\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\treturn new Promise((resolve) => {\n\t\tconst suffix = options.choices ? ` [${options.choices.join(\"/\")}]` : \"\";\n\t\tconst def = options.default ?? options.choices?.[0] ?? \"\";\n\t\tconst promptStr = ` ${message}${suffix} (${def}): `;\n\t\trl.question(promptStr, (answer) => {\n\t\t\trl.close();\n\t\t\tconst trimmed = answer.trim();\n\t\t\tresolve(trimmed === \"\" ? def : trimmed);\n\t\t});\n\t});\n}\n\nexport async function confirm(\n\tmessage: string,\n\tdefaultYes = false,\n\toptions: PromptOptions = {},\n): Promise<boolean> {\n\tconst interactive = options.interactive ?? true;\n\tif (!interactive || !process.stdin.isTTY) return defaultYes;\n\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\treturn new Promise((resolve) => {\n\t\tconst suffix = defaultYes ? \" [Y/n]\" : \" [y/N]\";\n\t\trl.question(` ${message}${suffix}: `, (answer) => {\n\t\t\trl.close();\n\t\t\tconst v = answer.trim().toLowerCase();\n\t\t\tif (v === \"\") resolve(defaultYes);\n\t\t\telse resolve(v === \"y\" || v === \"yes\");\n\t\t});\n\t});\n}\n\nexport async function select(\n\tmessage: string,\n\tchoices: string[],\n\toptions: PromptOptions = {},\n): Promise<string> {\n\treturn prompt(message, { ...options, choices });\n}\n",
|
|
12
12
|
"/**\n * Minimal template engine for code generation.\n *\n * Supports:\n * - `{{ key }}` substitution\n * - `{{ key | filter }}` filters (upper/lower/pascal/camel/snake/kebab/plural/singular)\n * - `{{# flag }} ... {{/ flag }}` truthy sections (include if `flag` is truthy)\n * - `{{^ flag }} ... {{/ flag }}` falsy sections (include if `flag` is falsy)\n * - dotted lookup (`{{ user.name }}`)\n *\n * Multi-line templates are fine; placeholders can span any whitespace.\n */\n\nexport type Filter =\n\t| \"raw\"\n\t| \"upper\"\n\t| \"lower\"\n\t| \"pascal\"\n\t| \"camel\"\n\t| \"snake\"\n\t| \"kebab\"\n\t| \"plural\"\n\t| \"singular\";\n\nexport interface RenderObject {\n\t[key: string]: RenderValue;\n}\nexport type RenderValue =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| null\n\t| RenderObject\n\t| RenderValue[];\nexport type RenderContext = RenderObject;\n\nconst VAR_RE = /\\{\\{\\s*([\\w.]+)(?:\\s*\\|\\s*(\\w+))?\\s*\\}\\}/;\nconst SECTION_RE =\n\t/\\{\\{\\s*([#^])\\s*([\\w.]+)\\s*\\}\\}([\\s\\S]*?)\\{\\{\\s*\\/\\s*\\2\\s*\\}\\}/g;\n\nexport function render(template: string, context: RenderContext): string {\n\t// 1. Expand sections (truthy / falsy).\n\tlet out = template.replace(\n\t\tSECTION_RE,\n\t\t(_, kind: \"#\" | \"^\", key: string, body: string) => {\n\t\t\tconst v = lookup(context, key);\n\t\t\tconst truthy = isTruthy(v);\n\t\t\tif (kind === \"#\") return truthy ? body : \"\";\n\t\t\treturn truthy ? \"\" : body;\n\t\t},\n\t);\n\n\t// 2. Substitute variables (repeatedly, in case substitutions introduce\n\t// more variables — unusual but safe).\n\tlet prev: string;\n\tdo {\n\t\tprev = out;\n\t\tout = out.replace(VAR_RE, (_, key: string, filter?: string) => {\n\t\t\tconst v = lookup(context, key);\n\t\t\treturn applyFilter(\n\t\t\t\tv === undefined || v === null ? \"\" : String(v),\n\t\t\t\tfilter,\n\t\t\t);\n\t\t});\n\t} while (out !== prev);\n\n\treturn out;\n}\n\nfunction lookup(ctx: RenderContext, dotted: string): RenderValue {\n\tif (dotted in ctx) return ctx[dotted] as RenderValue;\n\tconst parts = dotted.split(\".\");\n\tlet cur: any = ctx;\n\tfor (const p of parts) {\n\t\tif (cur == null || typeof cur !== \"object\") return undefined;\n\t\tcur = cur[p];\n\t}\n\treturn cur === undefined || cur === null ? undefined : cur;\n}\n\nfunction isTruthy(v: RenderValue): boolean {\n\tif (v === undefined || v === null) return false;\n\tif (typeof v === \"string\") return v.length > 0 && v !== \"false\" && v !== \"0\";\n\tif (typeof v === \"number\") return v !== 0;\n\tif (typeof v === \"boolean\") return v;\n\t// Object → truthy if it has any keys.\n\tif (Array.isArray(v)) return v.length > 0;\n\treturn Object.keys(v).length > 0;\n}\n\nfunction applyFilter(value: string, filter: string | undefined): string {\n\tswitch (filter as Filter | undefined) {\n\t\tcase undefined:\n\t\tcase \"raw\":\n\t\t\treturn value;\n\t\tcase \"upper\":\n\t\t\treturn value.toUpperCase();\n\t\tcase \"lower\":\n\t\t\treturn value.toLowerCase();\n\t\tcase \"pascal\":\n\t\t\treturn toPascal(value);\n\t\tcase \"camel\":\n\t\t\treturn toCamel(value);\n\t\tcase \"snake\":\n\t\t\treturn toSnake(value);\n\t\tcase \"kebab\":\n\t\t\treturn toKebab(value);\n\t\tcase \"plural\":\n\t\t\treturn pluralize(value);\n\t\tcase \"singular\":\n\t\t\treturn singularize(value);\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown template filter: ${filter}`);\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Case-conversion helpers\n// ---------------------------------------------------------------------------\n\nfunction splitWords(s: string): string[] {\n\treturn s\n\t\t.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n\t\t.split(/[\\s_-]+/)\n\t\t.filter(Boolean);\n}\n\nexport function toPascal(s: string): string {\n\treturn splitWords(s)\n\t\t.map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())\n\t\t.join(\"\");\n}\n\nexport function toCamel(s: string): string {\n\tconst p = toPascal(s);\n\treturn p.charAt(0).toLowerCase() + p.slice(1);\n}\n\nexport function toSnake(s: string): string {\n\treturn splitWords(s)\n\t\t.map((w) => w.toLowerCase())\n\t\t.join(\"_\");\n}\n\nexport function toKebab(s: string): string {\n\treturn splitWords(s)\n\t\t.map((w) => w.toLowerCase())\n\t\t.join(\"-\");\n}\n\n// ---------------------------------------------------------------------------\n// Pluralization (English-only; matches Adonis/Rails conventions)\n// ---------------------------------------------------------------------------\n\nexport function pluralize(s: string): string {\n\tif (!s) return s;\n\tif (/(s|x|z|ch|sh)$/i.test(s)) return `${s}es`;\n\tif (/[^aeiou]y$/i.test(s)) return `${s.slice(0, -1)}ies`;\n\tif (/y$/i.test(s)) return `${s}s`;\n\treturn `${s}s`;\n}\n\nexport function singularize(s: string): string {\n\tif (!s) return s;\n\tif (/(ses|xes|zes|ches|shes)$/i.test(s)) return s.slice(0, -2);\n\tif (/ies$/i.test(s)) return `${s.slice(0, -3)}y`;\n\tif (/s$/i.test(s) && s.length > 1) return s.slice(0, -1);\n\treturn s;\n}\n",
|
|
13
|
-
"/**\n * `nx init [dir]` — scaffold NexusTS into the current (or target) directory.\n *\n * Unlike `nx new <name>` — which requires a fresh, empty directory —\n * `nx init` is non-destructive: it skips files that already exist,\n * preserves the user's existing `package.json` (only adding the\n * `nexusjs` dependency if missing), and merges its `tsconfig.json`\n * additions into the user's existing config.\n *\n * The matching pattern from other ecosystems:\n * - `bun init` / `npm init` → init in the current directory\n * - `cargo init` → init in the current directory\n * - `nx new <name>` → create a fresh project in a new dir\n *\n * Typical use case: the user already ran `bun init` (or has an\n * existing app) and now wants to add NexusTS to it without losing\n * their existing setup.\n *\n * $ bun init\n * $ bun add nexusjs\n * $ nx init\n * $ bun run dev\n *\n * Flags:\n * --target <dir> Scaffold into <dir> instead of the cwd\n * --style <name> Routing style (nest|adonis|functional)\n\t* --view <name> View engine (rendu|edge|eta|inertia|none)\n * --orm <name> ORM driver (drizzle|prisma|kysely|none)\n * --db <name> Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\n * --frontend <name> Inertia frontend (react|vue|svelte|solid)\n * --no-ssr Disable Inertia SSR\n * --force Overwrite existing files\n * --no-interaction Disable interactive prompts\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { flagBool, logger, render, select } from \"../core/index.js\";\nimport { parseJsonLoose } from \"../core/index.js\";\nimport { templates } from \"../templates/index.js\";\n\ntype WriteMode = \"write\" | \"skip\" | \"merge-pkg\" | \"merge-tsconfig\";\n\ninterface PlanEntry {\n\tpath: string;\n\tmode: WriteMode;\n}\n\nexport const initCommand: Command = {\n\tname: \"init\",\n\taliases: [\"i\"],\n\tsummary: \"Initialize nx.config.ts + app scaffold in the current directory\",\n\tdescription:\n\t\t\"Non-destructive scaffold: adds nx.config.ts, app/*, and merges NexusTS into the existing package.json and tsconfig.json. Skips files that already exist (unless --force).\",\n\texamples: [\n\t\t\"nx init\",\n\t\t\"nx init ./my-existing-app\",\n\t\t\"nx init --style nest --view inertia --orm drizzle --db bun-sqlite\",\n\t\t\"nx init --force\",\n\t],\n\tflags: [\n\t\t{ name: \"target\", description: \"Target directory (default: cwd)\" },\n\t\t{\n\t\t\tname: \"style\",\n\t\t\tdescription: \"Routing style (nest|adonis|functional|mixed)\",\n\t\t},\n\t\t{ name: \"view\", description: \"View engine (rendu|edge|eta|inertia|none)\" },\n\t\t{ name: \"orm\", description: \"ORM driver (drizzle|prisma|kysely|none)\" },\n\t\t{\n\t\t\tname: \"db\",\n\t\t\tdescription:\n\t\t\t\t\"Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\",\n\t\t},\n\t\t{\n\t\t\tname: \"frontend\",\n\t\t\tdescription: \"Inertia frontend (react|vue|svelte|solid)\",\n\t\t},\n\t\t{ name: \"no-ssr\", description: \"Disable Inertia SSR\" },\n\t\t{ name: \"force\", description: \"Overwrite files that already exist\" },\n\t\t{ name: \"no-interaction\", description: \"Disable interactive prompts\" },\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst interactive = !flagBool(ctx.flags, \"no-interaction\", false);\n\t\tconst force = flagBool(ctx.flags, \"force\", false);\n\t\tconst target = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"target\"] as string | undefined) ?? \".\",\n\t\t);\n\n\t\tif (!existsSync(target)) {\n\t\t\tlogger.error(`Target directory does not exist: ${target}`);\n\t\t\tlogger.info(\n\t\t\t\t`Run \\`nx new <name>\\` to create a fresh project, or \\`mkdir -p ${target}\\` first.`,\n\t\t\t);\n\t\t\treturn 1;\n\t\t}\n\n\t\t// Interactive prompts (only if not provided via flags and interactive mode)\n\t\tconst routing =\n\t\t\t(ctx.flags[\"style\"] as string | undefined) ??\n\t\t\t(await select(\"Routing style\", [\"nest\", \"adonis\", \"functional\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"nest\",\n\t\t\t}));\n\t\tconst view =\n\t\t\t(ctx.flags[\"view\"] as string | undefined) ??\n\t\t\t(await select(\"View engine\", [\"rendu\", \"edge\", \"eta\", \"inertia\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"rendu\",\n\t\t\t}));\n\t\tconst orm =\n\t\t\t(ctx.flags[\"orm\"] as string | undefined) ??\n\t\t\t(await select(\"ORM driver\", [\"drizzle\", \"prisma\", \"kysely\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"drizzle\",\n\t\t\t}));\n\t\tconst db =\n\t\t\t(ctx.flags[\"db\"] as string | undefined) ??\n\t\t\t(await select(\n\t\t\t\t\"Database driver\",\n\t\t\t\t[\"bun-sqlite\", \"node-sqlite\", \"libsql\", \"postgres\", \"mysql\", \"none\"],\n\t\t\t\t{\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: \"bun-sqlite\",\n\t\t\t\t},\n\t\t\t));\n\t\tconst frontend =\n\t\t\t(ctx.flags[\"frontend\"] as string | undefined) ??\n\t\t\t(await select(\"Inertia frontend\", [\"react\", \"vue\", \"svelte\", \"solid\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"react\",\n\t\t\t}));\n\t\tconst ssr = !flagBool(ctx.flags, \"no-ssr\", false);\n\n\t\t// Build the plan: which files to write / skip / merge\n\t\tconst plan: PlanEntry[] = [\n\t\t\t{ path: \"nx.config.ts\", mode: \"write\" },\n\t\t\t{ path: \"package.json\", mode: \"merge-pkg\" },\n\t\t\t{ path: \"tsconfig.json\", mode: \"merge-tsconfig\" },\n\t\t\t{ path: \"public/.gitkeep\", mode: \"write\" },\n\t\t\t...view !== \"none\" ? [{ path: \"resources/views/welcome.html\", mode: \"write\" }] : [],\n\t\t\t{ path: \".env\", mode: \"skip\" },\n\t\t\t{ path: \".env.local\", mode: \"skip\" },\n\t\t\t{ path: \".gitignore\", mode: \"skip\" },\n\t\t\t{ path: \"app/main.ts\", mode: \"write\" },\n\t\t\t{ path: \"app/app.module.ts\", mode: \"write\" },\n\t\t\t{ path: \"app/controllers/home.controller.ts\", mode: \"write\" },\n\t\t\t{ path: \"README.md\", mode: \"write\" },\n\t\t];\n\n\t\tconst created: string[] = [];\n\t\tconst skipped: string[] = [];\n\t\tconst merged: string[] = [];\n\n\t\t// Ensure directories exist\n\t\tmkdirSync(resolve(target, \"app/controllers\"), { recursive: true });\n\t\tmkdirSync(resolve(target, \"public\"), { recursive: true });\n\t\tif (view !== \"none\") {\n\t\t\tmkdirSync(resolve(target, \"resources/views\"), { recursive: true });\n\t\t}\n\n\t\tfor (const entry of plan) {\n\t\t\tconst abs = resolve(target, entry.path);\n\t\t\tconst exists = existsSync(abs);\n\n\t\t\tif (entry.mode === \"merge-pkg\") {\n\t\t\t\t// Build deps based on context\n\t\t\t\tconst coreDeps: Record<string, string> = {\n\t\t\t\t\t\"@nexusts/core\": \"*\",\n\t\t\t\t\t\"reflect-metadata\": \"^0.2.2\",\n\t\t\t\t\thono: \"^4.6.0\",\n\t\t\t\t\tzod: \"^3.23.8\",\n\t\t\t\t};\n\t\t\t\tif (orm === \"drizzle\") {\n\t\t\t\t\tcoreDeps[\"@nexusts/drizzle\"] = \"*\";\n\t\t\t\t\tcoreDeps[\"drizzle-orm\"] = \"^0.45.0\";\n\t\t\t\t}\n\t\t\t\tif (view !== \"none\") {\n\t\t\t\t\tcoreDeps[\"@nexusts/static\"] = \"*\";\n\t\t\t\t}\n\n\t\t\t\tif (exists) {\n\t\t\t\t\tmergePackageJson(abs, coreDeps);\n\t\t\t\t\tmerged.push(entry.path);\n\t\t\t\t} else {\n\t\t\t\t\twriteFileSync(\n\t\t\t\t\t\tabs,\n\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: target.split(\"/\").pop() ?? \"nexus-app\",\n\t\t\t\t\t\t\t\tversion: \"0.1.0\",\n\t\t\t\t\t\t\t\ttype: \"module\",\n\t\t\t\t\t\t\t\tprivate: true,\n\t\t\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\t\t\tdev: \"bun --hot app/main.ts\",\n\t\t\t\t\t\t\t\t\tbuild: \"bun run build.ts\",\n\t\t\t\t\t\t\t\t\tstart: \"bun app/main.ts\",\n\t\t\t\t\t\t\t\t\ttest: \"vitest\",\n\t\t\t\t\t\t\t\t\tnx: \"nx\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdependencies: coreDeps,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcreated.push(entry.path);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.mode === \"merge-tsconfig\") {\n\t\t\t\t// Always merge: never clobber an existing tsconfig.json.\n\t\t\t\tif (exists) {\n\t\t\t\t\tmergeTsconfig(abs, {\n\t\t\t\t\t\texperimentalDecorators: true,\n\t\t\t\t\t\temitDecoratorMetadata: true,\n\t\t\t\t\t});\n\t\t\t\t\tmerged.push(entry.path);\n\t\t\t\t} else {\n\t\t\t\t\twriteFileSync(abs, defaultTsconfig());\n\t\t\t\t\tcreated.push(entry.path);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Plain write mode\n\t\t\tif (exists && !force) {\n\t\t\t\tskipped.push(entry.path);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst content = renderContent(entry.path, {\n\t\t\t\trouting,\n\t\t\t\tview,\n\t\t\t\tviewPaths: view === \"none\" ? \"\" : \"resources/views\",\n\t\t\t\torm,\n\t\t\t\tdbDriver: db,\n\t\t\t\tdbUrl: db === \"bun-sqlite\" || db === \"node-sqlite\" ? \"app.db\" : \"\",\n\t\t\t\tinertiaFrontend: frontend,\n\t\t\t\tinertiaSSR: ssr,\n\t\t\t\tinertiaVersion: \"1.0.0\",\n\t\t\t\ttargetName: target.split(\"/\").pop() ?? \"nexus-app\",\n\t\t\t});\n\t\t\twriteFileSync(abs, content);\n\t\t\tcreated.push(entry.path);\n\t\t}\n\n\t\t// Report\n\t\tlogger.success(`initialized NexusTS in ${target}`);\n\t\tlogger.blank();\n\t\tif (created.length) {\n\t\t\tlogger.heading(\"Created\");\n\t\t\tfor (const f of created) logger.info(` + ${f}`);\n\t\t}\n\t\tif (merged.length) {\n\t\t\tlogger.heading(\"Merged into existing files\");\n\t\t\tfor (const f of merged) logger.info(` ~ ${f}`);\n\t\t}\n\t\tif (skipped.length) {\n\t\t\tlogger.heading(\"Skipped (already exist; use --force to overwrite)\");\n\t\t\tfor (const f of skipped) logger.info(` - ${f}`);\n\t\t}\n\t\tlogger.blank();\n\t\tlogger.heading(\"Next steps\");\n\t\tlogger.info(` cd ${target === ctx.cwd ? \".\" : target}`);\n\t\tlogger.info(` bun install`);\n\t\tlogger.info(` bun run dev`);\n\t\tlogger.blank();\n\n\t\treturn 0;\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\ninterface RenderCtx {\n\trouting: string;\n\tview: string;\n\tviewPaths: string;\n\torm: string;\n\tdbDriver: string;\n\tdbUrl: string;\n\tinertiaFrontend: string;\n\tinertiaSSR: boolean;\n\tinertiaVersion: string;\n\ttargetName: string;\n\t// Index signature so RenderCtx is assignable to RenderObject.\n\t[key: string]: string | number | boolean | undefined | null;\n}\n\nfunction renderContent(path: string, ctx: RenderCtx): string {\n\tswitch (path) {\n\t\tcase \"nx.config.ts\":\n\t\t\treturn render(templates.project[\"nx.config.ts\"], ctx);\n\t\tcase \"public/.gitkeep\":\n\t\t\treturn \"\";\n\t\tcase \"resources/views/welcome.html\":\n\t\t\treturn `<h1>Welcome to ${ctx.targetName}</h1>\\n<p>This is a sample Rendu template.</p>\\n<p>Founded <?= year ?>.</p>\\n`;\n\t\tcase \".gitignore\":\n\t\t\treturn `# NexusTS\nnode_modules/\napp.db\n*.db\n.env.local\ndist/\n`;\n\t\tcase \".env\":\n\t\t\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Environment Variables (committed to git)\n#\n# Shared defaults for all environments. Override locally via\n# .env.local (gitignored) or by environment via .env.{NODE_ENV}\n# (e.g. .env.production, .env.development).\n#\n# Uncomment the database config for your driver:\n# ──────────────────────────────────────────────────────\n\n# ── App ──\nNODE_ENV=development\nPORT=3000\n\n# ── Session secret (REQUIRED) ──\n# Generate with: openssl rand -base64 32\nSESSION_SECRET=change-me-in-production\n\n# ── Database: SQLite (default, zero config) ──\nDATABASE_URL=app.db\n\n# ── Database: PostgreSQL ──\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n\n# ── Database: MySQL ──\n# DATABASE_URL=mysql://user:password@localhost:3306/myapp\n\n# ── Better Auth (if using nexusjs/auth) ──\n# BETTER_AUTH_SECRET=\n# BETTER_AUTH_URL=http://localhost:3000\n`;\n\t\tcase \".env.local\":\n\t\t\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Local Overrides (DO NOT COMMIT to git)\n#\n# This file is gitignored. Use it for secrets and local\n# configuration that should never be checked in.\n# ──────────────────────────────────────────────────────\n\n# Override any value from .env here:\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n# SESSION_SECRET=my-local-secret\n`;\n\t\tcase \"app/main.ts\": {\n\t\t\tconst hasView = ctx.view !== \"none\";\n\t\t\tconst staticMw = hasView\n\t\t\t\t? `import { StaticModule } from '@nexusts/static';\\n`\n\t\t\t\t\t+ `const staticMiddleware = StaticModule.mount({ root: './public', prefix: '/static' });\\n`\n\t\t\t\t: '';\n\t\t\tconst staticOpt = hasView ? '\\n middleware: [staticMiddleware],' : '';\n\t\t\treturn `import 'reflect-metadata';\nimport { Application } from '@nexusts/core';\n${staticMw}import { AppModule } from './app.module.js';\n\nconst app = new Application(AppModule, {\n logging: true,\n port: Number(process.env['PORT'] ?? 3000),${staticOpt}\n});\n\nawait app.listen();\nconsole.log('[nexus] Listening on http://localhost:' + (process.env['PORT'] ?? 3000));\n`;\n\t\t}\n\t\tcase \"app/app.module.ts\": {\n\t\t\tconst hasOrm = ctx.orm === \"drizzle\";\n\t\t\tconst ormImport = hasOrm\n\t\t\t\t? `import { DrizzleModule } from '@nexusts/drizzle';\\n`\n\t\t\t\t: '';\n\t\t\tconst forRootDialect = ctx.dbDriver === 'bun-sqlite' ? 'bun-sqlite' : 'sqlite';\n\t\t\tconst forRootFile = ctx.dbUrl || 'app.db';\n\t\t\tconst ormBlock = hasOrm\n\t\t\t\t? ' DrizzleModule.forRoot({\\n dialect: \\'' + forRootDialect + '\\',\\n connection: { filename: \\'' + forRootFile + '\\' },\\n logging: true,\\n })'\n\t\t\t\t: '';\n\t\t\treturn `${ormImport}import { Module } from '@nexusts/core';\nimport { HomeController } from './controllers/home.controller.js';\n\n@Module({\n imports: [${hasOrm ? `\\n${ormBlock},\\n` : ''} ],\n controllers: [HomeController],\n})\nexport class AppModule {}\n`;\n\t\t}\n\t\tcase \"app/controllers/home.controller.ts\": {\n\t\t\tconst hasView = ctx.view !== \"none\";\n\t\t\tconst body = hasView\n\t\t\t\t? `{\\n view: 'welcome.html',\\n data: { year: new Date().getFullYear() },\\n }`\n\t\t\t\t: `{ status: 200, body: { message: 'Hello from NexusTS!' } }`;\n\t\t\treturn `import { Controller, Get } from '@nexusts/core';\n\n@Controller('/')\nexport class HomeController {\n @Get('/')\n index() {\n return ${body};\n }\n}\n`;\n\t\t}\n\t\tcase \"README.md\":\n\t\t\treturn `# ${ctx.targetName}\n\nA Nexus project.\n\n## Run\n\n\\`\\`\\`bash\nbun install\nbun run dev\n\\`\\`\\`\n\n## Scaffolding\n\n\\`\\`\\`bash\nbunx nx make:crud Post\n\\`\\`\\`\n`;\n\t\tdefault:\n\t\t\tthrow new Error(`No render template for: ${path}`);\n\t}\n}\n\nfunction defaultTsconfig(): string {\n\treturn `{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"experimentalDecorators\": true,\n \"emitDecoratorMetadata\": true,\n \"strict\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"types\": [\"bun-types\"]\n },\n \"include\": [\"app/**/*.ts\", \"nx.config.ts\"]\n}\n`;\n}\n\n/**\n * Merge NexusTS fields into an existing package.json. Preserves all\n * existing fields; only adds what's missing.\n */\nfunction mergePackageJson(path: string, additions: Record<string, string>): void {\n\tconst raw = readFileSync(path, \"utf8\");\n\tconst pkg = parseJsonLoose<Record<string, unknown>>(raw);\n\tlet changed = false;\n\n\t// Ensure type: \"module\"\n\tif (!pkg[\"type\"]) {\n\t\tpkg[\"type\"] = \"module\";\n\t\tchanged = true;\n\t}\n\n\t// Ensure private: true\n\tif (!pkg[\"private\"]) {\n\t\tpkg[\"private\"] = true;\n\t\tchanged = true;\n\t}\n\n\t// Merge scripts (only add missing ones, never overwrite)\n\tconst SCRIPTS: Record<string, string> = {\n\t\tdev: \"bun --hot app/main.ts\",\n\t\tbuild: \"bun run build.ts\",\n\t\tstart: \"bun app/main.ts\",\n\t\ttest: \"vitest\",\n\t\tnx: \"nx\",\n\t};\n\tconst existingScripts = (pkg[\"scripts\"] as Record<string, string> | undefined) ?? {};\n\tfor (const [k, v] of Object.entries(SCRIPTS)) {\n\t\tif (!(k in existingScripts)) {\n\t\t\texistingScripts[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif (Object.keys(existingScripts).length > 0) {\n\t\tpkg[\"scripts\"] = existingScripts;\n\t}\n\n\t// Merge dependencies\n\tconst deps = (pkg[\"dependencies\"] as Record<string, string> | undefined) ?? {};\n\tfor (const [k, v] of Object.entries(additions)) {\n\t\tif (!(k in deps)) {\n\t\t\tdeps[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tpkg[\"dependencies\"] = deps;\n\n\tif (changed) {\n\t\twriteFileSync(path, JSON.stringify(pkg, null, 2) + \"\\n\");\n\t}\n}\n\n/**\n * Merge NexusTS compiler options into an existing tsconfig.json.\n * Preserves all existing fields; only adds what's missing.\n */\nfunction mergeTsconfig(\n\tpath: string,\n\tadditions: Record<string, boolean | string>,\n): void {\n\tconst raw = readFileSync(path, \"utf8\");\n\tconst cfg = parseJsonLoose<{\n\t\tcompilerOptions?: Record<string, unknown>;\n\t\tinclude?: string[];\n\t}>(raw);\n\tconst co = (cfg.compilerOptions ?? {}) as Record<string, unknown>;\n\tlet changed = false;\n\tfor (const [k, v] of Object.entries(additions)) {\n\t\tif (!(k in co)) {\n\t\t\tco[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\t// Also ensure src/**/*.ts and nx.config.ts are in `include`\n\tconst inc = (cfg.include ?? []) as string[];\n\tif (!inc.includes(\"app/**/*.ts\")) {\n\t\tinc.push(\"app/**/*.ts\");\n\t\tchanged = true;\n\t}\n\tif (!inc.includes(\"nx.config.ts\")) {\n\t\tinc.push(\"nx.config.ts\");\n\t\tchanged = true;\n\t}\n\tif (changed) {\n\t\tcfg.compilerOptions = co;\n\t\tcfg.include = inc;\n\t\twriteFileSync(path, JSON.stringify(cfg, null, 2) + \"\\n\");\n\t}\n}\n\nexport default initCommand;\n",
|
|
13
|
+
"/**\n * CLI version — read from the CLI's own package.json at import time.\n *\n * Uses `readFileSync` + `JSON.parse` because the CLI is bundled into a\n * single `dist/index.js` by Bun.build, and dynamic `import()` of\n * `package.json` would resolve relative to the bundle file at runtime\n * (which is correct here — the package.json always sits one level up\n * from `dist/`).\n */\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { resolve, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n// Resolve relative to this source file: ../package.json\n// In the bundled dist/index.js, __dirname = packages/cli/dist/\n// So ../package.json = packages/cli/package.json ✓\nconst PKG_JSON = resolve(__dirname, \"..\", \"package.json\");\n\nfunction loadVersion(): string {\n\ttry {\n\t\tif (!existsSync(PKG_JSON)) return \"0.0.0\";\n\t\tconst raw = readFileSync(PKG_JSON, \"utf-8\");\n\t\tconst pkg = JSON.parse(raw) as { version?: string };\n\t\treturn pkg.version ?? \"0.0.0\";\n\t} catch {\n\t\treturn \"0.0.0\";\n\t}\n}\n\nexport const VERSION: string = loadVersion();\n",
|
|
14
|
+
"/**\n * `nx init [dir]` — scaffold NexusTS into the current (or target) directory.\n *\n * Unlike `nx new <name>` — which requires a fresh, empty directory —\n * `nx init` is non-destructive: it skips files that already exist,\n * preserves the user's existing `package.json` (only adding the\n * `nexusjs` dependency if missing), and merges its `tsconfig.json`\n * additions into the user's existing config.\n *\n * The matching pattern from other ecosystems:\n * - `bun init` / `npm init` → init in the current directory\n * - `cargo init` → init in the current directory\n * - `nx new <name>` → create a fresh project in a new dir\n *\n * Typical use case: the user already ran `bun init` (or has an\n * existing app) and now wants to add NexusTS to it without losing\n * their existing setup.\n *\n * $ bun init\n * $ bun add nexusjs\n * $ nx init\n * $ bun run dev\n *\n * Flags:\n * --target <dir> Scaffold into <dir> instead of the cwd\n * --style <name> Routing style (nest|adonis|functional)\n\t* --view <name> View engine (rendu|edge|eta|inertia|none)\n * --orm <name> ORM driver (drizzle|prisma|kysely|none)\n * --db <name> Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\n * --frontend <name> Inertia frontend (react|vue|svelte|solid)\n * --no-ssr Disable Inertia SSR\n * --force Overwrite existing files\n * --no-interaction Disable interactive prompts\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { flagBool, logger, render, select } from \"../core/index.js\";\nimport { parseJsonLoose } from \"../core/index.js\";\nimport { templates } from \"../templates/index.js\";\n\ntype WriteMode = \"write\" | \"skip\" | \"merge-pkg\" | \"merge-tsconfig\";\n\ninterface PlanEntry {\n\tpath: string;\n\tmode: WriteMode;\n}\n\nexport const initCommand: Command = {\n\tname: \"init\",\n\taliases: [\"i\"],\n\tsummary: \"Initialize nx.config.ts + app scaffold in the current directory\",\n\tdescription:\n\t\t\"Non-destructive scaffold: adds nx.config.ts, app/*, and merges NexusTS into the existing package.json and tsconfig.json. Skips files that already exist (unless --force).\",\n\texamples: [\n\t\t\"nx init\",\n\t\t\"nx init ./my-existing-app\",\n\t\t\"nx init --style nest --view inertia --orm drizzle --db bun-sqlite\",\n\t\t\"nx init --force\",\n\t],\n\tflags: [\n\t\t{ name: \"target\", description: \"Target directory (default: cwd)\" },\n\t\t{\n\t\t\tname: \"style\",\n\t\t\tdescription: \"Routing style (nest|adonis|functional|mixed)\",\n\t\t},\n\t\t{ name: \"view\", description: \"View engine (rendu|edge|eta|inertia|none)\" },\n\t\t{ name: \"orm\", description: \"ORM driver (drizzle|prisma|kysely|none)\" },\n\t\t{\n\t\t\tname: \"db\",\n\t\t\tdescription:\n\t\t\t\t\"Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\",\n\t\t},\n\t\t{\n\t\t\tname: \"frontend\",\n\t\t\tdescription: \"Inertia frontend (react|vue|svelte|solid)\",\n\t\t},\n\t\t{ name: \"no-ssr\", description: \"Disable Inertia SSR\" },\n\t\t{ name: \"force\", description: \"Overwrite files that already exist\" },\n\t\t{ name: \"no-interaction\", description: \"Disable interactive prompts\" },\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst interactive = !flagBool(ctx.flags, \"no-interaction\", false);\n\t\tconst force = flagBool(ctx.flags, \"force\", false);\n\t\tconst target = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"target\"] as string | undefined) ?? \".\",\n\t\t);\n\n\t\tif (!existsSync(target)) {\n\t\t\tlogger.error(`Target directory does not exist: ${target}`);\n\t\t\tlogger.info(\n\t\t\t\t`Run \\`nx new <name>\\` to create a fresh project, or \\`mkdir -p ${target}\\` first.`,\n\t\t\t);\n\t\t\treturn 1;\n\t\t}\n\n\t\t// Interactive prompts (only if not provided via flags and interactive mode)\n\t\tconst routing =\n\t\t\t(ctx.flags[\"style\"] as string | undefined) ??\n\t\t\t(await select(\"Routing style\", [\"nest\", \"adonis\", \"functional\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"nest\",\n\t\t\t}));\n\t\tconst view =\n\t\t\t(ctx.flags[\"view\"] as string | undefined) ??\n\t\t\t(await select(\"View engine\", [\"rendu\", \"edge\", \"eta\", \"inertia\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"rendu\",\n\t\t\t}));\n\t\tconst orm =\n\t\t\t(ctx.flags[\"orm\"] as string | undefined) ??\n\t\t\t(await select(\"ORM driver\", [\"drizzle\", \"prisma\", \"kysely\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"drizzle\",\n\t\t\t}));\n\t\tconst db =\n\t\t\t(ctx.flags[\"db\"] as string | undefined) ??\n\t\t\t(await select(\n\t\t\t\t\"Database driver\",\n\t\t\t\t[\"bun-sqlite\", \"node-sqlite\", \"libsql\", \"postgres\", \"mysql\", \"none\"],\n\t\t\t\t{\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: \"bun-sqlite\",\n\t\t\t\t},\n\t\t\t));\n\t\tconst frontend =\n\t\t\t(ctx.flags[\"frontend\"] as string | undefined) ??\n\t\t\t(await select(\"Inertia frontend\", [\"react\", \"vue\", \"svelte\", \"solid\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"react\",\n\t\t\t}));\n\t\tconst ssr = !flagBool(ctx.flags, \"no-ssr\", false);\n\n\t\t// Build the plan: which files to write / skip / merge\n\t\tconst plan: PlanEntry[] = [\n\t\t\t{ path: \"nx.config.ts\", mode: \"write\" },\n\t\t\t{ path: \"package.json\", mode: \"merge-pkg\" },\n\t\t\t{ path: \"tsconfig.json\", mode: \"merge-tsconfig\" },\n\t\t\t{ path: \"public/.gitkeep\", mode: \"write\" },\n\t\t\t...view !== \"none\" ? [{ path: \"resources/views/welcome.html\", mode: \"write\" as const }] : [],\n\t\t\t{ path: \".env\", mode: \"skip\" },\n\t\t\t{ path: \".env.local\", mode: \"skip\" },\n\t\t\t{ path: \".gitignore\", mode: \"skip\" },\n\t\t\t{ path: \"app/main.ts\", mode: \"write\" },\n\t\t\t{ path: \"app/app.module.ts\", mode: \"write\" },\n\t\t\t{ path: \"app/controllers/home.controller.ts\", mode: \"write\" },\n\t\t\t{ path: \"README.md\", mode: \"write\" },\n\t\t];\n\n\t\tconst created: string[] = [];\n\t\tconst skipped: string[] = [];\n\t\tconst merged: string[] = [];\n\n\t\t// Ensure directories exist\n\t\tmkdirSync(resolve(target, \"app/controllers\"), { recursive: true });\n\t\tmkdirSync(resolve(target, \"public\"), { recursive: true });\n\t\tif (view !== \"none\") {\n\t\t\tmkdirSync(resolve(target, \"resources/views\"), { recursive: true });\n\t\t}\n\n\t\tfor (const entry of plan) {\n\t\t\tconst abs = resolve(target, entry.path);\n\t\t\tconst exists = existsSync(abs);\n\n\t\t\tif (entry.mode === \"merge-pkg\") {\n\t\t\t\t// Build deps based on context\n\t\t\t\tconst coreDeps: Record<string, string> = {\n\t\t\t\t\t\"@nexusts/core\": \"*\",\n\t\t\t\t\t\"reflect-metadata\": \"^0.2.2\",\n\t\t\t\t\thono: \"^4.6.0\",\n\t\t\t\t\tzod: \"^3.23.8\",\n\t\t\t\t};\n\t\t\t\tif (orm === \"drizzle\") {\n\t\t\t\t\tcoreDeps[\"@nexusts/drizzle\"] = \"*\";\n\t\t\t\t\tcoreDeps[\"drizzle-orm\"] = \"^0.45.0\";\n\t\t\t\t}\n\t\t\t\tif (view !== \"none\") {\n\t\t\t\t\tcoreDeps[\"@nexusts/static\"] = \"*\";\n\t\t\t\t}\n\n\t\t\t\tif (exists) {\n\t\t\t\t\tmergePackageJson(abs, coreDeps);\n\t\t\t\t\tmerged.push(entry.path);\n\t\t\t\t} else {\n\t\t\t\t\twriteFileSync(\n\t\t\t\t\t\tabs,\n\t\t\t\t\t\tJSON.stringify(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: target.split(\"/\").pop() ?? \"nexus-app\",\n\t\t\t\t\t\t\t\tversion: \"0.1.0\",\n\t\t\t\t\t\t\t\ttype: \"module\",\n\t\t\t\t\t\t\t\tprivate: true,\n\t\t\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\t\t\tdev: \"bun --hot app/main.ts\",\n\t\t\t\t\t\t\t\t\tbuild: \"bun run build.ts\",\n\t\t\t\t\t\t\t\t\tstart: \"bun app/main.ts\",\n\t\t\t\t\t\t\t\t\ttest: \"vitest\",\n\t\t\t\t\t\t\t\t\tnx: \"nx\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdependencies: coreDeps,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcreated.push(entry.path);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (entry.mode === \"merge-tsconfig\") {\n\t\t\t\t// Always merge: never clobber an existing tsconfig.json.\n\t\t\t\tif (exists) {\n\t\t\t\t\tmergeTsconfig(abs, {\n\t\t\t\t\t\texperimentalDecorators: true,\n\t\t\t\t\t\temitDecoratorMetadata: true,\n\t\t\t\t\t});\n\t\t\t\t\tmerged.push(entry.path);\n\t\t\t\t} else {\n\t\t\t\t\twriteFileSync(abs, defaultTsconfig());\n\t\t\t\t\tcreated.push(entry.path);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Plain write mode\n\t\t\tif (exists && !force) {\n\t\t\t\tskipped.push(entry.path);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst content = renderContent(entry.path, {\n\t\t\t\trouting,\n\t\t\t\tview,\n\t\t\t\tviewPaths: view === \"none\" ? \"\" : \"resources/views\",\n\t\t\t\torm,\n\t\t\t\tdbDriver: db,\n\t\t\t\tdbUrl: db === \"bun-sqlite\" || db === \"node-sqlite\" ? \"app.db\" : \"\",\n\t\t\t\tinertiaFrontend: frontend,\n\t\t\t\tinertiaSSR: ssr,\n\t\t\t\tinertiaVersion: \"1.0.0\",\n\t\t\t\ttargetName: target.split(\"/\").pop() ?? \"nexus-app\",\n\t\t\t});\n\t\t\twriteFileSync(abs, content);\n\t\t\tcreated.push(entry.path);\n\t\t}\n\n\t\t// Report\n\t\tlogger.success(`initialized NexusTS in ${target}`);\n\t\tlogger.blank();\n\t\tif (created.length) {\n\t\t\tlogger.heading(\"Created\");\n\t\t\tfor (const f of created) logger.info(` + ${f}`);\n\t\t}\n\t\tif (merged.length) {\n\t\t\tlogger.heading(\"Merged into existing files\");\n\t\t\tfor (const f of merged) logger.info(` ~ ${f}`);\n\t\t}\n\t\tif (skipped.length) {\n\t\t\tlogger.heading(\"Skipped (already exist; use --force to overwrite)\");\n\t\t\tfor (const f of skipped) logger.info(` - ${f}`);\n\t\t}\n\t\tlogger.blank();\n\t\tlogger.heading(\"Next steps\");\n\t\tlogger.info(` cd ${target === ctx.cwd ? \".\" : target}`);\n\t\tlogger.info(` bun install`);\n\t\tlogger.info(` bun run dev`);\n\t\tlogger.blank();\n\n\t\treturn 0;\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\ninterface RenderCtx {\n\trouting: string;\n\tview: string;\n\tviewPaths: string;\n\torm: string;\n\tdbDriver: string;\n\tdbUrl: string;\n\tinertiaFrontend: string;\n\tinertiaSSR: boolean;\n\tinertiaVersion: string;\n\ttargetName: string;\n\t// Index signature so RenderCtx is assignable to RenderObject.\n\t[key: string]: string | number | boolean | undefined | null;\n}\n\nfunction renderContent(path: string, ctx: RenderCtx): string {\n\tswitch (path) {\n\t\tcase \"nx.config.ts\":\n\t\t\treturn render(templates.project[\"nx.config.ts\"], ctx);\n\t\tcase \"public/.gitkeep\":\n\t\t\treturn \"\";\n\t\tcase \"resources/views/welcome.html\":\n\t\t\treturn `<h1>Welcome to ${ctx.targetName}</h1>\\n<p>This is a sample Rendu template.</p>\\n<p>Founded <?= year ?>.</p>\\n`;\n\t\tcase \".gitignore\":\n\t\t\treturn `# NexusTS\nnode_modules/\napp.db\n*.db\n.env.local\ndist/\n`;\n\t\tcase \".env\":\n\t\t\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Environment Variables (committed to git)\n#\n# Shared defaults for all environments. Override locally via\n# .env.local (gitignored) or by environment via .env.{NODE_ENV}\n# (e.g. .env.production, .env.development).\n#\n# Uncomment the database config for your driver:\n# ──────────────────────────────────────────────────────\n\n# ── App ──\nNODE_ENV=development\nPORT=3000\n\n# ── Session secret (REQUIRED) ──\n# Generate with: openssl rand -base64 32\nSESSION_SECRET=change-me-in-production\n\n# ── Database: SQLite (default, zero config) ──\nDATABASE_URL=app.db\n\n# ── Database: PostgreSQL ──\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n\n# ── Database: MySQL ──\n# DATABASE_URL=mysql://user:password@localhost:3306/myapp\n\n# ── Better Auth (if using nexusjs/auth) ──\n# BETTER_AUTH_SECRET=\n# BETTER_AUTH_URL=http://localhost:3000\n`;\n\t\tcase \".env.local\":\n\t\t\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Local Overrides (DO NOT COMMIT to git)\n#\n# This file is gitignored. Use it for secrets and local\n# configuration that should never be checked in.\n# ──────────────────────────────────────────────────────\n\n# Override any value from .env here:\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n# SESSION_SECRET=my-local-secret\n`;\n\t\tcase \"app/main.ts\": {\n\t\t\tconst hasView = ctx.view !== \"none\";\n\t\t\tconst staticMw = hasView\n\t\t\t\t? `import { StaticModule } from '@nexusts/static';\\n`\n\t\t\t\t\t+ `const staticMiddleware = StaticModule.mount({ root: './public', prefix: '/static' });\\n`\n\t\t\t\t: '';\n\t\t\tconst staticOpt = hasView ? '\\n middleware: [staticMiddleware],' : '';\n\t\t\treturn `import 'reflect-metadata';\nimport { Application } from '@nexusts/core';\n${staticMw}import { AppModule } from './app.module.js';\n\nconst app = new Application(AppModule, {\n logging: true,\n port: Number(process.env['PORT'] ?? 3000),${staticOpt}\n});\n\nawait app.listen();\nconsole.log('[nexus] Listening on http://localhost:' + (process.env['PORT'] ?? 3000));\n`;\n\t\t}\n\t\tcase \"app/app.module.ts\": {\n\t\t\tconst hasOrm = ctx.orm === \"drizzle\";\n\t\t\tconst ormImport = hasOrm\n\t\t\t\t? `import { DrizzleModule } from '@nexusts/drizzle';\\n`\n\t\t\t\t: '';\n\t\t\tconst forRootDialect = ctx.dbDriver === 'bun-sqlite' ? 'bun-sqlite' : 'sqlite';\n\t\t\tconst forRootFile = ctx.dbUrl || 'app.db';\n\t\t\tconst ormBlock = hasOrm\n\t\t\t\t? ' DrizzleModule.forRoot({\\n dialect: \\'' + forRootDialect + '\\',\\n connection: { filename: \\'' + forRootFile + '\\' },\\n logging: true,\\n })'\n\t\t\t\t: '';\n\t\t\treturn `${ormImport}import { Module } from '@nexusts/core';\nimport { HomeController } from './controllers/home.controller.js';\n\n@Module({\n imports: [${hasOrm ? `\\n${ormBlock},\\n` : ''} ],\n controllers: [HomeController],\n})\nexport class AppModule {}\n`;\n\t\t}\n\t\tcase \"app/controllers/home.controller.ts\": {\n\t\t\tconst hasView = ctx.view !== \"none\";\n\t\t\tconst body = hasView\n\t\t\t\t? `{\\n view: 'welcome.html',\\n data: { year: new Date().getFullYear() },\\n }`\n\t\t\t\t: `{ status: 200, body: { message: 'Hello from NexusTS!' } }`;\n\t\t\treturn `import { Controller, Get } from '@nexusts/core';\n\n@Controller('/')\nexport class HomeController {\n @Get('/')\n index() {\n return ${body};\n }\n}\n`;\n\t\t}\n\t\tcase \"README.md\":\n\t\t\treturn `# ${ctx.targetName}\n\nA Nexus project.\n\n## Run\n\n\\`\\`\\`bash\nbun install\nbun run dev\n\\`\\`\\`\n\n## Scaffolding\n\n\\`\\`\\`bash\nbunx nx make:crud Post\n\\`\\`\\`\n`;\n\t\tdefault:\n\t\t\tthrow new Error(`No render template for: ${path}`);\n\t}\n}\n\nfunction defaultTsconfig(): string {\n\treturn `{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"experimentalDecorators\": true,\n \"emitDecoratorMetadata\": true,\n \"strict\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"types\": [\"bun-types\"]\n },\n \"include\": [\"app/**/*.ts\", \"nx.config.ts\"]\n}\n`;\n}\n\n/**\n * Merge NexusTS fields into an existing package.json. Preserves all\n * existing fields; only adds what's missing.\n */\nfunction mergePackageJson(path: string, additions: Record<string, string>): void {\n\tconst raw = readFileSync(path, \"utf8\");\n\tconst pkg = parseJsonLoose<Record<string, unknown>>(raw);\n\tlet changed = false;\n\n\t// Ensure type: \"module\"\n\tif (!pkg[\"type\"]) {\n\t\tpkg[\"type\"] = \"module\";\n\t\tchanged = true;\n\t}\n\n\t// Ensure private: true\n\tif (!pkg[\"private\"]) {\n\t\tpkg[\"private\"] = true;\n\t\tchanged = true;\n\t}\n\n\t// Merge scripts (only add missing ones, never overwrite)\n\tconst SCRIPTS: Record<string, string> = {\n\t\tdev: \"bun --hot app/main.ts\",\n\t\tbuild: \"bun run build.ts\",\n\t\tstart: \"bun app/main.ts\",\n\t\ttest: \"vitest\",\n\t\tnx: \"nx\",\n\t};\n\tconst existingScripts = (pkg[\"scripts\"] as Record<string, string> | undefined) ?? {};\n\tfor (const [k, v] of Object.entries(SCRIPTS)) {\n\t\tif (!(k in existingScripts)) {\n\t\t\texistingScripts[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tif (Object.keys(existingScripts).length > 0) {\n\t\tpkg[\"scripts\"] = existingScripts;\n\t}\n\n\t// Merge dependencies\n\tconst deps = (pkg[\"dependencies\"] as Record<string, string> | undefined) ?? {};\n\tfor (const [k, v] of Object.entries(additions)) {\n\t\tif (!(k in deps)) {\n\t\t\tdeps[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\tpkg[\"dependencies\"] = deps;\n\n\tif (changed) {\n\t\twriteFileSync(path, JSON.stringify(pkg, null, 2) + \"\\n\");\n\t}\n}\n\n/**\n * Merge NexusTS compiler options into an existing tsconfig.json.\n * Preserves all existing fields; only adds what's missing.\n */\nfunction mergeTsconfig(\n\tpath: string,\n\tadditions: Record<string, boolean | string>,\n): void {\n\tconst raw = readFileSync(path, \"utf8\");\n\tconst cfg = parseJsonLoose<{\n\t\tcompilerOptions?: Record<string, unknown>;\n\t\tinclude?: string[];\n\t}>(raw);\n\tconst co = (cfg.compilerOptions ?? {}) as Record<string, unknown>;\n\tlet changed = false;\n\tfor (const [k, v] of Object.entries(additions)) {\n\t\tif (!(k in co)) {\n\t\t\tco[k] = v;\n\t\t\tchanged = true;\n\t\t}\n\t}\n\t// Also ensure src/**/*.ts and nx.config.ts are in `include`\n\tconst inc = (cfg.include ?? []) as string[];\n\tif (!inc.includes(\"app/**/*.ts\")) {\n\t\tinc.push(\"app/**/*.ts\");\n\t\tchanged = true;\n\t}\n\tif (!inc.includes(\"nx.config.ts\")) {\n\t\tinc.push(\"nx.config.ts\");\n\t\tchanged = true;\n\t}\n\tif (changed) {\n\t\tcfg.compilerOptions = co;\n\t\tcfg.include = inc;\n\t\twriteFileSync(path, JSON.stringify(cfg, null, 2) + \"\\n\");\n\t}\n}\n\nexport default initCommand;\n",
|
|
14
15
|
"/**\n * AdonisJS-style controller template (no decorators, just methods).\n *\n * Use when `nx.config.ts` has `routing: 'adonis'`. Routes are added\n * separately by the user (or by the `make:crud` command) to a route\n * table; this controller is just a plain class.\n */\n\nexport default `\nimport { {{ service }} } from '../services/{{ kebab }}.service.js';\n\nexport class {{ name }}Controller {\n async index() {\n return new {{ service }}().findAll();\n }\n\n async show({ params }: { params: { id: string } }) {\n return new {{ service }}().findOne(Number(params.id));\n }\n\n async create({ body }: { body: any }) {\n return { status: 201, body: new {{ service }}().create(body) };\n }\n\n async update({ params, body }: { params: { id: string }; body: any }) {\n return new {{ service }}().update(Number(params.id), body);\n }\n\n async destroy({ params }: { params: { id: string } }) {\n return new {{ service }}().delete(Number(params.id));\n }\n}\n\nexport const {{ camel }}Controller = new {{ name }}Controller();\n`.trimStart();\n",
|
|
15
16
|
"/**\n * Functional (Hono-native) controller template.\n *\n * Each route is a plain function `(c) => Response`. Useful for\n * webhooks, SSE endpoints, or anything that doesn't fit a class shape.\n */\n\nexport default `\nimport type { Context } from 'hono';\n\nexport const {{ camel }}Routes = {\n list: async (c: Context) => {\n return c.json([]);\n },\n\n show: async (c: Context) => {\n const id = c.req.param('id');\n return c.json({ id });\n },\n\n create: async (c: Context) => {\n const body = await c.req.json();\n return c.json({ created: body }, 201);\n },\n\n update: async (c: Context) => {\n const id = c.req.param('id');\n const body = await c.req.json();\n return c.json({ id, body });\n },\n\n destroy: async (c: Context) => {\n const id = c.req.param('id');\n return c.json({ removed: id });\n },\n};\n`.trimStart();\n",
|
|
16
17
|
"/**\n * NestJS-style controller template.\n *\n * Renders an `@Controller(prefix)` class with `@Get` / `@Post` /\n * `@Put` / `@Delete` routes that delegate to an injected service.\n *\n * Context keys used:\n * name — PascalCase class name (e.g. \"User\")\n * kebab — kebab-case URL segment (e.g. \"user\")\n * pascal — alias for name (template convenience)\n * camel — camelCase variable name (e.g. \"userService\")\n * service — PascalCase service name (e.g. \"UserService\")\n * serviceCamel — camelCase service variable (e.g. \"userService\")\n */\n\nexport default `\nimport { Body, Controller, Delete, Get, Inject, Param, Post, Put } from '@nexusts/core';\nimport { {{ service }} } from '../services/{{ kebab }}.service.js';\n\n@Controller('/{{ kebab }}s')\nexport class {{ name }}Controller {\n constructor(@Inject({{ service }}) private readonly {{ serviceCamel }}: {{ service }}) {}\n\n @Get('/')\n async index() {\n return this.{{ serviceCamel }}.findAll();\n }\n\n @Get('/:id')\n async show(@Param('id') id: string) {\n return this.{{ serviceCamel }}.findOne(Number(id));\n }\n\n @Post('/')\n async create(@Body() body: any) {\n return { status: 201, body: this.{{ serviceCamel }}.create(body) };\n }\n\n @Put('/:id')\n async update(@Param('id') id: string, @Body() body: any) {\n return this.{{ serviceCamel }}.update(Number(id), body);\n }\n\n @Delete('/:id')\n async destroy(@Param('id') id: string) {\n return this.{{ serviceCamel }}.delete(Number(id));\n }\n}\n`.trimStart();\n",
|
|
@@ -50,12 +51,12 @@
|
|
|
50
51
|
"/**\n * `nx db:seed` — run database seed scripts.\n *\n * Seeds are TypeScript (or JavaScript) files that populate the\n * database with fixture data. The command:\n *\n * 1. Scans the configured `seeds` directory (default\n * `./db/seeds` — overridable via `paths.seeds` in\n * `nx.config.ts`).\n * 2. Loads every `*.ts` (or `*.js` / `*.mjs`) file in\n * alphabetical order.\n * 3. Invokes the default export as an async function, passing\n * a `SeedContext` that exposes the active DrizzleService,\n * logger, and a few helpers (see below).\n *\n * Examples:\n * nx db:seed # run all seeds in db/seeds/\n * nx db:seed --file 01_users # run a single seed\n * nx db:seed --reset # clear all tables first (DESTRUCTIVE)\n * nx db:seed --create users # scaffold a new seed file\n * nx db:seed --folder ./seeds # custom folder\n *\n * Seed file example:\n *\n * // db/seeds/01_users.ts\n * import type { SeedContext } from \"@nexusts/cli\";\n *\n * export default async function seed(ctx: SeedContext) {\n * await ctx.db.insert(users).values([\n * { email: \"alice@example.com\" },\n * { email: \"bob@example.com\" },\n * ]);\n * ctx.logger.info(`Inserted 2 users`);\n * }\n *\n * The \"01_users.ts\" naming convention (zero-padded numbers as\n * prefixes) is recommended but not required — alphabetical\n * ordering is the only rule.\n */\n\nimport { spawn } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport { mkdir, readdir, readFile, writeFile, unlink } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { logger } from \"../core/index.js\";\n\nconst SEED_TEMPLATE = `/**\n * Seed: {name}\n *\n * Run with: nx db:seed\n *\n * The default export receives a \\`SeedContext\\` with:\n * - \\`ctx.db\\` : the active DrizzleService\n * - \\`ctx.logger\\` : the framework logger\n * - \\`ctx.dialect\\` : the active Drizzle dialect\n * - \\`ctx.truncate(table)\\` : helper to clear a table\n *\n * Use ctx.db.insert(table).values([...]) etc. for inserts.\n */\n\nimport type { SeedContext } from \"@nexusts/cli\";\n\nexport default async function seed(ctx: SeedContext): Promise<void> {\n\\tctx.logger.info(\"Running seed: {name}\");\n\\t// Example:\n\\t// await ctx.db.insert(usersTable).values([\n\\t// { email: \"alice@example.com\", name: \"Alice\" },\n\\t// { email: \"bob@example.com\", name: \"Bob\" },\n\\t// ]);\n}\n`;\n\nexport const dbSeedCommand: Command = {\n\tname: \"db:seed\",\n\taliases: [\"db:s\", \"seed\"],\n\tsummary: \"Run database seed scripts\",\n\tdescription:\n\t\t\"Loads and runs every seed file in the configured seeds folder in alphabetical order. Use --file to run a single seed, --create to scaffold a new one, --reset to truncate first (DESTRUCTIVE).\",\n\texamples: [\n\t\t\"nx db:seed\",\n\t\t\"nx db:seed --file 01_users\",\n\t\t\"nx db:seed --create users\",\n\t\t\"nx db:seed --reset\",\n\t\t\"nx db:seed --folder ./seeds\",\n\t],\n\tflags: [\n\t\t{\n\t\t\tname: \"file\",\n\t\t\tdescription:\n\t\t\t\t\"Run a single seed file by name (without .ts extension, fuzzy match).\",\n\t\t},\n\t\t{\n\t\t\tname: \"create\",\n\t\t\tdescription:\n\t\t\t\t\"Scaffold a new seed file with a default template. Provide a name (e.g. `users`).\",\n\t\t},\n\t\t{\n\t\t\tname: \"reset\",\n\t\t\tdescription:\n\t\t\t\t\"DESTRUCTIVE: Truncate every table in the schema before running seeds.\",\n\t\t},\n\t\t{\n\t\t\tname: \"folder\",\n\t\t\tdescription:\n\t\t\t\t\"Override seeds folder. Default: ./db/seeds (or nx.config.ts paths.seeds).\",\n\t\t},\n\t\t{\n\t\t\tname: \"dialect\",\n\t\t\tdescription:\n\t\t\t\t\"Drizzle dialect (postgres|mysql|sqlite|bun-sqlite|d1). Default: from nx.config.ts or bun-sqlite.\",\n\t\t},\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst folder = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"folder\"] as string | undefined) ??\n\t\t\t\t(ctx.config.paths as { seeds?: string })?.seeds ??\n\t\t\t\t\"db/seeds\",\n\t\t);\n\t\tconst dialect =\n\t\t\t(ctx.flags[\"dialect\"] as string | undefined) ??\n\t\t\tctx.config.dialect ??\n\t\t\t\"bun-sqlite\";\n\t\tconst createName = ctx.flags[\"create\"] as string | undefined;\n\t\tconst fileName = ctx.flags[\"file\"] as string | undefined;\n\t\tconst reset = Boolean(ctx.flags[\"reset\"]);\n\n\t\t// --create scaffolds a new seed file. Doesn't run anything else.\n\t\tif (createName) {\n\t\t\treturn await createSeedFile(folder, createName);\n\t\t}\n\n\t\tif (!existsSync(folder)) {\n\t\t\t// No seeds folder yet. Create an empty one with a README.\n\t\t\tlogger.info(`creating empty seeds folder at ${folder}`);\n\t\t\tawait mkdir(folder, { recursive: true });\n\t\t\tawait writeFile(\n\t\t\t\tresolve(folder, \"_README.ts\"),\n\t\t\t\t`// Seed files go here. Run with: nx db:seed\\n`,\n\t\t\t\t\"utf-8\",\n\t\t\t);\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst files = await collectSeedFiles(folder);\n\n\t\t// If --file was given but matches nothing, fail fast.\n\t\tif (fileName) {\n\t\t\tconst matched = files.filter((f) =>\n\t\t\t\tf.toLowerCase().includes(fileName.toLowerCase()),\n\t\t\t);\n\t\t\tif (matched.length === 0) {\n\t\t\t\tlogger.error(`no seed file matching \"${fileName}\" in ${folder}`);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t} else if (files.length === 0) {\n\t\t\tlogger.warn(`no seed files found in ${folder}`);\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst target = fileName\n\t\t\t? files.filter((f) => f.toLowerCase().includes(fileName.toLowerCase()))\n\t\t\t: files;\n\n\t\tconst url = readEnvUrl(dialect);\n\t\tif (!url) {\n\t\t\tlogger.error(\n\t\t\t\t`could not read ${dialect} URL from environment. Set DATABASE_URL or NEXUS_DB_URL.`,\n\t\t\t);\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (reset) {\n\t\t\tlogger.warn(\n\t\t\t\t\"--reset is set: truncating every table in the schema before running seeds.\",\n\t\t\t);\n\t\t}\n\n\t\t// Generate an in-process runner script that:\n\t\t// 1. Opens the DrizzleService.\n\t\t// 2. Optionally truncates every table.\n\t\t// 3. Imports each seed file and invokes its default export.\n\t\tconst seedImports = target\n\t\t\t.map((f, i) => `import seed_${i} from ${JSON.stringify(resolve(folder, f))};`)\n\t\t\t.join(\"\\n\");\n\t\tconst seedCalls = target\n\t\t\t.map(\n\t\t\t\t(_, i) =>\n\t\t\t\t\t` await seed_${i}({ db, logger, dialect, truncate: (t) => db.truncate(t) });`,\n\t\t\t)\n\t\t\t.join(\"\\n\");\n\n\t\tconst script = `\nimport 'reflect-metadata';\nimport { DrizzleService } from '${relativeImport(ctx.cwd, \"src/drizzle/index.js\")}';\nimport { logger as frameworkLogger } from '${relativeImport(ctx.cwd, \"src/logger/index.js\")}';\n\nconst url = ${JSON.stringify(url)};\nconst dialect = ${JSON.stringify(dialect)};\nconst reset = ${JSON.stringify(reset)};\n\nconst cfg = { dialect, connection: { url }, schema: dialect === 'postgres' ? 'public' : undefined };\nconst db = new DrizzleService(cfg);\nawait db.open();\nconst logger = frameworkLogger;\n\nif (reset) {\n const tables = await db.allTables();\n for (const t of tables) {\n await db.truncate(t);\n }\n logger.info(\\`Truncated \\${tables.length} table(s)\\`);\n}\n\n${seedImports}\n\n${seedCalls}\n\nawait db.close();\nlogger.info(\\`Seeds complete (\\${${target.length}} file(s))\\`);\n`;\n\t\tconst tmpFile = resolve(ctx.cwd, \".nx-db-seed.mjs\");\n\t\tawait writeFile(tmpFile, script, \"utf-8\");\n\t\ttry {\n\t\t\tconst code = await new Promise<number>((resP) => {\n\t\t\t\tconst child = spawn(\"bun\", [tmpFile], {\n\t\t\t\t\tcwd: ctx.cwd,\n\t\t\t\t\tstdio: \"inherit\",\n\t\t\t\t\tshell: process.platform === \"win32\",\n\t\t\t\t});\n\t\t\t\tchild.on(\"exit\", (c) => resP(c ?? 0));\n\t\t\t\tchild.on(\"error\", () => resP(1));\n\t\t\t});\n\t\t\treturn code;\n\t\t} finally {\n\t\t\tawait unlink(tmpFile).catch(() => {});\n\t\t}\n\t},\n};\n\n/* ------------------------------------------------------------------ *\n * Helpers\n * ------------------------------------------------------------------ */\n\nasync function collectSeedFiles(folder: string): Promise<string[]> {\n\tconst all = await readdir(folder, { withFileTypes: true });\n\tconst out: string[] = [];\n\tfor (const e of all) {\n\t\tif (!e.isFile()) continue;\n\t\tif (e.name.startsWith(\"_\")) continue; // _README.ts etc.\n\t\tif (!/\\.(ts|js|mjs|cjs)$/.test(e.name)) continue;\n\t\tout.push(e.name);\n\t}\n\tout.sort();\n\treturn out;\n}\n\nasync function createSeedFile(\n\tfolder: string,\n\tname: string,\n): Promise<number> {\n\tif (!/^[a-z0-9_-]+$/i.test(name)) {\n\t\tlogger.error(\n\t\t\t`invalid seed name \"${name}\" — use letters, numbers, dash, underscore.`,\n\t\t);\n\t\treturn 1;\n\t}\n\tif (!existsSync(folder)) await mkdir(folder, { recursive: true });\n\n\t// Find a non-clobbering filename\n\tlet candidate = `${name}.ts`;\n\tlet i = 1;\n\twhile (existsSync(resolve(folder, candidate))) {\n\t\tcandidate = `${name}_${i}.ts`;\n\t\ti++;\n\t}\n\tconst path = resolve(folder, candidate);\n\tconst body = SEED_TEMPLATE.replace(/\\{name\\}/g, name);\n\tawait writeFile(path, body, \"utf-8\");\n\tlogger.info(`created ${path}`);\n\treturn 0;\n}\n\nfunction readEnvUrl(dialect: string): string | null {\n\tconst url =\n\t\tprocess.env[\"DATABASE_URL\"] ??\n\t\tprocess.env[\"NEXUS_DB_URL\"] ??\n\t\t(dialect === \"postgres\"\n\t\t\t? process.env[\"POSTGRES_URL\"]\n\t\t\t: dialect === \"mysql\"\n\t\t\t\t? process.env[\"MYSQL_URL\"]\n\t\t\t\t: dialect.includes(\"sqlite\")\n\t\t\t\t\t? process.env[\"SQLITE_FILENAME\"]\n\t\t\t\t\t: null);\n\treturn url ?? null;\n}\n\nfunction relativeImport(cwd: string, target: string): string {\n\tconst abs = resolve(cwd, target);\n\tlet rel = abs;\n\tif (rel.startsWith(cwd)) rel = rel.slice(cwd.length);\n\tif (rel.startsWith(\"/\")) rel = rel.slice(1);\n\tif (!rel.startsWith(\".\")) rel = \"./\" + rel;\n\treturn rel;\n}\n\nexport default dbSeedCommand;\n",
|
|
51
52
|
"/**\n * `nx new <name>` — scaffold a new project.\n *\n * Creates a fresh directory with `nx.config.ts`, `package.json`,\n * `tsconfig.json`, `app/main.ts`, and a README. Useful as a\n * starting point for kicking off a new app without `bun create`.\n *\n * This is intentionally minimal — it does not run `bun install`. After\n * generation, the user runs `bun install` themselves.\n */\n\nimport { existsSync, mkdirSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { flagBool, logger, render, select } from \"../core/index.js\";\nimport { templates } from \"../templates/index.js\";\n\nexport const newCommand: Command = {\n\tname: \"new\",\n\taliases: [\"n\"],\n\tsummary: \"Create a new Nexus project\",\n\tdescription:\n\t\t\"Generates a new project directory with nx.config.ts, tsconfig, package.json, and a starter app/main.ts.\",\n\texamples: [\n\t\t\"nx new my-app\",\n\t\t\"nx new my-app --style nest --view rendu --orm drizzle --db bun-sqlite\",\n\t],\n\tflags: [\n\t\t{\n\t\t\tname: \"style\",\n\t\t\tdescription: \"Routing style (nest|adonis|functional|mixed)\",\n\t\t},\n\t\t{ name: \"view\", description: \"View engine (rendu|edge|eta|inertia|none)\" },\n\t\t{ name: \"orm\", description: \"ORM driver (drizzle|prisma|kysely|none)\" },\n\t\t{\n\t\t\tname: \"db\",\n\t\t\tdescription:\n\t\t\t\t\"Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\",\n\t\t},\n\t\t{\n\t\t\tname: \"frontend\",\n\t\t\tdescription: \"Inertia frontend (react|vue|svelte|solid)\",\n\t\t},\n\t\t{ name: \"no-ssr\", description: \"Disable Inertia SSR\" },\n\t\t{ name: \"no-interaction\", description: \"Disable interactive prompts\" },\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst name = ctx.positional[0];\n\t\tif (!name) {\n\t\t\tlogger.error(\"Usage: nx new <project-name>\");\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst interactive = !flagBool(ctx.flags, \"no-interaction\", false);\n\t\tconst target = resolve(ctx.cwd, name);\n\n\t\tif (existsSync(target)) {\n\t\t\tlogger.error(`Directory already exists: ${target}`);\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst routing =\n\t\t\t(ctx.flags[\"style\"] as string | undefined) ??\n\t\t\t(await select(\"Routing style\", [\"nest\", \"adonis\", \"functional\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"nest\",\n\t\t\t}));\n\n\t\tconst view =\n\t\t\t(ctx.flags[\"view\"] as string | undefined) ??\n\t\t\t(await select(\"View engine\", [\"rendu\", \"edge\", \"eta\", \"inertia\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"rendu\",\n\t\t\t}));\n\n\t\tconst orm =\n\t\t\t(ctx.flags[\"orm\"] as string | undefined) ??\n\t\t\t(await select(\"ORM driver\", [\"drizzle\", \"prisma\", \"kysely\", \"none\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"drizzle\",\n\t\t\t}));\n\n\t\tconst db =\n\t\t\t(ctx.flags[\"db\"] as string | undefined) ??\n\t\t\t(await select(\n\t\t\t\t\"Database driver\",\n\t\t\t\t[\"bun-sqlite\", \"node-sqlite\", \"libsql\", \"postgres\", \"mysql\", \"none\"],\n\t\t\t\t{\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: \"bun-sqlite\",\n\t\t\t\t},\n\t\t\t));\n\n\t\tconst frontend =\n\t\t\t(ctx.flags[\"frontend\"] as string | undefined) ??\n\t\t\t(await select(\"Inertia frontend\", [\"react\", \"vue\", \"svelte\", \"solid\"], {\n\t\t\t\tinteractive,\n\t\t\t\tdefault: \"react\",\n\t\t\t}));\n\n\t\tconst ssr = !flagBool(ctx.flags, \"no-ssr\", false);\n\n\t\tmkdirSync(resolve(target, \"app\"), { recursive: true });\n\t\tif (view !== \"none\") {\n\t\t\tmkdirSync(resolve(target, \"resources/views\"), { recursive: true });\n\t\t}\n\t\tmkdirSync(resolve(target, \"public\"), { recursive: true });\n\n\t\twriteFileSync(resolve(target, \"public/.gitkeep\"), \"\");\n\n\t\tif (view !== \"none\") {\n\t\t\twriteFileSync(\n\t\t\t\tresolve(target, \"resources/views/welcome.html\"),\n\t\t\t\t`<h1>Welcome to ${name}</h1>\\n<p>This is a sample Rendu template.</p>\\n<p>Founded <?= year ?>.</p>\\n`,\n\t\t\t);\n\t\t}\n\n\t\twriteFileSync(resolve(target, \".env\"), generateEnvFile());\n\t\twriteFileSync(resolve(target, \".env.local\"), generateEnvLocalFile());\n\t\twriteFileSync(resolve(target, \".gitignore\"), generateGitIgnore());\n\n\t\tconst code = render(templates.project[\"nx.config.ts\"], {\n\t\t\trouting,\n\t\t\tview,\n\t\t\tviewPaths: view === \"none\" ? \"\" : \"resources/views\",\n\t\t\torm,\n\t\t\tdbDriver: db,\n\t\t\tdbUrl: db === \"bun-sqlite\" || db === \"node-sqlite\" ? \"app.db\" : \"\",\n\t\t\tinertiaFrontend: frontend,\n\t\t\tinertiaSSR: ssr,\n\t\t\tinertiaVersion: \"1.0.0\",\n\t\t});\n\t\twriteFileSync(resolve(target, \"nx.config.ts\"), code);\n\n\t\tconst deps: Record<string, string> = {\n\t\t\t\"@nexusts/core\": \"*\",\n\t\t\t\"reflect-metadata\": \"^0.2.2\",\n\t\t\thono: \"^4.6.0\",\n\t\t\tzod: \"^3.23.8\",\n\t\t};\n\t\tif (orm === \"drizzle\") {\n\t\t\tdeps[\"@nexusts/drizzle\"] = \"*\";\n\t\t\tdeps[\"drizzle-orm\"] = \"^0.45.0\";\n\t\t}\n\t\tif (view !== \"none\") {\n\t\t\tdeps[\"@nexusts/static\"] = \"*\";\n\t\t}\n\t\twriteFileSync(\n\t\t\tresolve(target, \"package.json\"),\n\t\t\tJSON.stringify(\n\t\t\t\t{\n\t\t\t\t\tname,\n\t\t\t\t\tversion: \"0.1.0\",\n\t\t\t\t\ttype: \"module\",\n\t\t\t\t\tscripts: {\n\t\t\t\t\t\tdev: \"bun --hot app/main.ts\",\n\t\t\t\t\t\tbuild: \"bun run build.ts\",\n\t\t\t\t\t\tstart: \"bun app/main.ts\",\n\t\t\t\t\t\ttest: \"vitest\",\n\t\t\t\t\t\tnx: \"nx\",\n\t\t\t\t\t},\n\t\t\t\t\tdependencies: deps,\n\t\t\t\t},\n\t\t\t\tnull,\n\t\t\t\t2,\n\t\t\t),\n\t\t);\n\n\t\twriteFileSync(\n\t\t\tresolve(target, \"tsconfig.json\"),\n\t\t\t`{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"experimentalDecorators\": true,\n \"emitDecoratorMetadata\": true,\n \"strict\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"types\": [\"bun-types\"]\n },\n \"include\": [\"app/**/*.ts\", \"nx.config.ts\"]\n}\n`,\n\t\t);\n\n\t\tconst hasView = view !== \"none\";\n\t\tconst staticImport = hasView\n\t\t\t? `import { StaticModule } from '@nexusts/static';\\nconst staticMiddleware = StaticModule.mount({ root: './public', prefix: '/static' });\\n`\n\t\t\t: '';\n\t\tconst staticOption = hasView ? '\\n middleware: [staticMiddleware],' : '';\n\t\twriteFileSync(\n\t\t\tresolve(target, \"app/main.ts\"),\n\t\t\t`import 'reflect-metadata';\nimport { Application } from '@nexusts/core';\n${staticImport}import { AppModule } from './app.module.js';\n\nconst app = new Application(AppModule, {\n logging: true,\n port: Number(process.env['PORT'] ?? 3000),${staticOption}\n});\n\nawait app.listen();\nconsole.log('[nexus] Listening on http://localhost:' + (process.env['PORT'] ?? 3000));\n`,\n\t\t);\n\n\t\tconst ormImport = orm === \"drizzle\"\n\t\t\t? `import { DrizzleModule } from '@nexusts/drizzle';\\n`\n\t\t\t: '';\n\t\tconst forRootDialect = db === 'bun-sqlite' ? 'bun-sqlite' : 'sqlite';\n\t\tconst ormBlock = orm === \"drizzle\"\n\t\t\t? ` DrizzleModule.forRoot({\\n dialect: '${forRootDialect}',\\n connection: { filename: 'app.db' },\\n logging: true,\\n })`\n\t\t\t: '';\n\t\twriteFileSync(\n\t\t\tresolve(target, \"app/app.module.ts\"),\n\t\t\t`${ormImport}import { Module } from '@nexusts/core';\nimport { HomeController } from './controllers/home.controller.js';\n\n@Module({\n imports: [${orm === \"drizzle\" ? `\\n${ormBlock},\\n` : ''} ],\n controllers: [HomeController],\n})\nexport class AppModule {}\n`,\n\t\t);\n\n\t\tmkdirSync(resolve(target, \"app/controllers\"), { recursive: true });\n\t\tconst homeViewReturn = view !== \"none\"\n\t\t\t? `{\\n view: 'welcome.html',\\n data: { year: new Date().getFullYear() },\\n }`\n\t\t\t: `{ status: 200, body: { message: 'Hello from NexusTS!' } }`;\n\t\twriteFileSync(\n\t\t\tresolve(target, \"app/controllers/home.controller.ts\"),\n\t\t\t`import { Controller, Get } from '@nexusts/core';\n\n@Controller('/')\nexport class HomeController {\n @Get('/')\n index() {\n return ${homeViewReturn};\n }\n}\n`,\n\t\t);\n\n\t\twriteFileSync(\n\t\t\tresolve(target, \"README.md\"),\n\t\t\t`# ${name}\n\nA new Nexus project.\n\n## Run\n\n\\`\\`\\`bash\nbun install\nbun run dev\n\\`\\`\\`\n\n## Scaffolding\n\n\\`\\`\\`bash\nbunx nx make:crud Post\n\\`\\`\\`\n`,\n\t\t);\n\n\t\tlogger.success(`created ${target}`);\n\t\tlogger.blank();\n\t\tlogger.heading(\"Next steps\");\n\t\tlogger.info(` cd ${name}`);\n\t\tlogger.info(` bun install`);\n\t\tlogger.info(` bun run dev`);\n\t\tlogger.blank();\n\n\t\treturn 0;\n\t},\n};\n\n/** Generate the default .env file content. */\nfunction generateEnvFile(): string {\n\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Environment Variables (committed to git)\n#\n# Shared defaults for all environments. Override locally via\n# .env.local (gitignored) or by environment via .env.{NODE_ENV}\n# (e.g. .env.production, .env.development).\n#\n# Uncomment the database config for your driver:\n# ──────────────────────────────────────────────────────\n\n# ── App ──\nNODE_ENV=development\nPORT=3000\n\n# ── Session secret (REQUIRED) ──\n# Generate with: openssl rand -base64 32\nSESSION_SECRET=change-me-in-production\n\n# ── Database: SQLite (default, zero config) ──\nDATABASE_URL=app.db\n\n# ── Database: PostgreSQL ──\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n\n# ── Database: MySQL ──\n# DATABASE_URL=mysql://user:password@localhost:3306/myapp\n`;\n}\n\nfunction generateEnvLocalFile(): string {\n\treturn `# ──────────────────────────────────────────────────────\n# NexusTS — Local Overrides (DO NOT COMMIT to git)\n#\n# This file is gitignored. Use it for secrets and local\n# configuration that should never be checked in.\n# ──────────────────────────────────────────────────────\n\n# Override any value from .env here:\n# DATABASE_URL=postgres://user:password@localhost:5432/myapp\n# SESSION_SECRET=my-local-secret\n`;\n}\n\nfunction generateGitIgnore(): string {\n\treturn `# NexusTS\nnode_modules/\napp.db\n*.db\n.env.local\ndist/\n`;\n}\n\nexport default newCommand;\n",
|
|
52
53
|
"/**\n * `nx config` — update or create nx.config.ts (+ drizzle.config.ts\n * if Drizzle is selected).\n *\n * Companion to `nx init`:\n * - `nx init` → scaffold the whole project (config + src/app + README)\n * - `nx config` → only the config files; idempotent\n *\n * Behaviour:\n * - If nx.config.ts exists, parses the current values, merges\n * with any flag values (flags win), and re-renders.\n * - If it does not exist, creates it from scratch with the\n * provided (or prompted) values.\n * - If ORM is `drizzle`, also writes drizzle.config.ts.\n * - If ORM is NOT `drizzle`, an existing drizzle.config.ts is\n * left alone (the user may have it intentionally).\n *\n * Typical use cases:\n * - \"I want to switch from bun-sqlite to postgres\"\n * → nx config --db postgres\n * - \"I want to add Drizzle to an existing project\"\n * → nx config --orm drizzle\n * - \"I want to change the Inertia frontend from React to Vue\"\n * → nx config --frontend vue\n * - \"I haven't decided yet, just show me the prompts\"\n * → nx config --no-interaction=false\n *\n * Flags:\n * --target <dir> Target directory (default: cwd)\n * --style <name> Routing style (nest|adonis|functional)\n * --view <name> View engine (rendu|edge|inertia|none)\n * --orm <name> ORM driver (drizzle|prisma|kysely|none)\n * --db <name> Database driver\n * --db-url <url> Database URL (used when DATABASE_URL is unset)\n * --frontend <name> Inertia frontend (react|vue|svelte|solid)\n * --ssr Enable Inertia SSR\n * --no-ssr Disable Inertia SSR\n * --force Overwrite even if file already exists\n * --no-interaction Skip interactive prompts\n */\n\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { flagBool, logger, render, select } from \"../core/index.js\";\nimport { templates } from \"../templates/index.js\";\n\ninterface NxConfigValues {\n\trouting: string;\n\tview: string;\n\tviewPaths: string;\n\torm: string;\n\tdbDriver: string;\n\tdbUrl: string;\n\tinertiaFrontend: string;\n\tinertiaSSR: boolean;\n\tinertiaVersion: string;\n\t[key: string]: string | number | boolean | undefined | null;\n}\n\nconst DEFAULT_VALUES: NxConfigValues = {\n\trouting: \"nest\",\n\tview: \"rendu\",\n\tviewPaths: \"resources/views\",\n\torm: \"drizzle\",\n\tdbDriver: \"bun-sqlite\",\n\tdbUrl: \"app.db\",\n\tinertiaFrontend: \"react\",\n\tinertiaSSR: true,\n\tinertiaVersion: \"1.0.0\",\n};\n\n/**\n * Parse an existing nx.config.ts and extract the scalar values.\n * Falls back to DEFAULT_VALUES for any field it can't read.\n */\nfunction parseExistingConfig(path: string): NxConfigValues {\n\tconst out: NxConfigValues = { ...DEFAULT_VALUES };\n\tif (!existsSync(path)) return out;\n\tconst src = readFileSync(path, \"utf8\");\n\tconst grab = (re: RegExp): string | undefined => {\n\t\tconst m = src.match(re);\n\t\treturn m?.[1];\n\t};\n\tconst routing = grab(/routing:\\s*['\"]([^'\"]+)['\"]/);\n\tconst view = grab(/view:\\s*['\"]([^'\"]+)['\"]/);\n\tconst viewPathsMatch = src.match(/viewPaths:\\s*['\"]([^'\"]+)['\"]/);\n\tif (viewPathsMatch) {\n\t\tout.viewPaths = viewPathsMatch[1];\n\t}\n\tconst orm = grab(/orm:\\s*['\"]([^'\"]+)['\"]/);\n\tconst driver = grab(/driver:\\s*['\"]([^'\"]+)['\"]/);\n\tconst url = grab(/url:\\s*process\\.env\\.DATABASE_URL\\s*\\?\\?\\s*['\"]([^'\"]+)['\"]/);\n\tconst frontend = grab(/frontend:\\s*['\"]([^'\"]+)['\"]/);\n\tconst ssr = grab(/ssr:\\s*(true|false)/);\n\tconst version = grab(/version:\\s*['\"]([^'\"]+)['\"]/);\n\tif (routing) out.routing = routing;\n\tif (view) out.view = view;\n\tif (orm) out.orm = orm;\n\tif (driver) out.dbDriver = driver;\n\tif (url !== undefined) out.dbUrl = url;\n\tif (frontend) out.inertiaFrontend = frontend;\n\tif (ssr) out.inertiaSSR = ssr === \"true\";\n\tif (version) out.inertiaVersion = version;\n\treturn out;\n}\n\n/** Map a `db` driver name to a drizzle-kit dialect. */\nfunction driverToDialect(driver: string): string {\n\tswitch (driver) {\n\t\tcase \"bun-sqlite\":\n\t\tcase \"node-sqlite\":\n\t\tcase \"libsql\":\n\t\t\treturn \"sqlite\";\n\t\tcase \"postgres\":\n\t\t\treturn \"postgresql\";\n\t\tcase \"mysql\":\n\t\t\treturn \"mysql\";\n\t\tdefault:\n\t\t\treturn \"sqlite\";\n\t}\n}\n\n/** Default DATABASE_URL fallback based on the driver. */\nfunction defaultDbUrl(driver: string): string {\n\tif (driver === \"bun-sqlite\" || driver === \"node-sqlite\" || driver === \"libsql\") {\n\t\treturn \"app.db\";\n\t}\n\treturn \"\";\n}\n\nexport const configCommand: Command = {\n\tname: \"config\",\n\taliases: [\"cfg\"],\n\tsummary: \"Update or create nx.config.ts (+ drizzle.config.ts if Drizzle is selected)\",\n\tdescription:\n\t\t\"Re-renders nx.config.ts from the current values (parsed from the existing file, or prompted) plus any flag overrides. Also creates or updates drizzle.config.ts when the ORM is `drizzle`.\",\n\texamples: [\n\t\t\"nx config\",\n\t\t\"nx config --db postgres --db-url postgres://localhost/mydb\",\n\t\t\"nx config --orm drizzle --db bun-sqlite\",\n\t\t\"nx config --view inertia --frontend vue --no-ssr\",\n\t\t\"nx config --force\",\n\t],\n\tflags: [\n\t\t{ name: \"target\", description: \"Target directory (default: cwd)\" },\n\t\t{\n\t\t\tname: \"style\",\n\t\t\tdescription: \"Routing style (nest|adonis|functional|mixed)\",\n\t\t},\n\t\t{ name: \"view\", description: \"View engine (rendu|edge|inertia|none)\" },\n\t\t{\n\t\t\tname: \"view-paths\",\n\t\t\tdescription: \"Comma-separated directories searched for view files (e.g. resources/views)\",\n\t\t},\n\t\t{ name: \"orm\", description: \"ORM driver (drizzle|prisma|kysely|none)\" },\n\t\t{\n\t\t\tname: \"db\",\n\t\t\tdescription:\n\t\t\t\t\"Database driver (bun-sqlite|node-sqlite|libsql|postgres|mysql|none)\",\n\t\t},\n\t\t{\n\t\t\tname: \"db-url\",\n\t\t\tdescription: \"Default DATABASE_URL when the env var is unset\",\n\t\t},\n\t\t{\n\t\t\tname: \"frontend\",\n\t\t\tdescription: \"Inertia frontend (react|vue|svelte|solid)\",\n\t\t},\n\t\t{ name: \"ssr\", description: \"Enable Inertia SSR\" },\n\t\t{ name: \"no-ssr\", description: \"Disable Inertia SSR\" },\n\t\t{ name: \"force\", description: \"Overwrite even if file already exists\" },\n\t\t{ name: \"no-interaction\", description: \"Disable interactive prompts\" },\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst interactive = !flagBool(ctx.flags, \"no-interaction\", false);\n\t\tconst force = flagBool(ctx.flags, \"force\", false);\n\t\tconst target = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"target\"] as string | undefined) ?? \".\",\n\t\t);\n\n\t\tif (!existsSync(target)) {\n\t\t\tlogger.error(`Target directory does not exist: ${target}`);\n\t\t\treturn 1;\n\t\t}\n\n\t\t// 1. Start with the existing file's values (or defaults)\n\t\tconst nxConfigPath = resolve(target, \"nx.config.ts\");\n\t\tconst values: NxConfigValues = parseExistingConfig(nxConfigPath);\n\n\t\t// 2. Apply flag overrides\n\t\tconst flag = (k: string) => ctx.flags[k] as string | undefined;\n\t\tconst flagBoolStrict = (k: string, def: boolean) =>\n\t\t\tflagBool(ctx.flags, k, def);\n\t\tif (flag(\"style\")) values.routing = flag(\"style\")!;\n\t\tif (flag(\"view\")) values.view = flag(\"view\")!;\n\tif (flag(\"view-paths\")) {\n\t\tvalues.viewPaths = flag(\"view-paths\")!;\n\t}\n\t\tif (flag(\"orm\")) values.orm = flag(\"orm\")!;\n\t\tif (flag(\"db\")) values.dbDriver = flag(\"db\")!;\n\t\tif (flag(\"db-url\") !== undefined) values.dbUrl = flag(\"db-url\")!;\n\t\tif (flag(\"frontend\")) values.inertiaFrontend = flag(\"frontend\")!;\n\t\tif (flagBoolStrict(\"ssr\", false)) values.inertiaSSR = true;\n\t\tif (flagBoolStrict(\"no-ssr\", false)) values.inertiaSSR = false;\n\t\t// --inertia-version intentionally not exposed — too internal\n\n\t\t// 3. Interactive prompt for fields the user didn't supply\n\t\t// (only if the file didn't already exist OR they passed no\n\t\t// flags at all — i.e. they want a guided setup)\n\t\tconst anyFlag = Object.values(ctx.flags).some(\n\t\t\t(v) => v !== undefined && v !== false,\n\t\t);\n\t\tif (interactive && !anyFlag && !existsSync(nxConfigPath)) {\n\t\t\tvalues.routing =\n\t\t\t\t(await select(\"Routing style\", [\"nest\", \"adonis\", \"functional\"], {\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: values.routing,\n\t\t\t\t})) ?? values.routing;\n\t\t\tvalues.view =\n\t\t\t\t(await select(\"View engine\", [\"inertia\", \"rendu\", \"edge\", \"none\"], {\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: values.view,\n\t\t\t\t})) ?? values.view;\n\t\t\tvalues.orm =\n\t\t\t\t(await select(\"ORM driver\", [\"drizzle\", \"prisma\", \"kysely\", \"none\"], {\n\t\t\t\t\tinteractive,\n\t\t\t\t\tdefault: values.orm,\n\t\t\t\t})) ?? values.orm;\n\t\t\tvalues.dbDriver =\n\t\t\t\t(await select(\n\t\t\t\t\t\"Database driver\",\n\t\t\t\t\t[\"bun-sqlite\", \"node-sqlite\", \"libsql\", \"postgres\", \"mysql\", \"none\"],\n\t\t\t\t\t{ interactive, default: values.dbDriver },\n\t\t\t\t)) ?? values.dbDriver;\n\t\t\tvalues.inertiaFrontend =\n\t\t\t\t(await select(\n\t\t\t\t\t\"Inertia frontend\",\n\t\t\t\t\t[\"react\", \"vue\", \"svelte\", \"solid\"],\n\t\t\t\t\t{ interactive, default: values.inertiaFrontend },\n\t\t\t\t)) ?? values.inertiaFrontend;\n\t\t}\n\n\t\t// 4. Derive dbUrl from driver if user didn't pass --db-url\n\t\tif (flag(\"db-url\") === undefined && flag(\"db\") !== undefined) {\n\t\t\tvalues.dbUrl = defaultDbUrl(values.dbDriver);\n\t\t}\n\n\t\t// 5. Render and write\n\t\tconst existed = existsSync(nxConfigPath);\n\t\tif (existed && !force) {\n\t\t\t// Existing file: rewrite only if something actually changed.\n\t\t\t// (Always rewrite when the user passed any flag, since\n\t\t\t// they're explicitly asking for a change.)\n\t\t\tif (anyFlag) {\n\t\t\t\twriteNxConfig(target, values);\n\t\t\t\tlogger.info(` ~ nx.config.ts (updated)`);\n\t\t\t} else {\n\t\t\t\tlogger.info(` - nx.config.ts (unchanged; pass --force or a flag to update)`);\n\t\t\t}\n\t\t} else {\n\t\t\twriteNxConfig(target, values);\n\t\t\tlogger.info(` + nx.config.ts`);\n\t\t}\n\n\t\t// 6. Handle drizzle.config.ts\n\t\tconst drizzleConfigPath = resolve(target, \"drizzle.config.ts\");\n\t\tif (values.orm === \"drizzle\") {\n\t\t\tconst dialect = driverToDialect(values.dbDriver);\n\t\t\tconst dbUrl = values.dbUrl;\n\t\t\tconst existedDrizzle = existsSync(drizzleConfigPath);\n\t\t\tif (existedDrizzle && !force && !anyFlag) {\n\t\t\t\tlogger.info(` - drizzle.config.ts (unchanged; pass --force or a flag to update)`);\n\t\t\t} else {\n\t\t\t\twriteDrizzleConfig(target, { dialect, dbUrl });\n\t\t\t\tlogger.info(` ${existedDrizzle ? \"~\" : \"+\"} drizzle.config.ts`);\n\t\t\t}\n\t\t} else if (existsSync(drizzleConfigPath)) {\n\t\t\tlogger.info(\n\t\t\t\t` - drizzle.config.ts (left as-is; ORM is '${values.orm}', not 'drizzle')`,\n\t\t\t);\n\t\t}\n\n\t\tlogger.blank();\n\t\tlogger.success(`config updated in ${target}`);\n\t\tlogger.blank();\n\t\tlogger.heading(\"Next steps\");\n\t\tlogger.info(` cd ${target === ctx.cwd ? \".\" : target}`);\n\t\tif (values.orm === \"drizzle\") {\n\t\t\tlogger.info(` bun run db:generate # generate migrations`);\n\t\t}\n\t\tlogger.blank();\n\n\t\treturn 0;\n\t},\n};\n\n// ---------------------------------------------------------------------------\n// Writers\n// ---------------------------------------------------------------------------\n\nfunction writeNxConfig(target: string, values: NxConfigValues): void {\n\tconst code = render(templates.project[\"nx.config.ts\"], values);\n\twriteFileSync(resolve(target, \"nx.config.ts\"), code);\n}\n\nfunction writeDrizzleConfig(\n\ttarget: string,\n\tvalues: { dialect: string; dbUrl: string },\n): void {\n\tconst code = render(templates.project[\"drizzle.config.ts\"], values);\n\twriteFileSync(resolve(target, \"drizzle.config.ts\"), code);\n}\n\nexport default configCommand;\n",
|
|
53
|
-
"/**\n * `nx repl` — interactive REPL with the app's services loaded.\n *\n * Boots the user's `AppModule` and drops you into a REPL with\n * `app`, `container`, `db`, `logger`, `cfg`, `cache`, and `events`\n * pre-loaded. Useful for debugging, exploring data, and trying\n * out queries without writing a throwaway script.\n *\n * Usage:\n * nx repl # default: ./app/app.module.ts\n * nx repl --module app/app.module.ts\n * nx repl --no-boot # vanilla REPL\n * nx repl --history /tmp/nx-history # custom history file\n *\n * Once inside the REPL:\n * ❯ await db.select().from(users).all()\n * ❯ logger.info(\"hello from REPL\")\n * ❯ .services\n * ❯ .routes\n * ❯ .help\n * ❯ .exit\n *\n * Multi-line input is detected by a bracket-matcher — an\n * expression with an unclosed `{}`, `[]`, or `()` keeps the\n * prompt in `...` continuation mode.\n *\n * History is persisted to `.nx-repl-history` (or the path\n * given by `--history`).\n */\n\nimport {\n\texistsSync,\n\tmkdirSync,\n\treadFileSync,\n\twriteFileSync,\n} from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport * as readline from \"node:readline\";\nimport * as vm from \"node:vm\";\nimport { logger } from \"../core/index.js\";\nimport type { Command, CommandContext } from \"../core/index.js\";\n\nconst BANNER = `\n╭─────────────────────────────────────────────────╮\n│ NexusTS REPL │\n╰─────────────────────────────────────────────────╯\n`;\n\nconst HELP = `\nAvailable commands:\n .help Show this help\n .exit Exit the REPL (alias: .quit)\n .services List services in the DI container\n .modules List all modules\n .routes List all registered routes\n .history Show command history\n .clear Clear the screen\n .reset Reset the REPL context (clear all variables)\n\nPre-loaded variables (when an app is booted):\n app The Application instance\n container The DI container\n db DrizzleService (if registered)\n logger LoggerService (if registered)\n cfg ConfigService (if registered)\n cache CacheService (if registered)\n events EventService (if registered)\n\nExamples:\n > await db.select().from(users).all()\n > logger.info(\"hello from REPL\")\n > app.container.size\n`;\n\n/** Pair of (module path inside the framework, export name). */\nconst PRELOAD: Array<[string, string, string]> = [\n\t[\"db\", \"../../drizzle/drizzle.service.js\", \"DrizzleService\"],\n\t[\"logger\", \"../../logger/logger.service.js\", \"LoggerService\"],\n\t[\"cfg\", \"../../config/config.service.js\", \"ConfigService\"],\n\t[\"cache\", \"../../cache/cache.service.js\", \"CacheService\"],\n\t[\"events\", \"../../events/event.service.js\", \"EventService\"],\n];\n\nexport const replCommand: Command = {\n\tname: \"repl\",\n\taliases: [\"console\", \"shell\"],\n\tsummary: \"Start an interactive REPL with the app's services\",\n\tdescription:\n\t\t\"Boots the user's app module and drops into an interactive REPL. Useful for debugging, exploring data, and trying out queries. Multi-line input is supported. History is persisted to .nx-repl-history.\",\n\texamples: [\n\t\t\"nx repl\",\n\t\t\"nx repl --module app/app.module.ts\",\n\t\t\"nx repl --no-boot\",\n\t\t\"nx repl --history /tmp/nx-history\",\n\t],\n\tflags: [\n\t\t{\n\t\t\tname: \"module\",\n\t\t\tdescription:\n\t\t\t\t\"Path to the AppModule (default: app/app.module.ts).\",\n\t\t},\n\t\t{\n\t\t\tname: \"no-boot\",\n\t\t\tdescription: \"Skip booting the app — start a vanilla REPL.\",\n\t\t},\n\t\t{\n\t\t\tname: \"history\",\n\t\t\tdescription: \"History file path (default: .nx-repl-history).\",\n\t\t},\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst mod = ctx.flags[\"module\"] as string | undefined;\n\t\tconst noBoot = Boolean(ctx.flags[\"no-boot\"]);\n\t\tconst histPath = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"history\"] as string | undefined) ?? \".nx-repl-history\",\n\t\t);\n\n\t\tconst env: Record<string, unknown> = { console };\n\n\t\tif (!noBoot) {\n\t\t\tconst modPath = resolve(\n\t\t\t\tctx.cwd,\n\t\t\t\tmod ?? \"app/app.module.ts\",\n\t\t\t);\n\t\t\tif (!existsSync(modPath)) {\n\t\t\t\tlogger.error(`module not found: ${modPath}`);\n\t\t\t\tlogger.info(\n\t\t\t\t\t\"pass --module <path> or --no-boot to skip booting\",\n\t\t\t\t);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst modSpec = await import(modPath);\n\t\t\t\tconst AppModule =\n\t\t\t\t\tmodSpec.default ?? modSpec.AppModule;\n\t\t\t\tif (!AppModule) {\n\t\t\t\t\tlogger.error(\n\t\t\t\t\t\t`module at ${modPath} does not export AppModule as default or named export`,\n\t\t\t\t\t);\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\tconst { Application } = await import(\n\t\t\t\t\t\"@nexusts/core\"\n\t\t\t\t);\n\t\t\t\tconst app = new Application(AppModule);\n\t\t\t\tenv.app = app;\n\t\t\t\tenv.container = app.container;\n\n\t\t\t\tfor (const [name, path, className] of PRELOAD) {\n\t\t\t\t\tawait preloadService(\n\t\t\t\t\t\tenv,\n\t\t\t\t\t\tapp as { container: { resolve: (t: unknown) => unknown } },\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tlogger.info(`✓ Booted ${modPath}`);\n\t\t\t} catch (err) {\n\t\t\t\tlogger.error(`failed to boot: ${(err as Error).message}`);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tconsole.log(BANNER);\n\t\tif (noBoot) {\n\t\t\tconsole.log(\" (started with --no-boot; no app is loaded)\");\n\t\t}\n\n\t\tconst history = loadHistory(histPath);\n\n\t\tconst rl = readline.createInterface({\n\t\t\tinput: process.stdin,\n\t\t\toutput: process.stdout,\n\t\t\tprompt: \"❯ \",\n\t\t\tterminal: true,\n\t\t\thistory,\n\t\t\thistorySize: 1000,\n\t\t});\n\n\t\tconst saveHist = () => saveHistoryFile(histPath, (rl as unknown as { history?: string[] }).history ?? []);\n\t\trl.on(\"close\", () => {\n\t\t\tsaveHist();\n\t\t\tprocess.exit(0);\n\t\t});\n\t\tprocess.on(\"SIGINT\", () => {\n\t\t\tsaveHist();\n\t\t\tprocess.exit(0);\n\t\t});\n\t\tprocess.on(\"exit\", saveHist);\n\n\t\tlet buffer = \"\";\n\t\tconst vmContext = vm.createContext(env);\n\n\t\tconst evaluate = async (code: string): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tconst script = new vm.Script(code, { filename: \"<nx-repl>\" });\n\t\t\t\tconst result = script.runInContext(vmContext, {\n\t\t\t\t\tdisplayErrors: false,\n\t\t\t\t});\n\t\t\t\tif (result === undefined) return;\n\t\t\t\tif (\n\t\t\t\t\tresult &&\n\t\t\t\t\ttypeof (result as { then?: unknown }).then === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst v = await (result as Promise<unknown>);\n\t\t\t\t\tconsole.log(formatResult(v));\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(formatResult(result));\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(formatError(err as Error));\n\t\t\t}\n\t\t};\n\n\t\tconst handleDotCommand = async (line: string): Promise<boolean> => {\n\t\t\tconst cmd = line.trim();\n\t\t\tswitch (cmd) {\n\t\t\t\tcase \".help\":\n\t\t\t\t\tconsole.log(HELP);\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".exit\":\n\t\t\t\tcase \".quit\":\n\t\t\t\t\tsaveHist();\n\t\t\t\t\trl.close();\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".clear\":\n\t\t\t\t\tconsole.clear();\n\t\t\t\t\tconsole.log(BANNER);\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".services\": {\n\t\t\t\t\tconst services = listServices(env.container);\n\t\t\t\t\tif (services.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no services registered)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const s of services) console.log(` ${s}`);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".modules\": {\n\t\t\t\t\tconst mods = (env.app as { modules?: unknown[] } | undefined)\n\t\t\t\t\t\t?.modules as Array<{ name?: string; constructor?: { name?: string } }> | undefined;\n\t\t\t\t\tif (!mods || mods.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no modules)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const m of mods) {\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t` ${m.name ?? m.constructor?.name ?? \"(anon)\"}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".routes\": {\n\t\t\t\t\tconst app = env.app as\n\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\tserver?: {\n\t\t\t\t\t\t\t\t\tapp?: { routes?: Array<{ method?: string; path?: string }> };\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t }\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tconst routes = app?.server?.app?.routes ?? [];\n\t\t\t\t\tif (routes.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no routes registered)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const r of routes) {\n\t\t\t\t\t\t\tconst m = (r.method ?? \"?\").padEnd(7);\n\t\t\t\t\t\t\tconsole.log(` ${m} ${r.path ?? \"?\"}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".history\": {\n\t\t\t\t\tconst hist = (rl as unknown as { history?: string[] }).history ?? [];\n\t\t\t\t\tconst histArr = hist as string[];\n\t\t\t\t\thistArr.forEach((h: string, i: number) => {\n\t\t\t\t\t\tconsole.log(` ${(i + 1).toString().padStart(4)}: ${h}`);\n\t\t\t\t\t});\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".reset\": {\n\t\t\t\t\tfor (const k of Object.keys(env)) {\n\t\t\t\t\t\tif (k !== \"console\") delete env[k];\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(\" context reset\");\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.error(` unknown command: ${cmd}`);\n\t\t\t\t\tconsole.log(\" type .help for the list\");\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\n\t\trl.on(\"line\", async (line) => {\n\t\t\tconst trimmed = line.trim();\n\t\t\tif (trimmed.startsWith(\".\")) {\n\t\t\t\tawait handleDotCommand(trimmed);\n\t\t\t} else {\n\t\t\t\tbuffer += line + \"\\n\";\n\t\t\t\tif (isIncomplete(buffer)) {\n\t\t\t\t\trl.setPrompt(\"... \");\n\t\t\t\t\trl.prompt();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait evaluate(buffer);\n\t\t\t\tbuffer = \"\";\n\t\t\t\trl.setPrompt(\"❯ \");\n\t\t\t}\n\t\t\trl.prompt();\n\t\t});\n\n\t\trl.prompt();\n\n\t\t// Keep the process alive. readline drives the rest.\n\t\treturn new Promise(() => {\n\t\t\t/* never resolves */\n\t\t});\n\t},\n};\n\n/* ------------------------------------------------------------------ *\n * Helpers — exported for testing\n * ------------------------------------------------------------------ */\n\nexport async function preloadService(\n\tenv: Record<string, unknown>,\n\tapp: { container: { resolve: (t: unknown) => unknown } },\n\tname: string,\n\tpath: string,\n\tclassName: string,\n): Promise<void> {\n\ttry {\n\t\tconst mod = (await import(path)) as Record<string, unknown>;\n\t\tconst ServiceClass = mod[className] as\n\t\t\t| (abstract new (...args: never[]) => unknown) & {\n\t\t\t\t\tTOKEN?: unknown;\n\t\t\t\t\t[key: string]: unknown;\n\t\t\t }\n\t\t\t| undefined;\n\t\tif (!ServiceClass) return;\n\t\tconst Token =\n\t\t\tServiceClass.TOKEN ??\n\t\t\tServiceClass[`${className.toUpperCase()}_TOKEN`];\n\t\tif (!Token) return;\n\t\ttry {\n\t\t\tenv[name] = app.container.resolve(Token);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tenv[name] = app.container.resolve(ServiceClass);\n\t\t\t} catch {\n\t\t\t\t// not registered\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// module not installed — skip silently\n\t}\n}\n\nexport function listServices(\n\tcontainer: unknown,\n): string[] {\n\tif (!container) return [];\n\tconst c = container as {\n\t\tlistProviders?: () => Array<{ token?: { toString(): string } }>;\n\t};\n\tif (typeof c.listProviders !== \"function\") return [];\n\ttry {\n\t\treturn c\n\t\t\t.listProviders()\n\t\t\t.map((p) => p.token?.toString?.() ?? String(p.token));\n\t} catch {\n\t\treturn [];\n\t}\n}\n\nexport function isIncomplete(code: string): boolean {\n\t// Track string literals, line comments, block comments, and\n\t// bracket depth. Returns true if the code has any unclosed\n\t// bracket / string / comment.\n\tconst stack: string[] = [];\n\tlet inString: string | null = null;\n\tlet inComment: \"line\" | \"block\" | null = null;\n\tfor (let i = 0; i < code.length; i++) {\n\t\tconst c = code[i];\n\t\tconst next = code[i + 1];\n\t\tif (inComment === \"line\") {\n\t\t\tif (c === \"\\n\") inComment = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (inComment === \"block\") {\n\t\t\tif (c === \"*\" && next === \"/\") {\n\t\t\t\tinComment = null;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (inString) {\n\t\t\tif (c === \"\\\\\") {\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (c === inString) inString = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\" && next === \"/\") {\n\t\t\tinComment = \"line\";\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\" && next === \"*\") {\n\t\t\tinComment = \"block\";\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === '\"' || c === \"'\" || c === \"`\") {\n\t\t\tinString = c;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"{\" || c === \"[\" || c === \"(\") stack.push(c);\n\t\telse if (c === \"}\" || c === \"]\" || c === \")\") stack.pop();\n\t}\n\treturn stack.length > 0 || inString !== null || inComment === \"block\";\n}\n\nexport function formatResult(r: unknown): string {\n\tif (r === null) return \"null\";\n\tif (r === undefined) return \"undefined\";\n\tif (typeof r === \"string\") return r;\n\tif (\n\t\ttypeof r === \"number\" ||\n\t\ttypeof r === \"boolean\" ||\n\t\ttypeof r === \"bigint\"\n\t) return String(r);\n\tif (typeof r === \"function\") {\n\t\tconst fn = r as { name?: string };\n\t\treturn `[Function: ${fn.name || \"anonymous\"}]`;\n\t}\n\tif (typeof r === \"symbol\") return r.toString();\n\ttry {\n\t\treturn JSON.stringify(r, null, 2);\n\t} catch {\n\t\treturn Object.prototype.toString.call(r);\n\t}\n}\n\nexport function formatError(e: Error): string {\n\tif (e.name === \"SyntaxError\") return e.message;\n\treturn e.stack ? e.stack.split(\"\\n\").slice(0, 5).join(\"\\n\") : e.message;\n}\n\nfunction loadHistory(path: string): string[] {\n\tif (!existsSync(path)) return [];\n\ttry {\n\t\treturn readFileSync(path, \"utf-8\").split(\"\\n\").filter(Boolean);\n\t} catch {\n\t\treturn [];\n\t}\n}\n\nfunction saveHistoryFile(path: string, history: string[]): void {\n\ttry {\n\t\tconst dir = dirname(path);\n\t\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\t\twriteFileSync(path, history.slice(-1000).join(\"\\n\"));\n\t} catch {\n\t\t// best effort\n\t}\n}\n\nexport default replCommand;\n",
|
|
54
|
+
"/**\n * `nx repl` — interactive REPL with the app's services loaded.\n *\n * Boots the user's `AppModule` and drops you into a REPL with\n * `app`, `container`, `db`, `logger`, `cfg`, `cache`, and `events`\n * pre-loaded. Useful for debugging, exploring data, and trying\n * out queries without writing a throwaway script.\n *\n * Usage:\n * nx repl # default: ./app/app.module.ts\n * nx repl --module app/app.module.ts\n * nx repl --no-boot # vanilla REPL\n * nx repl --history /tmp/nx-history # custom history file\n *\n * Once inside the REPL:\n * ❯ await db.select().from(users).all()\n * ❯ logger.info(\"hello from REPL\")\n * ❯ .services\n * ❯ .routes\n * ❯ .help\n * ❯ .exit\n *\n * Multi-line input is detected by a bracket-matcher — an\n * expression with an unclosed `{}`, `[]`, or `()` keeps the\n * prompt in `...` continuation mode.\n *\n * History is persisted to `.nx-repl-history` (or the path\n * given by `--history`).\n */\n\nimport {\n\texistsSync,\n\tmkdirSync,\n\treadFileSync,\n\twriteFileSync,\n} from \"node:fs\";\nimport { dirname, resolve } from \"node:path\";\nimport * as readline from \"node:readline\";\nimport * as vm from \"node:vm\";\nimport { logger } from \"../core/index.js\";\nimport { VERSION } from \"../core/index.js\";\nimport type { Command, CommandContext } from \"../core/index.js\";\n\nconst BANNER = (() => {\n\tconst W = 49;\n\tconst dash = \"─\".repeat(W);\n\tconst ver = `v${VERSION}`;\n\tconst verLen = ver.length;\n\tconst TITLE = \"NexusTS REPL\";\n\tconst HINT = \"Type .help for available commands\";\n\tconst titleGap = \" \".repeat(W - 2 - TITLE.length - verLen - 1);\n\tconst hintGap = \" \".repeat(W - 2 - HINT.length);\n\tconst L = (s: string) => `│${s}│`;\n\treturn [\n\t\t`╭${dash}╮`,\n\t\tL(` ${TITLE}${titleGap}${ver} `),\n\t\tL(\" \".repeat(W)),\n\t\tL(` ${HINT}${hintGap}`),\n\t\t`╰${dash}╯`,\n\t].join(\"\\n\");\n})();\n\nconst HELP = `\nAvailable commands:\n .help Show this help\n .exit Exit the REPL (alias: .quit)\n .services List services in the DI container\n .modules List all modules\n .routes List all registered routes\n .history Show command history\n .clear Clear the screen\n .reset Reset the REPL context (clear all variables)\n\nPre-loaded variables (when an app is booted):\n app The Application instance\n container The DI container\n db DrizzleService (if registered)\n logger LoggerService (if registered)\n cfg ConfigService (if registered)\n cache CacheService (if registered)\n events EventService (if registered)\n\nExamples:\n > await db.select().from(users).all()\n > logger.info(\"hello from REPL\")\n > app.container.size\n`;\n\n/** Pair of (variable name, npm package name, export name). */\nconst PRELOAD: Array<[string, string, string]> = [\n\t[\"db\", \"@nexusts/drizzle\", \"DrizzleService\"],\n\t[\"logger\", \"@nexusts/logger\", \"Logger\"],\n\t[\"cfg\", \"@nexusts/config\", \"ConfigService\"],\n\t[\"cache\", \"@nexusts/cache\", \"CacheService\"],\n\t[\"events\", \"@nexusts/events\", \"EventService\"],\n];\n\nexport const replCommand: Command = {\n\tname: \"repl\",\n\taliases: [\"console\", \"shell\"],\n\tsummary: \"Start an interactive REPL with the app's services\",\n\tdescription:\n\t\t\"Boots the user's app module and drops into an interactive REPL. Useful for debugging, exploring data, and trying out queries. Multi-line input is supported. History is persisted to .nx-repl-history.\",\n\texamples: [\n\t\t\"nx repl\",\n\t\t\"nx repl --module app/app.module.ts\",\n\t\t\"nx repl --no-boot\",\n\t\t\"nx repl --history /tmp/nx-history\",\n\t],\n\tflags: [\n\t\t{\n\t\t\tname: \"module\",\n\t\t\tdescription:\n\t\t\t\t\"Path to the AppModule (default: app/app.module.ts).\",\n\t\t},\n\t\t{\n\t\t\tname: \"no-boot\",\n\t\t\tdescription: \"Skip booting the app — start a vanilla REPL.\",\n\t\t},\n\t\t{\n\t\t\tname: \"history\",\n\t\t\tdescription: \"History file path (default: .nx-repl-history).\",\n\t\t},\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst mod = ctx.flags[\"module\"] as string | undefined;\n\t\tconst noBoot = Boolean(ctx.flags[\"no-boot\"]);\n\t\tconst histPath = resolve(\n\t\t\tctx.cwd,\n\t\t\t(ctx.flags[\"history\"] as string | undefined) ?? \".nx-repl-history\",\n\t\t);\n\n\t\tconst env: Record<string, unknown> = { console };\n\n\t\tif (!noBoot) {\n\t\t\tconst modPath = resolve(\n\t\t\t\tctx.cwd,\n\t\t\t\tmod ?? \"app/app.module.ts\",\n\t\t\t);\n\t\t\tif (!existsSync(modPath)) {\n\t\t\t\tlogger.error(`module not found: ${modPath}`);\n\t\t\t\tlogger.info(\n\t\t\t\t\t\"pass --module <path> or --no-boot to skip booting\",\n\t\t\t\t);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst modSpec = await import(modPath);\n\t\t\t\tconst AppModule =\n\t\t\t\t\tmodSpec.default ?? modSpec.AppModule;\n\t\t\t\tif (!AppModule) {\n\t\t\t\t\tlogger.error(\n\t\t\t\t\t\t`module at ${modPath} does not export AppModule as default or named export`,\n\t\t\t\t\t);\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\tconst { Application } = await import(\n\t\t\t\t\t\"@nexusts/core\"\n\t\t\t\t);\n\t\t\t\tconst app = new Application(AppModule);\n\t\t\t\tenv.app = app;\n\t\t\t\tenv.container = app.container;\n\n\t\t\t\tfor (const [name, path, className] of PRELOAD) {\n\t\t\t\t\tawait preloadService(\n\t\t\t\t\t\tenv,\n\t\t\t\t\t\tapp as { container: { resolve: (t: unknown) => unknown } },\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tlogger.info(`✓ Booted ${modPath}`);\n\t\t\t} catch (err) {\n\t\t\t\tlogger.error(`failed to boot: ${(err as Error).message}`);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tconsole.log(BANNER);\n\t\tif (noBoot) {\n\t\t\tconsole.log(\" (started with --no-boot; no app is loaded)\");\n\t\t}\n\n\t\tconst history = loadHistory(histPath);\n\n\t\tconst rl = readline.createInterface({\n\t\t\tinput: process.stdin,\n\t\t\toutput: process.stdout,\n\t\t\tprompt: \"❯ \",\n\t\t\tterminal: true,\n\t\t\thistory,\n\t\t\thistorySize: 1000,\n\t\t});\n\n\t\tconst saveHist = () => saveHistoryFile(histPath, (rl as unknown as { history?: string[] }).history ?? []);\n\t\trl.on(\"close\", () => {\n\t\t\tsaveHist();\n\t\t\tprocess.exit(0);\n\t\t});\n\t\tprocess.on(\"SIGINT\", () => {\n\t\t\tsaveHist();\n\t\t\tprocess.exit(0);\n\t\t});\n\t\tprocess.on(\"exit\", saveHist);\n\n\t\tlet buffer = \"\";\n\t\tconst vmContext = vm.createContext(env);\n\n\t\tconst evaluate = async (code: string): Promise<void> => {\n\t\t\ttry {\n\t\t\t\tconst script = new vm.Script(code, { filename: \"<nx-repl>\" });\n\t\t\t\tconst result = script.runInContext(vmContext, {\n\t\t\t\t\tdisplayErrors: false,\n\t\t\t\t});\n\t\t\t\tif (result === undefined) return;\n\t\t\t\tif (\n\t\t\t\t\tresult &&\n\t\t\t\t\ttypeof (result as { then?: unknown }).then === \"function\"\n\t\t\t\t) {\n\t\t\t\t\tconst v = await (result as Promise<unknown>);\n\t\t\t\t\tconsole.log(formatResult(v));\n\t\t\t\t} else {\n\t\t\t\t\tconsole.log(formatResult(result));\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(formatError(err as Error));\n\t\t\t}\n\t\t};\n\n\t\tconst handleDotCommand = async (line: string): Promise<boolean> => {\n\t\t\tconst cmd = line.trim();\n\t\t\tswitch (cmd) {\n\t\t\t\tcase \".help\":\n\t\t\t\t\tconsole.log(HELP);\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".exit\":\n\t\t\t\tcase \".quit\":\n\t\t\t\t\tsaveHist();\n\t\t\t\t\trl.close();\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".clear\":\n\t\t\t\t\tconsole.clear();\n\t\t\t\t\tconsole.log(BANNER);\n\t\t\t\t\treturn true;\n\t\t\t\tcase \".services\": {\n\t\t\t\t\tconst services = listServices(env.container);\n\t\t\t\t\tif (services.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no services registered)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const s of services) console.log(` ${s}`);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".modules\": {\n\t\t\t\t\tconst mods = (env.app as { modules?: unknown[] } | undefined)\n\t\t\t\t\t\t?.modules as Array<{ name?: string; constructor?: { name?: string } }> | undefined;\n\t\t\t\t\tif (!mods || mods.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no modules)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const m of mods) {\n\t\t\t\t\t\t\tconsole.log(\n\t\t\t\t\t\t\t\t` ${m.name ?? m.constructor?.name ?? \"(anon)\"}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".routes\": {\n\t\t\t\t\tconst app = env.app as\n\t\t\t\t\t\t| {\n\t\t\t\t\t\t\t\tserver?: {\n\t\t\t\t\t\t\t\t\tapp?: { routes?: Array<{ method?: string; path?: string }> };\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t }\n\t\t\t\t\t\t| undefined;\n\t\t\t\t\tconst routes = app?.server?.app?.routes ?? [];\n\t\t\t\t\tif (routes.length === 0) {\n\t\t\t\t\t\tconsole.log(\" (no routes registered)\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const r of routes) {\n\t\t\t\t\t\t\tconst m = (r.method ?? \"?\").padEnd(7);\n\t\t\t\t\t\t\tconsole.log(` ${m} ${r.path ?? \"?\"}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".history\": {\n\t\t\t\t\tconst hist = (rl as unknown as { history?: string[] }).history ?? [];\n\t\t\t\t\tconst histArr = hist as string[];\n\t\t\t\t\thistArr.forEach((h: string, i: number) => {\n\t\t\t\t\t\tconsole.log(` ${(i + 1).toString().padStart(4)}: ${h}`);\n\t\t\t\t\t});\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tcase \".reset\": {\n\t\t\t\t\tfor (const k of Object.keys(env)) {\n\t\t\t\t\t\tif (k !== \"console\") delete env[k];\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(\" context reset\");\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tconsole.error(` unknown command: ${cmd}`);\n\t\t\t\t\tconsole.log(\" type .help for the list\");\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t};\n\n\t\trl.on(\"line\", async (line) => {\n\t\t\tconst trimmed = line.trim();\n\t\t\tif (trimmed.startsWith(\".\")) {\n\t\t\t\tawait handleDotCommand(trimmed);\n\t\t\t} else {\n\t\t\t\tbuffer += line + \"\\n\";\n\t\t\t\tif (isIncomplete(buffer)) {\n\t\t\t\t\trl.setPrompt(\"... \");\n\t\t\t\t\trl.prompt();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait evaluate(buffer);\n\t\t\t\tbuffer = \"\";\n\t\t\t\trl.setPrompt(\"❯ \");\n\t\t\t}\n\t\t\trl.prompt();\n\t\t});\n\n\t\trl.prompt();\n\n\t\t// Keep the process alive. readline drives the rest.\n\t\treturn new Promise(() => {\n\t\t\t/* never resolves */\n\t\t});\n\t},\n};\n\n/* ------------------------------------------------------------------ *\n * Helpers — exported for testing\n * ------------------------------------------------------------------ */\n\nexport async function preloadService(\n\tenv: Record<string, unknown>,\n\tapp: { container: { resolve: (t: unknown) => unknown } },\n\tname: string,\n\tpath: string,\n\tclassName: string,\n): Promise<void> {\n\ttry {\n\t\tconst mod = (await import(path)) as Record<string, unknown>;\n\t\tconst ServiceClass = mod[className] as\n\t\t\t| (abstract new (...args: never[]) => unknown) & {\n\t\t\t\t\tTOKEN?: unknown;\n\t\t\t\t\t[key: string]: unknown;\n\t\t\t }\n\t\t\t| undefined;\n\t\tif (!ServiceClass) {\n\t\t\tlogger.debug(`repl: ${className} not found in ${path}`);\n\t\t\treturn;\n\t\t}\n\t\tconst Token =\n\t\t\tServiceClass.TOKEN ??\n\t\t\tServiceClass[`${className.toUpperCase()}_TOKEN`];\n\t\tif (!Token) {\n\t\t\tlogger.debug(`repl: ${className}.TOKEN not found`);\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tenv[name] = app.container.resolve(Token);\n\t\t\tlogger.debug(`repl: loaded ${name} (${className})`);\n\t\t} catch {\n\t\t\ttry {\n\t\t\t\tenv[name] = app.container.resolve(ServiceClass);\n\t\t\t\tlogger.debug(`repl: loaded ${name} (${className}) via class`);\n\t\t\t} catch {\n\t\t\t\tlogger.debug(`repl: ${name} (${className}) not registered in container`);\n\t\t\t}\n\t\t}\n\t} catch {\n\t\tlogger.debug(`repl: ${path} not installed — skipping ${name}`);\n\t}\n}\n\nexport function listServices(\n\tcontainer: unknown,\n): string[] {\n\tif (!container) return [];\n\tconst c = container as {\n\t\tlistProviders?: () => Array<{ token?: { toString(): string } }>;\n\t};\n\tif (typeof c.listProviders !== \"function\") return [];\n\ttry {\n\t\treturn c\n\t\t\t.listProviders()\n\t\t\t.map((p) => p.token?.toString?.() ?? String(p.token));\n\t} catch {\n\t\treturn [];\n\t}\n}\n\nexport function isIncomplete(code: string): boolean {\n\t// Track string literals, line comments, block comments, and\n\t// bracket depth. Returns true if the code has any unclosed\n\t// bracket / string / comment.\n\tconst stack: string[] = [];\n\tlet inString: string | null = null;\n\tlet inComment: \"line\" | \"block\" | null = null;\n\tfor (let i = 0; i < code.length; i++) {\n\t\tconst c = code[i];\n\t\tconst next = code[i + 1];\n\t\tif (inComment === \"line\") {\n\t\t\tif (c === \"\\n\") inComment = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (inComment === \"block\") {\n\t\t\tif (c === \"*\" && next === \"/\") {\n\t\t\t\tinComment = null;\n\t\t\t\ti++;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tif (inString) {\n\t\t\tif (c === \"\\\\\") {\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (c === inString) inString = null;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\" && next === \"/\") {\n\t\t\tinComment = \"line\";\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"/\" && next === \"*\") {\n\t\t\tinComment = \"block\";\n\t\t\ti++;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === '\"' || c === \"'\" || c === \"`\") {\n\t\t\tinString = c;\n\t\t\tcontinue;\n\t\t}\n\t\tif (c === \"{\" || c === \"[\" || c === \"(\") stack.push(c);\n\t\telse if (c === \"}\" || c === \"]\" || c === \")\") stack.pop();\n\t}\n\treturn stack.length > 0 || inString !== null || inComment === \"block\";\n}\n\nexport function formatResult(r: unknown): string {\n\tif (r === null) return \"null\";\n\tif (r === undefined) return \"undefined\";\n\tif (typeof r === \"string\") return r;\n\tif (\n\t\ttypeof r === \"number\" ||\n\t\ttypeof r === \"boolean\" ||\n\t\ttypeof r === \"bigint\"\n\t) return String(r);\n\tif (typeof r === \"function\") {\n\t\tconst fn = r as { name?: string };\n\t\treturn `[Function: ${fn.name || \"anonymous\"}]`;\n\t}\n\tif (typeof r === \"symbol\") return r.toString();\n\ttry {\n\t\treturn JSON.stringify(r, null, 2);\n\t} catch {\n\t\treturn Object.prototype.toString.call(r);\n\t}\n}\n\nexport function formatError(e: Error): string {\n\tif (e.name === \"SyntaxError\") return e.message;\n\treturn e.stack ? e.stack.split(\"\\n\").slice(0, 5).join(\"\\n\") : e.message;\n}\n\nfunction loadHistory(path: string): string[] {\n\tif (!existsSync(path)) return [];\n\ttry {\n\t\treturn readFileSync(path, \"utf-8\").split(\"\\n\").filter(Boolean);\n\t} catch {\n\t\treturn [];\n\t}\n}\n\nfunction saveHistoryFile(path: string, history: string[]): void {\n\ttry {\n\t\tconst dir = dirname(path);\n\t\tif (!existsSync(dir)) mkdirSync(dir, { recursive: true });\n\t\twriteFileSync(path, history.slice(-1000).join(\"\\n\"));\n\t} catch {\n\t\t// best effort\n\t}\n}\n\nexport default replCommand;\n",
|
|
54
55
|
"/**\n * `nx route:list` — list every registered HTTP route.\n *\n * Walks the project's controllers (under paths.controllers) and reads\n * the `@Controller(prefix)` + `@Get/@Post/...` metadata via reflection.\n * For modules that don't use the decorator style, this command emits\n * an informational message instead of failing.\n */\n\nimport { readdirSync, statSync } from \"node:fs\";\nimport { resolve } from \"node:path\";\nimport type { Command, CommandContext } from \"../core/index.js\";\nimport { colors, logger } from \"../core/index.js\";\n\ninterface DiscoveredRoute {\n\tmethod: string;\n\tpath: string;\n\thandler: string;\n\tcontroller: string;\n}\n\nexport const routeListCommand: Command = {\n\tname: \"route:list\",\n\taliases: [\"routes\", \"route-list\"],\n\tsummary: \"List registered HTTP routes\",\n\tdescription:\n\t\t\"Reads route metadata from controllers and prints a table. Falls back to a scan message when controllers don't use the decorator style.\",\n\tflags: [\n\t\t{ name: \"format\", description: \"Output format: table (default) | json\" },\n\t],\n\tasync run(ctx: CommandContext): Promise<number> {\n\t\tconst controllersDir = resolve(ctx.cwd, ctx.config.paths.controllers);\n\n\t\ttry {\n\t\t\tstatSync(controllersDir);\n\t\t} catch {\n\t\t\tlogger.warn(`No controllers directory at ${controllersDir}.`);\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst files = readdirSync(controllersDir).filter((f) => f.endsWith(\".ts\"));\n\t\tif (files.length === 0) {\n\t\t\tlogger.info(\"No controllers found.\");\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst routes: DiscoveredRoute[] = [];\n\n\t\tfor (const file of files) {\n\t\t\tconst fullPath = resolve(controllersDir, file);\n\t\t\ttry {\n\t\t\t\tconst mod: any = await import(`${fullPath}?t=${Date.now()}`);\n\t\t\t\tfor (const exportName of Object.keys(mod)) {\n\t\t\t\t\tconst cls = mod[exportName];\n\t\t\t\t\tif (typeof cls !== \"function\") continue;\n\n\t\t\t\t\tconst prefix =\n\t\t\t\t\t\tReflect.getMetadata(\"nexus:controller:prefix\", cls) ?? \"\";\n\t\t\t\t\tconst routeList = Reflect.getMetadata(\"nexus:routes\", cls) ?? [];\n\n\t\t\t\t\tfor (const r of routeList) {\n\t\t\t\t\t\troutes.push({\n\t\t\t\t\t\t\tmethod: String(r.method).toUpperCase(),\n\t\t\t\t\t\t\tpath: joinPath(prefix, r.path),\n\t\t\t\t\t\t\thandler: String(r.propertyKey),\n\t\t\t\t\t\t\tcontroller: cls.name || exportName,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err: any) {\n\t\t\t\tlogger.warn(`could not parse ${file}: ${err.message ?? err}`);\n\t\t\t}\n\t\t}\n\n\t\tif (routes.length === 0) {\n\t\t\tlogger.info(\n\t\t\t\t\"No routes discovered via metadata. \" +\n\t\t\t\t\t\"This usually means the controllers use the Adonis or functional style — see nx.config.ts:routing.\",\n\t\t\t);\n\t\t\treturn 0;\n\t\t}\n\n\t\tconst format = (ctx.flags[\"format\"] as string | undefined) ?? \"table\";\n\t\tif (format === \"json\") {\n\t\t\tconsole.log(JSON.stringify(routes, null, 2));\n\t\t\treturn 0;\n\t\t}\n\n\t\troutes.sort((a, b) => a.path.localeCompare(b.path));\n\t\tlogger.heading(`Routes (${routes.length})`);\n\t\tconst methodColors: Record<string, (s: string) => string> = {\n\t\t\tGET: colors.cyan,\n\t\t\tPOST: colors.green,\n\t\t\tPUT: colors.yellow,\n\t\t\tPATCH: colors.yellow,\n\t\t\tDELETE: colors.red,\n\t\t\tOPTIONS: colors.gray,\n\t\t\tHEAD: colors.gray,\n\t\t};\n\t\tconst pathWidth = Math.max(...routes.map((r) => r.path.length));\n\t\tconst methodWidth = Math.max(...routes.map((r) => r.method.length));\n\t\tfor (const r of routes) {\n\t\t\tconst colorize = methodColors[r.method] ?? colors.reset;\n\t\t\tconst m = colorize(r.method.padEnd(methodWidth));\n\t\t\tconst p = colors.bold(r.path.padEnd(pathWidth));\n\t\t\tconst c = colors.dim(`${r.controller}.${r.handler}`);\n\t\t\tconsole.log(` ${m} ${p} ${c}`);\n\t\t}\n\t\tlogger.blank();\n\t\treturn 0;\n\t},\n};\n\nfunction joinPath(prefix: string, sub: string): string {\n\tconst a = prefix.endsWith(\"/\") ? prefix.slice(0, -1) : prefix;\n\tconst b = sub.startsWith(\"/\") ? sub : `/${sub}`;\n\treturn `${a}${b}` || \"/\";\n}\n\nexport default routeListCommand;\n",
|
|
55
56
|
"/**\n * CLI command registry. Imported by `src/cli/index.ts`.\n *\n * Each command is a `Command` object (see `core/index.ts`). The order\n * here is the order commands appear in `nx help`.\n */\n\nimport type { Command } from \"../core/index.js\";\nimport info from \"./info.js\";\nimport init from \"./init.js\";\nimport makeAuth from \"./make-auth.js\";\nimport makeController from \"./make-controller.js\";\nimport makeCrud from \"./make-crud.js\";\nimport makeListener from \"./make-listener.js\";\nimport makeMiddleware from \"./make-middleware.js\";\nimport makeMigration from \"./make-migration.js\";\nimport makeModel from \"./make-model.js\";\nimport makeModule from \"./make-module.js\";\nimport makeQueue from \"./make-queue.js\";\nimport makeSchedule from \"./make-schedule.js\";\nimport makeService from \"./make-service.js\";\nimport makeSession from \"./make-session.js\";\nimport makeValidator from \"./make-validator.js\";\nimport dbMigrate from \"./db-migrate.js\";\nimport dbGenerate from \"./db-generate.js\";\nimport dbSeed from \"./db-seed.js\";\nimport newCmd from \"./new.js\";\nimport configCmd from \"./config.js\";\nimport repl from \"./repl.js\";\nimport routeList from \"./route-list.js\";\n\nexport const commands: Command[] = [\n\tnewCmd,\n\tinit,\n\tconfigCmd,\n\tmakeCrud,\n\tmakeController,\n\tmakeService,\n\tmakeModule,\n\tmakeModel,\n\tmakeMigration,\n\tmakeMiddleware,\n\tmakeValidator,\n\tmakeAuth,\n\tmakeQueue,\n\tmakeSchedule,\n\tmakeListener,\n\tmakeSession,\n\tdbMigrate,\n\tdbGenerate,\n\tdbSeed,\n\trouteList,\n\tinfo,\n\trepl,\n];\n\n/** Look up a command by primary name OR by any alias. */\nexport function findCommand(name: string): Command | undefined {\n\treturn commands.find(\n\t\t(c) => c.name === name || (c.aliases ?? []).includes(name),\n\t);\n}\n",
|
|
56
57
|
"#!/usr/bin/env bun\n\n/**\n * `nx` — the Nexus CLI entry point.\n *\n * Invocation:\n * bunx nx <command> [args...]\n * bunx nx help\n * bunx nx help <command>\n *\n * Resembles Adonis ACE / Rails generators:\n * nx make:controller User\n * nx make:crud Post --no-views\n * nx make:migration create_users_table --columns \"name:text,email:text\"\n * nx info\n * nx route:list\n * nx init --style nest --view inertia --orm drizzle\n *\n * The CLI loads `nx.config.ts` (or `nx.config.js` / `.nxrc.json`) and\n * passes the resolved config + parsed flags to each command.\n */\n\nimport { commands, findCommand } from \"./commands/index.js\";\nimport { loadConfig } from \"./core/config.js\";\nimport { colors, flagBool, logger, parseArgs } from \"./core/index.js\";\n\nasync function main(): Promise<number> {\n\tconst parsed = parseArgs(process.argv.slice(2));\n\tconst verbose = flagBool(parsed.flags, \"verbose\", false);\n\tlogger.setVerbose(verbose);\n\n\t// Top-level flags.\n\tif (parsed.flags[\"version\"] === true) {\n\t\tconsole.log(PKG_VERSION);\n\t\treturn 0;\n\t}\n\n\tif (parsed.flags[\"help\"] === true || parsed.command === \"help\") {\n\t\treturn renderHelp(parsed.positional[0]);\n\t}\n\n\tconst command = parsed.command ? findCommand(parsed.command) : undefined;\n\tif (!command) {\n\t\tif (parsed.command) {\n\t\t\tlogger.error(`Unknown command: ${parsed.command}`);\n\t\t\tlogger.info(`Run \\`nx help\\` for a list of commands.`);\n\t\t\treturn 1;\n\t\t}\n\t\treturn renderHelp();\n\t}\n\n\tconst cwd = process.cwd();\n\tconst config = await loadConfig(cwd);\n\n\treturn command.run({\n\t\tcwd,\n\t\tconfig,\n\t\tpositional: parsed.positional,\n\t\tflags: parsed.flags,\n\t});\n}\n\nfunction renderHelp(commandName?: string): number {\n\tif (commandName) {\n\t\tconst cmd = findCommand(commandName);\n\t\tif (!cmd) {\n\t\t\tlogger.error(`Unknown command: ${commandName}`);\n\t\t\treturn 1;\n\t\t}\n\t\trenderCommandHelp(cmd);\n\t\treturn 0;\n\t}\n\n\tlogger.heading(\"nx — Nexus CLI\");\n\tconsole.log(`\n ${colors.dim(\"Adonis ACE-style command runner for the NexusTS framework.\")}\n\n${colors.bold(\"Usage\")}\n nx <command> [args...]\n\n${colors.bold(\"Commands\")}\n`);\n\n\tconst nameWidth = Math.max(...commands.map((c) => c.name.length));\n\tfor (const c of commands) {\n\t\tconst padded = c.name.padEnd(nameWidth);\n\t\tconst aliasStr = c.aliases?.length\n\t\t\t? ` ${colors.dim(`(${c.aliases.join(\", \")})`)}`\n\t\t\t: \"\";\n\t\tconsole.log(` ${colors.cyan(padded)}${aliasStr} ${c.summary}`);\n\t}\n\n\tconsole.log(`\n${colors.bold(\"Global flags\")}\n --help, -h Show help (or \\`nx help <command>\\`)\n --version, -v Print the CLI version\n --verbose Verbose output\n --no-color Disable ANSI color output\n\n${colors.bold(\"Examples\")}\n ${colors.dim(\"nx new my-app\")}\n ${colors.dim(\"nx init --style nest --view inertia --orm drizzle\")}\n ${colors.dim(\"nx make:crud Post\")}\n ${colors.dim(\"nx make:controller User\")}\n ${colors.dim(\"nx make:migration create_users_table\")}\n ${colors.dim(\"nx info\")}\n ${colors.dim(\"nx route:list\")}\n`);\n\treturn 0;\n}\n\nfunction renderCommandHelp(cmd: import(\"./core/index.js\").Command): void {\n\tlogger.heading(cmd.name);\n\tif (cmd.aliases?.length) {\n\t\tconsole.log(` ${colors.dim(\"aliases:\")} ${cmd.aliases.join(\", \")}`);\n\t}\n\tif (cmd.description) console.log(`\\n ${cmd.description}\\n`);\n\n\tif (cmd.flags?.length) {\n\t\tconsole.log(colors.bold(\"\\nFlags\"));\n\t\tfor (const f of cmd.flags) {\n\t\t\tconst short = f.short ? `, -${f.short}` : \"\";\n\t\t\tconst def =\n\t\t\t\tf.default !== undefined\n\t\t\t\t\t? ` ${colors.dim(`(default: ${String(f.default)})`)}`\n\t\t\t\t\t: \"\";\n\t\t\tconsole.log(` --${f.name}${short.padEnd(6)} ${f.description}${def}`);\n\t\t}\n\t}\n\n\tif (cmd.examples?.length) {\n\t\tconsole.log(colors.bold(\"\\nExamples\"));\n\t\tfor (const ex of cmd.examples) {\n\t\t\tconsole.log(` ${colors.cyan(ex)}`);\n\t\t}\n\t}\n\tconsole.log();\n}\n\nconst PKG_VERSION = \"0.1.0\";\n\nmain()\n\t.then((code) => process.exit(code))\n\t.catch((err) => {\n\t\tlogger.error(err?.message ?? String(err));\n\t\tif (process.env[\"NX_DEBUG\"] === \"1\" && err?.stack) {\n\t\t\tconsole.error(err.stack);\n\t\t}\n\t\tprocess.exit(1);\n\t});\n"
|
|
57
58
|
],
|
|
58
|
-
"mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiDb,UAAU;;;ACjDZ,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoCb,UAAU;;;AChCZ,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBb,UAAU;;;AC1BZ,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKf,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCf,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcb,UAAU;;;ACfZ,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
|
|
59
|
-
"debugId": "
|
|
59
|
+
"mappings": "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",
|
|
60
|
+
"debugId": "9D68E94AB6C5D92664756E2164756E21",
|
|
60
61
|
"names": []
|
|
61
62
|
}
|