phos 1.0.0
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/.eslintignore +3 -0
- package/AGENTS.md +172 -0
- package/CHANGELOG.md +184 -0
- package/LICENSE +21 -0
- package/README.md +279 -0
- package/bun.lock +125 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +255 -0
- package/dist/cli.js.map +1 -0
- package/dist/generators/backends/elysia.d.ts +3 -0
- package/dist/generators/backends/elysia.d.ts.map +1 -0
- package/dist/generators/backends/elysia.js +135 -0
- package/dist/generators/backends/elysia.js.map +1 -0
- package/dist/generators/backends/fastapi.d.ts +3 -0
- package/dist/generators/backends/fastapi.d.ts.map +1 -0
- package/dist/generators/backends/fastapi.js +158 -0
- package/dist/generators/backends/fastapi.js.map +1 -0
- package/dist/generators/frontends/astro.d.ts +3 -0
- package/dist/generators/frontends/astro.d.ts.map +1 -0
- package/dist/generators/frontends/astro.js +303 -0
- package/dist/generators/frontends/astro.js.map +1 -0
- package/dist/generators/frontends/nextjs.d.ts +3 -0
- package/dist/generators/frontends/nextjs.d.ts.map +1 -0
- package/dist/generators/frontends/nextjs.js +274 -0
- package/dist/generators/frontends/nextjs.js.map +1 -0
- package/dist/generators/frontends/svelte.d.ts +3 -0
- package/dist/generators/frontends/svelte.d.ts.map +1 -0
- package/dist/generators/frontends/svelte.js +324 -0
- package/dist/generators/frontends/svelte.js.map +1 -0
- package/dist/generators/monorepo.d.ts +3 -0
- package/dist/generators/monorepo.d.ts.map +1 -0
- package/dist/generators/monorepo.js +320 -0
- package/dist/generators/monorepo.js.map +1 -0
- package/dist/generators/single.d.ts +3 -0
- package/dist/generators/single.d.ts.map +1 -0
- package/dist/generators/single.js +229 -0
- package/dist/generators/single.js.map +1 -0
- package/dist/utils/helpers.d.ts +38 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +109 -0
- package/dist/utils/helpers.js.map +1 -0
- package/package.json +46 -0
- package/src/cli.ts +500 -0
- package/src/generators/backends/elysia.ts +45 -0
- package/src/generators/backends/fastapi.ts +71 -0
- package/src/generators/frontends/astro.ts +37 -0
- package/src/generators/frontends/nextjs.ts +37 -0
- package/src/generators/frontends/svelte.ts +38 -0
- package/src/generators/monorepo.ts +529 -0
- package/src/generators/single.ts +465 -0
- package/src/templates/backend/elysia/README.md +15 -0
- package/src/templates/backend/elysia/package.json +26 -0
- package/src/templates/backend/elysia/src/api/user_api.ts +0 -0
- package/src/templates/backend/elysia/src/db.ts +17 -0
- package/src/templates/backend/elysia/src/index.ts +68 -0
- package/src/templates/backend/elysia/src/service/user_service.ts +0 -0
- package/src/templates/backend/elysia/src/sql/user_sql.ts +0 -0
- package/src/templates/backend/elysia/src/types/user_type.ts +0 -0
- package/src/templates/backend/elysia/tsconfig.json +103 -0
- package/src/templates/backend/fastapi/.pylintrc +2 -0
- package/src/templates/backend/fastapi/README.md +33 -0
- package/src/templates/backend/fastapi/pyproject.toml +9 -0
- package/src/templates/backend/fastapi/pyproject_prettier.toml +20 -0
- package/src/templates/backend/fastapi/requirements.txt +15 -0
- package/src/templates/backend/fastapi/setup.sh +23 -0
- package/src/templates/backend/fastapi/src/api/user_api.py +0 -0
- package/src/templates/backend/fastapi/src/db.py +31 -0
- package/src/templates/backend/fastapi/src/main.py +53 -0
- package/src/templates/backend/fastapi/src/service/user_service.py +0 -0
- package/src/templates/backend/fastapi/src/sql/user_sql.py +0 -0
- package/src/templates/backend/fastapi/src/types/user_type.py +0 -0
- package/src/templates/frontend/astro/README.md +46 -0
- package/src/templates/frontend/astro/astro.config.mjs +5 -0
- package/src/templates/frontend/astro/package.json +28 -0
- package/src/templates/frontend/astro/public/favicon.ico +0 -0
- package/src/templates/frontend/astro/public/favicon.svg +9 -0
- package/src/templates/frontend/astro/src/assets/astro.svg +1 -0
- package/src/templates/frontend/astro/src/assets/background.svg +1 -0
- package/src/templates/frontend/astro/src/components/Welcome.astro +5 -0
- package/src/templates/frontend/astro/src/layouts/Layout.astro +23 -0
- package/src/templates/frontend/astro/src/pages/index.astro +8 -0
- package/src/templates/frontend/astro/tsconfig.json +5 -0
- package/src/templates/frontend/nextjs/README.md +36 -0
- package/src/templates/frontend/nextjs/app/favicon.ico +0 -0
- package/src/templates/frontend/nextjs/app/globals.css +26 -0
- package/src/templates/frontend/nextjs/app/layout.tsx +34 -0
- package/src/templates/frontend/nextjs/app/page.tsx +16 -0
- package/src/templates/frontend/nextjs/eslint.config.mjs +18 -0
- package/src/templates/frontend/nextjs/next.config.ts +7 -0
- package/src/templates/frontend/nextjs/package.json +28 -0
- package/src/templates/frontend/nextjs/postcss.config.mjs +7 -0
- package/src/templates/frontend/nextjs/public/file.svg +1 -0
- package/src/templates/frontend/nextjs/public/globe.svg +1 -0
- package/src/templates/frontend/nextjs/public/next.svg +1 -0
- package/src/templates/frontend/nextjs/public/vercel.svg +1 -0
- package/src/templates/frontend/nextjs/public/window.svg +1 -0
- package/src/templates/frontend/nextjs/tsconfig.json +34 -0
- package/src/templates/frontend/svelte/.prettierignore +9 -0
- package/src/templates/frontend/svelte/.prettierrc +19 -0
- package/src/templates/frontend/svelte/README.md +42 -0
- package/src/templates/frontend/svelte/eslint.config.js +39 -0
- package/src/templates/frontend/svelte/package.json +39 -0
- package/src/templates/frontend/svelte/src/app.d.ts +13 -0
- package/src/templates/frontend/svelte/src/app.html +11 -0
- package/src/templates/frontend/svelte/src/lib/assets/favicon.svg +1 -0
- package/src/templates/frontend/svelte/src/lib/index.ts +1 -0
- package/src/templates/frontend/svelte/src/routes/+layout.svelte +9 -0
- package/src/templates/frontend/svelte/src/routes/+page.svelte +2 -0
- package/src/templates/frontend/svelte/src/routes/layout.css +2 -0
- package/src/templates/frontend/svelte/static/robots.txt +3 -0
- package/src/templates/frontend/svelte/svelte.config.js +13 -0
- package/src/templates/frontend/svelte/tsconfig.json +20 -0
- package/src/templates/frontend/svelte/vite.config.ts +5 -0
- package/src/utils/helpers.ts +198 -0
- package/tsconfig.json +24 -0
package/bun.lock
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 1,
|
|
3
|
+
"configVersion": 1,
|
|
4
|
+
"workspaces": {
|
|
5
|
+
"": {
|
|
6
|
+
"name": "phos",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@clack/prompts": "^1.0.0",
|
|
9
|
+
"commander": "^14.0.2",
|
|
10
|
+
"fs-extra": "^11.3.3",
|
|
11
|
+
"handlebars": "^4.7.8",
|
|
12
|
+
"picocolors": "^1.1.1",
|
|
13
|
+
},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@types/fs-extra": "^11.0.4",
|
|
16
|
+
"@types/node": "^20.11.0",
|
|
17
|
+
"tsx": "^4.19.2",
|
|
18
|
+
"typescript": "^5.7.3",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
"packages": {
|
|
23
|
+
"@clack/core": ["@clack/core@1.0.0", "", { "dependencies": { "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-Orf9Ltr5NeiEuVJS8Rk2XTw3IxNC2Bic3ash7GgYeA8LJ/zmSNpSQ/m5UAhe03lA6KFgklzZ5KTHs4OAMA/SAQ=="],
|
|
24
|
+
|
|
25
|
+
"@clack/prompts": ["@clack/prompts@1.0.0", "", { "dependencies": { "@clack/core": "1.0.0", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" } }, "sha512-rWPXg9UaCFqErJVQ+MecOaWsozjaxol4yjnmYcGNipAWzdaWa2x+VJmKfGq7L0APwBohQOYdHC+9RO4qRXej+A=="],
|
|
26
|
+
|
|
27
|
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="],
|
|
28
|
+
|
|
29
|
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="],
|
|
30
|
+
|
|
31
|
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="],
|
|
32
|
+
|
|
33
|
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="],
|
|
34
|
+
|
|
35
|
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="],
|
|
36
|
+
|
|
37
|
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="],
|
|
38
|
+
|
|
39
|
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="],
|
|
40
|
+
|
|
41
|
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="],
|
|
42
|
+
|
|
43
|
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="],
|
|
44
|
+
|
|
45
|
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="],
|
|
46
|
+
|
|
47
|
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="],
|
|
48
|
+
|
|
49
|
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="],
|
|
50
|
+
|
|
51
|
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="],
|
|
52
|
+
|
|
53
|
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="],
|
|
54
|
+
|
|
55
|
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="],
|
|
56
|
+
|
|
57
|
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="],
|
|
58
|
+
|
|
59
|
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="],
|
|
60
|
+
|
|
61
|
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="],
|
|
62
|
+
|
|
63
|
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="],
|
|
64
|
+
|
|
65
|
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="],
|
|
66
|
+
|
|
67
|
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="],
|
|
68
|
+
|
|
69
|
+
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="],
|
|
70
|
+
|
|
71
|
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="],
|
|
72
|
+
|
|
73
|
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="],
|
|
74
|
+
|
|
75
|
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="],
|
|
76
|
+
|
|
77
|
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="],
|
|
78
|
+
|
|
79
|
+
"@types/fs-extra": ["@types/fs-extra@11.0.4", "", { "dependencies": { "@types/jsonfile": "*", "@types/node": "*" } }, "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ=="],
|
|
80
|
+
|
|
81
|
+
"@types/jsonfile": ["@types/jsonfile@6.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ=="],
|
|
82
|
+
|
|
83
|
+
"@types/node": ["@types/node@20.19.33", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw=="],
|
|
84
|
+
|
|
85
|
+
"commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="],
|
|
86
|
+
|
|
87
|
+
"esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="],
|
|
88
|
+
|
|
89
|
+
"fs-extra": ["fs-extra@11.3.3", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg=="],
|
|
90
|
+
|
|
91
|
+
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
|
92
|
+
|
|
93
|
+
"get-tsconfig": ["get-tsconfig@4.13.6", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw=="],
|
|
94
|
+
|
|
95
|
+
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
|
|
96
|
+
|
|
97
|
+
"handlebars": ["handlebars@4.7.8", "", { "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "optionalDependencies": { "uglify-js": "^3.1.4" }, "bin": { "handlebars": "bin/handlebars" } }, "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ=="],
|
|
98
|
+
|
|
99
|
+
"jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="],
|
|
100
|
+
|
|
101
|
+
"minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="],
|
|
102
|
+
|
|
103
|
+
"neo-async": ["neo-async@2.6.2", "", {}, "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="],
|
|
104
|
+
|
|
105
|
+
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
|
106
|
+
|
|
107
|
+
"resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
|
|
108
|
+
|
|
109
|
+
"sisteransi": ["sisteransi@1.0.5", "", {}, "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="],
|
|
110
|
+
|
|
111
|
+
"source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
|
|
112
|
+
|
|
113
|
+
"tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="],
|
|
114
|
+
|
|
115
|
+
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
116
|
+
|
|
117
|
+
"uglify-js": ["uglify-js@3.19.3", "", { "bin": { "uglifyjs": "bin/uglifyjs" } }, "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ=="],
|
|
118
|
+
|
|
119
|
+
"undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
|
|
120
|
+
|
|
121
|
+
"universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
|
|
122
|
+
|
|
123
|
+
"wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="],
|
|
124
|
+
}
|
|
125
|
+
}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { intro, outro, select, text, confirm, note } from "@clack/prompts";
|
|
4
|
+
import pc from "picocolors";
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { resolve } from "path";
|
|
7
|
+
import { generateMonorepo } from "@/generators/monorepo.js";
|
|
8
|
+
import { generateSingle } from "@/generators/single.js";
|
|
9
|
+
const program = new Command();
|
|
10
|
+
program.name("phos").description("Full-stack interactive project generator CLI").version("0.1.0");
|
|
11
|
+
program
|
|
12
|
+
.command("create")
|
|
13
|
+
.description("Create a new project")
|
|
14
|
+
.action(async () => {
|
|
15
|
+
intro(pc.bgCyan(pc.black(" Phos ")));
|
|
16
|
+
const projectName = await text({
|
|
17
|
+
message: "Project name",
|
|
18
|
+
placeholder: "my-awesome-app",
|
|
19
|
+
validate: (value) => {
|
|
20
|
+
if (!value)
|
|
21
|
+
return "Project name is required";
|
|
22
|
+
if (!/^[a-z0-9-]+$/.test(value)) {
|
|
23
|
+
return "Project name must be lowercase letters, numbers, and hyphens only";
|
|
24
|
+
}
|
|
25
|
+
const projectPath = resolve(process.cwd(), value);
|
|
26
|
+
if (existsSync(projectPath)) {
|
|
27
|
+
return `Directory "${value}" already exists`;
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
if (typeof projectName !== "string" || !projectName) {
|
|
33
|
+
outro(pc.red("Project creation cancelled"));
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
const projectType = await select({
|
|
37
|
+
message: "Select project type",
|
|
38
|
+
options: [
|
|
39
|
+
{ value: "monorepo", label: "Monorepo" },
|
|
40
|
+
{ value: "single", label: "Single repo" },
|
|
41
|
+
],
|
|
42
|
+
});
|
|
43
|
+
if (typeof projectType !== "string") {
|
|
44
|
+
outro(pc.red("Project creation cancelled"));
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
const projectTypeTyped = projectType;
|
|
48
|
+
const backendFramework = await select({
|
|
49
|
+
message: "Select Backend Framework",
|
|
50
|
+
options: [
|
|
51
|
+
{ value: "elysia", label: "Elysia" },
|
|
52
|
+
{ value: "fastapi", label: "FastAPI" },
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
if (typeof backendFramework !== "string") {
|
|
56
|
+
outro(pc.red("Project creation cancelled"));
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
const backendPackageManager = await select({
|
|
60
|
+
message: "Select Backend package manager",
|
|
61
|
+
options: [
|
|
62
|
+
{ value: "npm", label: "npm" },
|
|
63
|
+
{ value: "yarn", label: "yarn" },
|
|
64
|
+
{ value: "pnpm", label: "pnpm" },
|
|
65
|
+
{ value: "bun", label: "bun" },
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
if (typeof backendPackageManager !== "string") {
|
|
69
|
+
outro(pc.red("Project creation cancelled"));
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
const backendUseTypeScript = await confirm({
|
|
73
|
+
message: "Backend: Use TypeScript?",
|
|
74
|
+
initialValue: false,
|
|
75
|
+
});
|
|
76
|
+
if (typeof backendUseTypeScript !== "boolean") {
|
|
77
|
+
outro(pc.red("Project creation cancelled"));
|
|
78
|
+
process.exit(0);
|
|
79
|
+
}
|
|
80
|
+
const backendAddESLint = await confirm({
|
|
81
|
+
message: "Backend: Add ESLint?",
|
|
82
|
+
initialValue: false,
|
|
83
|
+
});
|
|
84
|
+
if (typeof backendAddESLint !== "boolean") {
|
|
85
|
+
outro(pc.red("Project creation cancelled"));
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
const backendAddPrettier = await confirm({
|
|
89
|
+
message: "Backend: Add Prettier?",
|
|
90
|
+
initialValue: false,
|
|
91
|
+
});
|
|
92
|
+
if (typeof backendAddPrettier !== "boolean") {
|
|
93
|
+
outro(pc.red("Project creation cancelled"));
|
|
94
|
+
process.exit(0);
|
|
95
|
+
}
|
|
96
|
+
const frontendFramework = await select({
|
|
97
|
+
message: "Select Frontend Framework",
|
|
98
|
+
options: [
|
|
99
|
+
{ value: "astro", label: "Astro" },
|
|
100
|
+
{ value: "svelte", label: "Svelte" },
|
|
101
|
+
{ value: "nextjs", label: "NextJS" },
|
|
102
|
+
],
|
|
103
|
+
});
|
|
104
|
+
if (typeof frontendFramework !== "string") {
|
|
105
|
+
outro(pc.red("Project creation cancelled"));
|
|
106
|
+
process.exit(0);
|
|
107
|
+
}
|
|
108
|
+
const frontendPackageManager = await select({
|
|
109
|
+
message: "Select Frontend package manager",
|
|
110
|
+
options: [
|
|
111
|
+
{ value: "npm", label: "npm" },
|
|
112
|
+
{ value: "yarn", label: "yarn" },
|
|
113
|
+
{ value: "pnpm", label: "pnpm" },
|
|
114
|
+
{ value: "bun", label: "bun" },
|
|
115
|
+
],
|
|
116
|
+
});
|
|
117
|
+
if (typeof frontendPackageManager !== "string") {
|
|
118
|
+
outro(pc.red("Project creation cancelled"));
|
|
119
|
+
process.exit(0);
|
|
120
|
+
}
|
|
121
|
+
const frontendUseTypeScript = await confirm({
|
|
122
|
+
message: "Frontend: Use TypeScript?",
|
|
123
|
+
initialValue: false,
|
|
124
|
+
});
|
|
125
|
+
if (typeof frontendUseTypeScript !== "boolean") {
|
|
126
|
+
outro(pc.red("Project creation cancelled"));
|
|
127
|
+
process.exit(0);
|
|
128
|
+
}
|
|
129
|
+
const frontendAddESLint = await confirm({
|
|
130
|
+
message: "Frontend: Add ESLint?",
|
|
131
|
+
initialValue: false,
|
|
132
|
+
});
|
|
133
|
+
if (typeof frontendAddESLint !== "boolean") {
|
|
134
|
+
outro(pc.red("Project creation cancelled"));
|
|
135
|
+
process.exit(0);
|
|
136
|
+
}
|
|
137
|
+
const frontendAddPrettier = await confirm({
|
|
138
|
+
message: "Frontend: Add Prettier?",
|
|
139
|
+
initialValue: false,
|
|
140
|
+
});
|
|
141
|
+
if (typeof frontendAddPrettier !== "boolean") {
|
|
142
|
+
outro(pc.red("Project creation cancelled"));
|
|
143
|
+
process.exit(0);
|
|
144
|
+
}
|
|
145
|
+
const cssFramework = await select({
|
|
146
|
+
message: "Select CSS Framework",
|
|
147
|
+
options: [
|
|
148
|
+
{ value: "none", label: "No" },
|
|
149
|
+
{ value: "tailwind", label: "Tailwind CSS" },
|
|
150
|
+
{ value: "scss", label: "SCSS" },
|
|
151
|
+
{ value: "css-modules", label: "CSS Modules" },
|
|
152
|
+
],
|
|
153
|
+
});
|
|
154
|
+
if (typeof cssFramework !== "string") {
|
|
155
|
+
outro(pc.red("Project creation cancelled"));
|
|
156
|
+
process.exit(0);
|
|
157
|
+
}
|
|
158
|
+
const uiComponents = await select({
|
|
159
|
+
message: "Add UI Components?",
|
|
160
|
+
options: [
|
|
161
|
+
{ value: "none", label: "No" },
|
|
162
|
+
{ value: "shadcn", label: "shadcn/ui" },
|
|
163
|
+
{ value: "radix", label: "Radix UI" },
|
|
164
|
+
],
|
|
165
|
+
});
|
|
166
|
+
if (typeof uiComponents !== "string") {
|
|
167
|
+
outro(pc.red("Project creation cancelled"));
|
|
168
|
+
process.exit(0);
|
|
169
|
+
}
|
|
170
|
+
const testing = await select({
|
|
171
|
+
message: "Add Testing?",
|
|
172
|
+
options: [
|
|
173
|
+
{ value: "none", label: "No" },
|
|
174
|
+
{ value: "vitest", label: "Vitest" },
|
|
175
|
+
{ value: "playwright", label: "Playwright" },
|
|
176
|
+
{ value: "both", label: "Vitest + Playwright" },
|
|
177
|
+
],
|
|
178
|
+
});
|
|
179
|
+
if (typeof testing !== "string") {
|
|
180
|
+
outro(pc.red("Project creation cancelled"));
|
|
181
|
+
process.exit(0);
|
|
182
|
+
}
|
|
183
|
+
const initGit = await confirm({
|
|
184
|
+
message: "Initialize Git?",
|
|
185
|
+
initialValue: false,
|
|
186
|
+
});
|
|
187
|
+
if (typeof initGit !== "boolean") {
|
|
188
|
+
outro(pc.red("Project creation cancelled"));
|
|
189
|
+
process.exit(0);
|
|
190
|
+
}
|
|
191
|
+
const installDeps = await confirm({
|
|
192
|
+
message: "Install dependencies?",
|
|
193
|
+
initialValue: false,
|
|
194
|
+
});
|
|
195
|
+
if (typeof installDeps !== "boolean") {
|
|
196
|
+
outro(pc.red("Project creation cancelled"));
|
|
197
|
+
process.exit(0);
|
|
198
|
+
}
|
|
199
|
+
const backendFrameworkTyped = backendFramework;
|
|
200
|
+
const backendPackageManagerTyped = backendPackageManager;
|
|
201
|
+
const frontendFrameworkTyped = frontendFramework;
|
|
202
|
+
const frontendPackageManagerTyped = frontendPackageManager;
|
|
203
|
+
const cssFrameworkTyped = cssFramework;
|
|
204
|
+
const uiComponentsTyped = uiComponents;
|
|
205
|
+
const testingTyped = testing;
|
|
206
|
+
const config = {
|
|
207
|
+
projectName,
|
|
208
|
+
projectType: projectTypeTyped,
|
|
209
|
+
backend: {
|
|
210
|
+
framework: backendFrameworkTyped,
|
|
211
|
+
packageManager: backendPackageManagerTyped,
|
|
212
|
+
typescript: backendUseTypeScript,
|
|
213
|
+
eslint: backendAddESLint,
|
|
214
|
+
prettier: backendAddPrettier,
|
|
215
|
+
},
|
|
216
|
+
frontend: {
|
|
217
|
+
framework: frontendFrameworkTyped,
|
|
218
|
+
packageManager: frontendPackageManagerTyped,
|
|
219
|
+
typescript: frontendUseTypeScript,
|
|
220
|
+
eslint: frontendAddESLint,
|
|
221
|
+
prettier: frontendAddPrettier,
|
|
222
|
+
cssFramework: cssFrameworkTyped,
|
|
223
|
+
uiComponents: uiComponentsTyped,
|
|
224
|
+
testing: testingTyped,
|
|
225
|
+
},
|
|
226
|
+
git: initGit,
|
|
227
|
+
install: installDeps,
|
|
228
|
+
};
|
|
229
|
+
note(`${pc.bold("Configuration Summary")}\n\n` +
|
|
230
|
+
`${pc.cyan("Project:")} ${projectName}\n` +
|
|
231
|
+
`${pc.cyan("Type:")} ${projectTypeTyped}\n` +
|
|
232
|
+
`${pc.cyan("Backend:")} ${backendFrameworkTyped} (${backendPackageManagerTyped})\n` +
|
|
233
|
+
`${pc.cyan("Frontend:")} ${frontendFrameworkTyped} (${frontendPackageManagerTyped})\n` +
|
|
234
|
+
`${pc.cyan("TypeScript:")} ${backendUseTypeScript || frontendUseTypeScript ? "Yes" : "No"}\n` +
|
|
235
|
+
`${pc.cyan("CSS:")} ${cssFrameworkTyped}\n` +
|
|
236
|
+
`${pc.cyan("UI Components:")} ${uiComponentsTyped}\n` +
|
|
237
|
+
`${pc.cyan("Testing:")} ${testingTyped}\n` +
|
|
238
|
+
`${pc.cyan("Git:")} ${initGit ? "Yes" : "No"}\n` +
|
|
239
|
+
`${pc.cyan("Install:")} ${installDeps ? "Yes" : "No"}`, "Configuration");
|
|
240
|
+
try {
|
|
241
|
+
if (projectTypeTyped === "monorepo") {
|
|
242
|
+
await generateMonorepo(config);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
await generateSingle(config);
|
|
246
|
+
}
|
|
247
|
+
outro(pc.green("✨ Project created successfully!"));
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
outro(pc.red(`Error: ${error instanceof Error ? error.message : String(error)}`));
|
|
251
|
+
process.exit(1);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
program.parse();
|
|
255
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elysia.d.ts","sourceRoot":"","sources":["../../../src/generators/backends/elysia.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAElG,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createDirectory, writeFile, logSuccess } from "@/utils/helpers.js";
|
|
2
|
+
export async function generateElysiaBackend(projectPath, config) {
|
|
3
|
+
const srcPath = `${projectPath}/src`;
|
|
4
|
+
await createDirectory(srcPath);
|
|
5
|
+
const indexExtension = config.backend.typescript ? "ts" : "js";
|
|
6
|
+
const importType = config.backend.typescript ? "import" : "require";
|
|
7
|
+
await generateIndexFile(srcPath, indexExtension, importType, config);
|
|
8
|
+
await generatePackageJson(projectPath, config);
|
|
9
|
+
await generateTsConfig(projectPath, config);
|
|
10
|
+
await generateBunConfig(projectPath, config);
|
|
11
|
+
if (config.backend.eslint) {
|
|
12
|
+
await generateEslintConfig(projectPath, config);
|
|
13
|
+
}
|
|
14
|
+
if (config.backend.prettier) {
|
|
15
|
+
await generatePrettierConfig(projectPath, config);
|
|
16
|
+
}
|
|
17
|
+
logSuccess(`Elysia backend generated`);
|
|
18
|
+
}
|
|
19
|
+
async function generateIndexFile(srcPath, extension, importType, config) {
|
|
20
|
+
const typeAnnotations = config.backend.typescript ? ": string" : "";
|
|
21
|
+
const returnType = config.backend.typescript ? ": Response" : "";
|
|
22
|
+
const content = `import { Elysia } from 'elysia';
|
|
23
|
+
import { cors } from '@elysiajs/cors';
|
|
24
|
+
|
|
25
|
+
const app = new Elysia()
|
|
26
|
+
.use(cors())
|
|
27
|
+
.get('/', () => 'Hello from Phos! 🚀')
|
|
28
|
+
.get('/api/hello', () => ({
|
|
29
|
+
message: 'Hello from the API!',
|
|
30
|
+
timestamp: new Date().toISOString(),
|
|
31
|
+
}))
|
|
32
|
+
.listen(3000);
|
|
33
|
+
|
|
34
|
+
console.log(\`🦊 Elysia is running at http://\${app.server?.hostname}:\${app.server?.port}\`);
|
|
35
|
+
`;
|
|
36
|
+
await writeFile(`${srcPath}/index.${extension}`, content);
|
|
37
|
+
}
|
|
38
|
+
async function generatePackageJson(projectPath, config) {
|
|
39
|
+
const dependencies = {
|
|
40
|
+
elysia: "^1.0.0",
|
|
41
|
+
"@elysiajs/cors": "^1.0.0",
|
|
42
|
+
};
|
|
43
|
+
const devDependencies = {};
|
|
44
|
+
if (config.backend.eslint) {
|
|
45
|
+
devDependencies["eslint"] = "^8.57.0";
|
|
46
|
+
devDependencies["@typescript-eslint/parser"] = "^7.0.0";
|
|
47
|
+
devDependencies["@typescript-eslint/eslint-plugin"] = "^7.0.0";
|
|
48
|
+
}
|
|
49
|
+
if (config.backend.prettier) {
|
|
50
|
+
devDependencies["prettier"] = "^3.2.0";
|
|
51
|
+
}
|
|
52
|
+
if (config.backend.typescript) {
|
|
53
|
+
devDependencies["typescript"] = "^5.3.0";
|
|
54
|
+
}
|
|
55
|
+
const content = JSON.stringify({
|
|
56
|
+
name: config.projectType === "monorepo" ? "backend" : config.projectName,
|
|
57
|
+
version: "0.1.0",
|
|
58
|
+
type: "module",
|
|
59
|
+
scripts: {
|
|
60
|
+
dev: "bun run src/index.ts",
|
|
61
|
+
start: "bun run src/index.ts",
|
|
62
|
+
...(config.backend.eslint ? { lint: "eslint src --ext .ts" } : {}),
|
|
63
|
+
...(config.backend.prettier ? { format: 'prettier --write "src/**/*.ts"' } : {}),
|
|
64
|
+
},
|
|
65
|
+
dependencies,
|
|
66
|
+
devDependencies,
|
|
67
|
+
}, null, 2);
|
|
68
|
+
await writeFile(`${projectPath}/package.json`, content);
|
|
69
|
+
}
|
|
70
|
+
async function generateTsConfig(projectPath, config) {
|
|
71
|
+
if (!config.backend.typescript)
|
|
72
|
+
return;
|
|
73
|
+
const content = JSON.stringify({
|
|
74
|
+
compilerOptions: {
|
|
75
|
+
target: "ES2022",
|
|
76
|
+
module: "ES2022",
|
|
77
|
+
lib: ["ES2022"],
|
|
78
|
+
moduleResolution: "bundler",
|
|
79
|
+
strict: true,
|
|
80
|
+
esModuleInterop: true,
|
|
81
|
+
skipLibCheck: true,
|
|
82
|
+
forceConsistentCasingInFileNames: true,
|
|
83
|
+
resolveJsonModule: true,
|
|
84
|
+
declaration: true,
|
|
85
|
+
declarationMap: true,
|
|
86
|
+
sourceMap: true,
|
|
87
|
+
},
|
|
88
|
+
include: ["src/**/*"],
|
|
89
|
+
}, null, 2);
|
|
90
|
+
await writeFile(`${projectPath}/tsconfig.json`, content);
|
|
91
|
+
}
|
|
92
|
+
async function generateBunConfig(projectPath, config) {
|
|
93
|
+
const content = JSON.stringify({
|
|
94
|
+
name: config.projectType === "monorepo" ? "backend" : config.projectName,
|
|
95
|
+
scripts: {
|
|
96
|
+
dev: "bun run src/index.ts",
|
|
97
|
+
start: "bun run src/index.ts",
|
|
98
|
+
},
|
|
99
|
+
}, null, 2);
|
|
100
|
+
await writeFile(`${projectPath}/bunfig.toml`, content);
|
|
101
|
+
}
|
|
102
|
+
async function generateEslintConfig(projectPath, config) {
|
|
103
|
+
if (!config.backend.eslint)
|
|
104
|
+
return;
|
|
105
|
+
const content = `module.exports = {
|
|
106
|
+
root: true,
|
|
107
|
+
parser: '@typescript-eslint/parser',
|
|
108
|
+
extends: [
|
|
109
|
+
'eslint:recommended',
|
|
110
|
+
'plugin:@typescript-eslint/recommended',
|
|
111
|
+
],
|
|
112
|
+
env: {
|
|
113
|
+
node: true,
|
|
114
|
+
es2022: true,
|
|
115
|
+
},
|
|
116
|
+
parserOptions: {
|
|
117
|
+
ecmaVersion: 'latest',
|
|
118
|
+
sourceType: 'module',
|
|
119
|
+
},
|
|
120
|
+
};`;
|
|
121
|
+
await writeFile(`${projectPath}/.eslintrc.js`, content);
|
|
122
|
+
}
|
|
123
|
+
async function generatePrettierConfig(projectPath, config) {
|
|
124
|
+
if (!config.backend.prettier)
|
|
125
|
+
return;
|
|
126
|
+
const content = JSON.stringify({
|
|
127
|
+
semi: false,
|
|
128
|
+
singleQuote: true,
|
|
129
|
+
tabWidth: 2,
|
|
130
|
+
trailingComma: "es5",
|
|
131
|
+
printWidth: 80,
|
|
132
|
+
}, null, 2);
|
|
133
|
+
await writeFile(`${projectPath}/.prettierrc`, content);
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=elysia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elysia.js","sourceRoot":"","sources":["../../../src/generators/backends/elysia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastapi.d.ts","sourceRoot":"","sources":["../../../src/generators/backends/fastapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAElG,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|