@tymber/create 0.0.1 → 0.0.2
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/index.js +20 -11
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -627,12 +627,21 @@ var bunEntrypointTemplate = "import { App } from \"@tymber/core\";\n<% if (db ==
|
|
|
627
627
|
|
|
628
628
|
var helloWorldTemplate = "import { Endpoint, type HttpContext } from \"@tymber/core\";\n\nexport class HelloWorld extends Endpoint {\n async handle(ctx: HttpContext) {\n return Response.json({ message: \"Hello World\" });\n }\n}\n";
|
|
629
629
|
|
|
630
|
-
var setupTestTemplate = "import { createTestDB } from \"@tymber/<%= db %>\";\nimport {
|
|
630
|
+
var setupTestTemplate = "import { createTestDB } from \"@tymber/<%= db %>\";\n<% if (modules.includes(\"admin\")) { %>\nimport {\n type BaseTestContext,\n type AdminUserId,\n createTestApp,\n} from \"@tymber/core\";\nimport { AdminModule, initTestDB } from \"@tymber/admin\";\n<% } else { %>\nimport { type BaseTestContext, createTestApp } from \"@tymber/core\";\n<% } %>\n<% if (modules.includes(\"config\")) { %>\nimport { ConfigModule } from \"@tymber/config\";\n<% } %>\n<% if (modules.includes(\"openapi\")) { %>\nimport { OpenApiModule } from \"@tymber/openapi\";\n<% } %>\n<% if (modules.includes(\"user\")) { %>\nimport { UserModule } from \"@tymber/user\";\n<% } %>\nimport { MainModule } from \"../src/module.js\";\n\nexport interface TestContext extends BaseTestContext {\n <% if (modules.includes(\"admin\")) { %>\n adminSessionId: string;\n adminUserId: AdminUserId;\n <% } %>\n}\n\nexport async function setup(): Promise<TestContext> {\n const ctx = await createTestApp(() => createTestDB(), [\n <% if (modules.includes(\"admin\")) { %>\n AdminModule,\n <% } %>\n <% if (modules.includes(\"config\")) { %>\n ConfigModule,\n <% } %>\n <% if (modules.includes(\"openapi\")) { %>\n OpenApiModule,\n <% } %>\n <% if (modules.includes(\"user\")) { %>\n UserModule,\n <% } %>\n MainModule\n ]);\n <% if (modules.includes(\"admin\")) { %>\n const { adminSessionId, adminUserId } = await initTestDB(ctx.db);\n <% } %>\n <% if (modules.includes(\"config\")) { %>\n process.env.CONFIG_SECRET_KEYS = \"S3cr3T\";\n <% } %>\n\n return {\n ...ctx,\n <% if (modules.includes(\"admin\")) { %>\n adminSessionId,\n adminUserId,\n <% } %>\n };\n}\n";
|
|
631
631
|
|
|
632
|
-
var helloWorldTestTemplate = "<% if (
|
|
632
|
+
var helloWorldTestTemplate = "<% if (isBunPackageManager) { %>\nimport { describe, it, beforeAll, afterAll } from \"bun:test\";\n<% } else { %>\nimport { describe, it, before, after } from \"node:test\";\n<% } %>\nimport * as assert from \"node:assert\";\nimport { setup, type TestContext } from \"../setup.js\";\n\ndescribe(\"HelloWorld\", () => {\n let ctx: TestContext;\n\n before<% if (isBunPackageManager) { %>All<% } %>(async () => {\n ctx = await setup();\n });\n\n after<% if (isBunPackageManager) { %>All<% } %>(() => ctx.close());\n\n it(\"should work\", async () => {\n const res = await fetch(`${ctx.baseUrl}/hello`);\n\n assert.equal(res.status, 200);\n });\n});\n";
|
|
633
633
|
|
|
634
|
-
|
|
635
|
-
const
|
|
634
|
+
const packageManager = (() => {
|
|
635
|
+
const userAgent = process.env.npm_config_user_agent ?? "";
|
|
636
|
+
if (userAgent.startsWith("bun/"))
|
|
637
|
+
return "bun";
|
|
638
|
+
if (userAgent.startsWith("pnpm/"))
|
|
639
|
+
return "pnpm";
|
|
640
|
+
if (userAgent.startsWith("yarn/"))
|
|
641
|
+
return "yarn";
|
|
642
|
+
return "npm";
|
|
643
|
+
})();
|
|
644
|
+
const isBunPackageManager = packageManager === "bun";
|
|
636
645
|
async function main() {
|
|
637
646
|
ge("Welcome to Tymber project generator!");
|
|
638
647
|
const { projectName, db, modules } = await he({
|
|
@@ -670,7 +679,7 @@ async function main() {
|
|
|
670
679
|
s.start(`Creating project in ${projectDir}...`);
|
|
671
680
|
const templateData = {
|
|
672
681
|
projectName,
|
|
673
|
-
|
|
682
|
+
isBunPackageManager,
|
|
674
683
|
db,
|
|
675
684
|
modules,
|
|
676
685
|
};
|
|
@@ -685,7 +694,7 @@ async function main() {
|
|
|
685
694
|
name: projectName,
|
|
686
695
|
version: "0.0.0",
|
|
687
696
|
type: "module",
|
|
688
|
-
scripts:
|
|
697
|
+
scripts: isBunPackageManager
|
|
689
698
|
? {
|
|
690
699
|
start: "bun src/entrypoint.ts",
|
|
691
700
|
test: "bun test",
|
|
@@ -695,7 +704,7 @@ async function main() {
|
|
|
695
704
|
test: "tsx --test test/**/*.test.ts",
|
|
696
705
|
},
|
|
697
706
|
dependencies,
|
|
698
|
-
devDependencies:
|
|
707
|
+
devDependencies: isBunPackageManager
|
|
699
708
|
? {
|
|
700
709
|
"@types/bun": "latest",
|
|
701
710
|
typescript: "latest",
|
|
@@ -710,12 +719,12 @@ async function main() {
|
|
|
710
719
|
// package.json
|
|
711
720
|
await fs.writeFile(path.join(projectDir, "package.json"), JSON.stringify(packageJsonContent, null, 2));
|
|
712
721
|
// tsconfig.json
|
|
713
|
-
await fs.writeFile(path.join(projectDir, "tsconfig.json"), compileTemplate(
|
|
722
|
+
await fs.writeFile(path.join(projectDir, "tsconfig.json"), compileTemplate(isBunPackageManager ? bunTsconfigTemplate : nodeTsconfigTemplate)(templateData));
|
|
714
723
|
// src directory
|
|
715
724
|
const srcDir = path.join(projectDir, "src");
|
|
716
725
|
await fs.mkdir(srcDir, { recursive: true });
|
|
717
726
|
// src/entrypoint.ts
|
|
718
|
-
await fs.writeFile(path.join(srcDir, "entrypoint.ts"), compileTemplate(
|
|
727
|
+
await fs.writeFile(path.join(srcDir, "entrypoint.ts"), compileTemplate(isBunPackageManager ? bunEntrypointTemplate : nodeEntrypointTemplate)(templateData));
|
|
719
728
|
// src/module.ts
|
|
720
729
|
await fs.writeFile(path.join(srcDir, "module.ts"), compileTemplate(moduleTemplate)(templateData));
|
|
721
730
|
// src/endpoints/HelloWorld.ts
|
|
@@ -737,8 +746,8 @@ async function main() {
|
|
|
737
746
|
s.stop("Project created successfully!");
|
|
738
747
|
Se(`Next steps:
|
|
739
748
|
cd ${projectName}
|
|
740
|
-
${
|
|
741
|
-
${
|
|
749
|
+
${packageManager} install
|
|
750
|
+
${packageManager} start`, "Done!");
|
|
742
751
|
ye("Happy coding!");
|
|
743
752
|
}
|
|
744
753
|
main().catch((err) => {
|