Skip to content

Commit 55ae65a

Browse files
committed
Remove object type
1 parent 1689329 commit 55ae65a

File tree

10 files changed

+100
-89
lines changed

10 files changed

+100
-89
lines changed

cspell.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@
2828
"dereferenceable",
2929
"discoverability",
3030
"docloader",
31+
"dotenvx",
3132
"draft-cavage",
3233
"eddsa",
3334
"elysia",
35+
"elysiajs",
3436
"fanout",
3537
"federatable",
3638
"Federatable",

packages/init/src/types.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@ export interface WebFrameworkInitializer {
7171
/** Optional shell command to run before scaffolding (e.g., `create-next-app`). */
7272
command?: string[];
7373
/** Runtime dependencies to install (package name to version). */
74-
dependencies?: object;
74+
dependencies?: Record<string, string>;
7575
/** Development-only dependencies to install (package name to version). */
76-
devDependencies?: object;
76+
devDependencies?: Record<string, string>;
7777
/** Relative path where the federation configuration file will be created. */
7878
federationFile: string;
7979
/** Relative path where the logging configuration file will be created. */
@@ -87,11 +87,11 @@ export interface WebFrameworkInitializer {
8787
/** Environment variables required by this framework, keyed by name to
8888
* default value. Merged together with KV store and message queue env vars
8989
* into the generated `.env` file. */
90-
env?: object;
90+
env?: Record<string, string>;
9191
/** TypeScript compiler options to include in `tsconfig.json`. */
9292
compilerOptions?: Record<string, string | boolean | number | string[] | null>;
9393
/** Task scripts keyed by task name (e.g., `"dev"`, `"prod"`, `"lint"`). */
94-
tasks?: object;
94+
tasks?: Record<string, string>;
9595
/** Instructions shown to the user after project initialization is complete. */
9696
instruction: Message;
9797
}

packages/init/src/webframeworks/astro.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const astroDescription: WebFrameworkDescription = {
3737
federationFile: "src/federation.ts",
3838
loggingFile: "src/logging.ts",
3939
files: {
40-
[`astro.config.ts`]: await readTemplate(
40+
"astro.config.ts": await readTemplate(
4141
`astro/astro.config.${pm === "deno" ? "deno" : "node"}.ts`,
4242
),
4343
"src/middleware.ts": await readTemplate("astro/src/middleware.ts"),

packages/init/src/webframeworks/bare-bones.ts

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,7 @@ const bareBonesDescription: WebFrameworkDescription = {
1010
packageManagers: PACKAGE_MANAGER,
1111
defaultPort: 8000,
1212
init: async ({ packageManager: pm }) => ({
13-
dependencies: pm === "deno"
14-
? {
15-
...defaultDenoDependencies,
16-
"@hongminhee/x-forwarded-fetch": deps["@hongminhee/x-forwarded-fetch"],
17-
}
18-
: pm === "bun"
19-
? { "npm:x-forwarded-fetch": deps["npm:x-forwarded-fetch"] }
20-
: {
21-
"npm:@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
22-
"npm:@hono/node-server": deps["npm:@hono/node-server"],
23-
"npm:tsx": deps["npm:tsx"],
24-
"npm:x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
25-
},
13+
dependencies: getDependencies(pm),
2614
devDependencies: {
2715
...defaultDevDependencies,
2816
...(pm === "bun"
@@ -32,14 +20,10 @@ const bareBonesDescription: WebFrameworkDescription = {
3220
federationFile: "src/federation.ts",
3321
loggingFile: "src/logging.ts",
3422
files: {
35-
"src/main.ts": await readTemplate(
36-
`bare-bones/main/${pmToRt(pm)}.ts`,
37-
),
38-
...(pm !== "deno"
39-
? {
40-
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
41-
}
42-
: {}),
23+
"src/main.ts": await readTemplate(`bare-bones/main/${pmToRt(pm)}.ts`),
24+
...(pm !== "deno" && {
25+
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
26+
}),
4327
},
4428
compilerOptions: (pm === "deno"
4529
? {
@@ -63,6 +47,21 @@ const bareBonesDescription: WebFrameworkDescription = {
6347

6448
export default bareBonesDescription;
6549

50+
const getDependencies = (pm: string): Record<string, string> =>
51+
pm === "deno"
52+
? {
53+
...defaultDenoDependencies,
54+
"@hongminhee/x-forwarded-fetch": deps["@hongminhee/x-forwarded-fetch"],
55+
}
56+
: pm === "bun"
57+
? { "npm:x-forwarded-fetch": deps["npm:x-forwarded-fetch"] }
58+
: {
59+
"npm:@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
60+
"npm:@hono/node-server": deps["npm:@hono/node-server"],
61+
"npm:tsx": deps["npm:tsx"],
62+
"npm:x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
63+
};
64+
6665
const TASKS = {
6766
deno: {
6867
dev: "deno run -A --watch ./src/main.ts",

packages/init/src/webframeworks/elysia.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,5 @@ const TASKS = {
8484
lint: "eslint .",
8585
},
8686
};
87+
88+
// cspell: ignore typebox

packages/init/src/webframeworks/express.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,11 @@ const expressDescription: WebFrameworkDescription = {
1313
dependencies: {
1414
"npm:express": deps["npm:express"],
1515
"@fedify/express": PACKAGE_VERSION,
16-
...(pm !== "deno" && pm !== "bun"
17-
? {
18-
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
19-
tsx: deps["npm:tsx"],
20-
}
21-
: {}),
22-
...(pm === "deno" ? defaultDenoDependencies : {}),
16+
...(pmToRt(pm) === "node" && {
17+
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
18+
tsx: deps["npm:tsx"],
19+
}),
20+
...(pm === "deno" && defaultDenoDependencies),
2321
},
2422
devDependencies: {
2523
"@types/express": deps["npm:@types/express"],

packages/init/src/webframeworks/hono.ts

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -12,27 +12,7 @@ const honoDescription: WebFrameworkDescription = {
1212
packageManagers: PACKAGE_MANAGER,
1313
defaultPort: 8000,
1414
init: async ({ projectName, packageManager: pm }) => ({
15-
dependencies: pm === "deno"
16-
? {
17-
...defaultDenoDependencies,
18-
"@hono/hono": deps["@hono/hono"],
19-
"@hongminhee/x-forwarded-fetch": deps["@hongminhee/x-forwarded-fetch"],
20-
"@fedify/hono": PACKAGE_VERSION,
21-
}
22-
: pm === "bun"
23-
? {
24-
hono: deps["npm:hono"],
25-
"x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
26-
"@fedify/hono": PACKAGE_VERSION,
27-
}
28-
: {
29-
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
30-
hono: deps["npm:hono"],
31-
"@hono/node-server": deps["npm:@hono/node-server"],
32-
tsx: deps["npm:tsx"],
33-
"x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
34-
"@fedify/hono": PACKAGE_VERSION,
35-
},
15+
dependencies: getDependencies(pm),
3616
devDependencies: {
3717
...defaultDevDependencies,
3818
...(pm === "bun" ? { "@types/bun": deps["npm:@types/bun"] } : {}),
@@ -73,6 +53,29 @@ const honoDescription: WebFrameworkDescription = {
7353

7454
export default honoDescription;
7555

56+
const getDependencies = (pm: string): Record<string, string> =>
57+
pm === "deno"
58+
? {
59+
...defaultDenoDependencies,
60+
"@hono/hono": deps["@hono/hono"],
61+
"@hongminhee/x-forwarded-fetch": deps["@hongminhee/x-forwarded-fetch"],
62+
"@fedify/hono": PACKAGE_VERSION,
63+
}
64+
: pm === "bun"
65+
? {
66+
hono: deps["npm:hono"],
67+
"x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
68+
"@fedify/hono": PACKAGE_VERSION,
69+
}
70+
: {
71+
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
72+
hono: deps["npm:hono"],
73+
"@hono/node-server": deps["npm:@hono/node-server"],
74+
tsx: deps["npm:tsx"],
75+
"x-forwarded-fetch": deps["npm:x-forwarded-fetch"],
76+
"@fedify/hono": PACKAGE_VERSION,
77+
};
78+
7679
const TASKS = {
7780
deno: {
7881
dev: "deno run -A --watch ./src/index.ts",

packages/init/src/webframeworks/next.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ const nextDescription: WebFrameworkDescription = {
2323
loggingFile: "logging.ts",
2424
files: {
2525
"middleware.ts": await readTemplate("next/middleware.ts"),
26-
...(pm !== "deno"
27-
? {
28-
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
29-
}
30-
: {}),
26+
...(pm !== "deno" && {
27+
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
28+
}),
3129
},
32-
tasks: pm !== "deno" ? { "lint": "eslint ." } : {},
30+
tasks: pm !== "deno"
31+
? { "lint": "eslint ." }
32+
: {} as Record<string, string>,
3333
instruction: getInstruction(pm, 3000),
3434
}),
3535
};

packages/init/src/webframeworks/nitro.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const nitroDescription: WebFrameworkDescription = {
1717
devDependencies: defaultDevDependencies,
1818
federationFile: "server/federation.ts",
1919
loggingFile: "server/logging.ts",
20-
env: testMode ? { HOST: "127.0.0.1" } : {},
20+
env: testMode ? { HOST: "127.0.0.1" } : {} as Record<string, string>,
2121
files: {
2222
"server/middleware/federation.ts": await readTemplate(
2323
"nitro/server/middleware/federation.ts",
@@ -28,7 +28,9 @@ const nitroDescription: WebFrameworkDescription = {
2828
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
2929
}),
3030
},
31-
tasks: pm !== "deno" ? { "lint": "eslint ." } : {} as { lint?: string },
31+
tasks: pm !== "deno"
32+
? { "lint": "eslint ." }
33+
: {} as Record<string, string>,
3234
instruction: getInstruction(pm, 3000),
3335
}),
3436
};

packages/init/src/webframeworks/solidstart.ts

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,7 @@ const solidstartDescription: WebFrameworkDescription = {
1111
packageManagers: PACKAGE_MANAGER,
1212
defaultPort: 3000,
1313
init: async ({ packageManager: pm }) => ({
14-
dependencies: pm === "deno"
15-
? {
16-
...defaultDenoDependencies,
17-
"@solidjs/router": `npm:@solidjs/router@${deps["npm:@solidjs/router"]}`,
18-
"@solidjs/start": `${NPM_SOLIDSTART}`,
19-
"@solidjs/start/client": `${NPM_SOLIDSTART}/client`,
20-
"@solidjs/start/config": `${NPM_SOLIDSTART}/config`,
21-
"@solidjs/start/middleware": `${NPM_SOLIDSTART}/middleware`,
22-
"@solidjs/start/router": `${NPM_SOLIDSTART}/router`,
23-
"@solidjs/start/server": `${NPM_SOLIDSTART}/server`,
24-
"solid-js": `npm:solid-js@${deps["npm:solid-js"]}`,
25-
vinxi: `npm:vinxi@${deps["npm:vinxi"]}`,
26-
"@fedify/solidstart": PACKAGE_VERSION,
27-
}
28-
: {
29-
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
30-
"@solidjs/router": deps["npm:@solidjs/router"],
31-
"@solidjs/start": deps["npm:@solidjs/start"],
32-
"solid-js": deps["npm:solid-js"],
33-
vinxi: deps["npm:vinxi"],
34-
"@fedify/solidstart": PACKAGE_VERSION,
35-
},
14+
dependencies: getDependencies(pm),
3615
devDependencies: {
3716
...defaultDevDependencies,
3817
typescript: deps["npm:typescript"],
@@ -59,11 +38,9 @@ const solidstartDescription: WebFrameworkDescription = {
5938
"src/middleware/index.ts": await readTemplate(
6039
"solidstart/src/middleware/index.ts",
6140
),
62-
...(pm !== "deno"
63-
? {
64-
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
65-
}
66-
: {}),
41+
...(pm !== "deno" && {
42+
"eslint.config.ts": await readTemplate("defaults/eslint.config.ts"),
43+
}),
6744
},
6845
compilerOptions: pm === "deno" ? undefined : {
6946
target: "ESNext",
@@ -84,6 +61,34 @@ const solidstartDescription: WebFrameworkDescription = {
8461

8562
export default solidstartDescription;
8663

64+
const getDependencies = (pm: string): Record<string, string> =>
65+
pm === "deno"
66+
? {
67+
...defaultDenoDependencies,
68+
"@solidjs/router": `npm:@solidjs/router@${deps["npm:@solidjs/router"]}`,
69+
"@solidjs/start": NPM_SOLIDSTART,
70+
...DENO_SOLIDSTART,
71+
"solid-js": `npm:solid-js@${deps["npm:solid-js"]}`,
72+
vinxi: `npm:vinxi@${deps["npm:vinxi"]}`,
73+
"@fedify/solidstart": PACKAGE_VERSION,
74+
}
75+
: {
76+
"@dotenvx/dotenvx": deps["npm:@dotenvx/dotenvx"],
77+
"@solidjs/router": deps["npm:@solidjs/router"],
78+
"@solidjs/start": deps["npm:@solidjs/start"],
79+
"solid-js": deps["npm:solid-js"],
80+
vinxi: deps["npm:vinxi"],
81+
"@fedify/solidstart": PACKAGE_VERSION,
82+
};
83+
84+
const DENO_SOLIDSTART = Object.fromEntries([
85+
"client",
86+
"config",
87+
"middleware",
88+
"router",
89+
"server",
90+
].map((pkg) => [`@solidjs/start/${pkg}`, `${NPM_SOLIDSTART}/${pkg}`]));
91+
8792
const TASKS = {
8893
deno: {
8994
dev: "deno run -A npm:vinxi dev",

0 commit comments

Comments
 (0)