@fedify/init 2.1.0-dev.421 → 2.1.0-dev.444

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.
@@ -0,0 +1,53 @@
1
+ import { PACKAGE_VERSION, readTemplate } from "../lib.js";
2
+ import { PACKAGE_MANAGER } from "../const.js";
3
+ import { defaultDenoDependencies, defaultDevDependencies } from "./const.js";
4
+ import { getInstruction } from "./utils.js";
5
+
6
+ //#region src/webframeworks/nitro.ts
7
+ const nitroDescription = {
8
+ label: "Nitro",
9
+ packageManagers: PACKAGE_MANAGER,
10
+ defaultPort: 3e3,
11
+ init: ({ packageManager: pm, testMode }) => ({
12
+ command: getNitroInitCommand(pm),
13
+ dependencies: {
14
+ "@fedify/h3": PACKAGE_VERSION,
15
+ ...pm === "deno" ? defaultDenoDependencies : {}
16
+ },
17
+ devDependencies: defaultDevDependencies,
18
+ federationFile: "server/federation.ts",
19
+ loggingFile: "server/logging.ts",
20
+ files: {
21
+ "server/middleware/federation.ts": readTemplate("nitro/server/middleware/federation.ts"),
22
+ "server/error.ts": readTemplate("nitro/server/error.ts"),
23
+ "nitro.config.ts": readTemplate("nitro/nitro.config.ts"),
24
+ ...testMode ? { ".env": readTemplate("nitro/.env.test") } : {},
25
+ ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
26
+ },
27
+ tasks: pm !== "deno" ? { "lint": "eslint ." } : {},
28
+ instruction: getInstruction(pm, 3e3)
29
+ })
30
+ };
31
+ var nitro_default = nitroDescription;
32
+ /**
33
+ * Returns the shell command array to scaffold a new Nitro project
34
+ * in the current directory using the given package manager.
35
+ * Also removes the default `nitro.config.ts` so it can be replaced by a template.
36
+ */
37
+ const getNitroInitCommand = (pm) => [
38
+ ...createNitroAppCommand(pm),
39
+ pm === "deno" ? "npm:giget@latest" : "giget@latest",
40
+ "nitro",
41
+ ".",
42
+ "&&",
43
+ "rm",
44
+ "nitro.config.ts"
45
+ ];
46
+ const createNitroAppCommand = (pm) => pm === "deno" ? [
47
+ "deno",
48
+ "run",
49
+ "-A"
50
+ ] : pm === "bun" ? ["bunx"] : pm === "npm" ? ["npx"] : [pm, "dlx"];
51
+
52
+ //#endregion
53
+ export { nitro_default as default };
@@ -0,0 +1,31 @@
1
+ import { getDevCommand } from "../lib.js";
2
+ import { commandLine, message } from "@optique/core/message";
3
+
4
+ //#region src/webframeworks/utils.ts
5
+ /**
6
+ * Generates the post-initialization instruction message that shows
7
+ * the user how to start the dev server and look up an actor.
8
+ *
9
+ * @param packageManager - The chosen package manager
10
+ * @param port - The default port for the dev server
11
+ * @returns A formatted `Message` with startup instructions
12
+ */
13
+ const getInstruction = (pm, port) => message`
14
+ To start the server, run the following command:
15
+
16
+ ${commandLine(getDevCommand(pm))}
17
+
18
+ Then, try to look up an actor from your server:
19
+
20
+ ${commandLine(`fedify lookup http://localhost:${port}/users/john`)}
21
+
22
+ `;
23
+ /**
24
+ * Converts a package manager to its corresponding runtime.
25
+ * @param pm - The package manager (deno, bun, npm, yarn, pnpm)
26
+ * @returns The runtime name (deno, bun, or node)
27
+ */
28
+ const packageManagerToRuntime = (pm) => pm === "deno" ? "deno" : pm === "bun" ? "bun" : "node";
29
+
30
+ //#endregion
31
+ export { getInstruction, packageManagerToRuntime };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/init",
3
- "version": "2.1.0-dev.421+8225ebc2",
3
+ "version": "2.1.0-dev.444+571559d0",
4
4
  "description": "Project initializer for Fedify",
5
5
  "keywords": [
6
6
  "fedify",
@@ -1,220 +0,0 @@
1
- import { replace } from "./utils.js";
2
- import { PACKAGE_VERSION, getInstruction, getNextInitCommand, getNitroInitCommand, packageManagerToRuntime, readTemplate } from "./lib.js";
3
- import { PACKAGE_MANAGER } from "./const.js";
4
- import { pipe } from "@fxts/core";
5
-
6
- //#region src/webframeworks.ts
7
- const webFrameworks = {
8
- hono: {
9
- label: "Hono",
10
- packageManagers: PACKAGE_MANAGER,
11
- init: ({ projectName, packageManager: pm }) => ({
12
- dependencies: pm === "deno" ? {
13
- ...defaultDenoDependencies,
14
- "@std/dotenv": "^0.225.2",
15
- "@hono/hono": "^4.5.0",
16
- "@hongminhee/x-forwarded-fetch": "^0.2.0",
17
- "@fedify/hono": PACKAGE_VERSION
18
- } : pm === "bun" ? {
19
- hono: "^4.5.0",
20
- "x-forwarded-fetch": "^0.2.0",
21
- "@fedify/hono": PACKAGE_VERSION
22
- } : {
23
- "@dotenvx/dotenvx": "^1.14.1",
24
- hono: "^4.5.0",
25
- "@hono/node-server": "^1.12.0",
26
- tsx: "^4.17.0",
27
- "x-forwarded-fetch": "^0.2.0",
28
- "@fedify/hono": PACKAGE_VERSION
29
- },
30
- devDependencies: {
31
- ...defaultDevDependencies,
32
- ...pm === "bun" ? { "@types/bun": "^1.1.6" } : {}
33
- },
34
- federationFile: "src/federation.ts",
35
- loggingFile: "src/logging.ts",
36
- files: {
37
- "src/app.tsx": pipe("hono/app.tsx", readTemplate, replace(/\/\* hono \*\//, pm === "deno" ? "@hono/hono" : "hono"), replace(/\/\* logger \*\//, projectName)),
38
- "src/index.ts": readTemplate(`hono/index/${packageManagerToRuntime(pm)}.ts`),
39
- ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
40
- },
41
- compilerOptions: pm === "deno" ? void 0 : {
42
- "lib": ["ESNext", "DOM"],
43
- "target": "ESNext",
44
- "module": "NodeNext",
45
- "moduleResolution": "NodeNext",
46
- "allowImportingTsExtensions": true,
47
- "verbatimModuleSyntax": true,
48
- "noEmit": true,
49
- "strict": true,
50
- "jsx": "react-jsx",
51
- "jsxImportSource": "hono/jsx"
52
- },
53
- tasks: {
54
- "dev": pm === "deno" ? "deno run -A --watch ./src/index.ts" : pm === "bun" ? "bun run --hot ./src/index.ts" : "dotenvx run -- tsx watch ./src/index.ts",
55
- "prod": pm === "deno" ? "deno run -A ./src/index.ts" : pm === "bun" ? "bun run ./src/index.ts" : "dotenvx run -- node --import tsx ./src/index.ts",
56
- ...pm !== "deno" ? { "lint": "eslint ." } : {}
57
- },
58
- instruction: getInstruction(pm, 8e3)
59
- }),
60
- defaultPort: 8e3
61
- },
62
- elysia: {
63
- label: "ElysiaJS",
64
- packageManagers: PACKAGE_MANAGER,
65
- init: ({ projectName, packageManager: pm }) => ({
66
- dependencies: pm === "deno" ? {
67
- ...defaultDenoDependencies,
68
- elysia: "npm:elysia@^1.3.6",
69
- "@fedify/elysia": PACKAGE_VERSION
70
- } : pm === "bun" ? {
71
- elysia: "^1.3.6",
72
- "@fedify/elysia": PACKAGE_VERSION
73
- } : {
74
- elysia: "^1.3.6",
75
- "@elysiajs/node": "^1.4.2",
76
- "@fedify/elysia": PACKAGE_VERSION,
77
- ...pm === "pnpm" ? {
78
- "@sinclair/typebox": "^0.34.41",
79
- "openapi-types": "^12.1.3"
80
- } : {}
81
- },
82
- devDependencies: {
83
- ...pm === "bun" ? { "@types/bun": "^1.2.19" } : {
84
- tsx: "^4.21.0",
85
- "@types/node": "^25.0.3",
86
- typescript: "^5.9.3"
87
- },
88
- ...defaultDevDependencies
89
- },
90
- federationFile: "src/federation.ts",
91
- loggingFile: "src/logging.ts",
92
- files: {
93
- "src/index.ts": readTemplate(`elysia/index/${packageManagerToRuntime(pm)}.ts`).replace(/\/\* logger \*\//, projectName),
94
- ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
95
- },
96
- compilerOptions: pm === "deno" || pm === "bun" ? void 0 : {
97
- "lib": ["ESNext", "DOM"],
98
- "target": "ESNext",
99
- "module": "NodeNext",
100
- "moduleResolution": "NodeNext",
101
- "allowImportingTsExtensions": true,
102
- "verbatimModuleSyntax": true,
103
- "noEmit": true,
104
- "strict": true
105
- },
106
- tasks: {
107
- "dev": pm === "deno" ? "deno serve --allow-env --allow-net --watch ./src/index.ts" : pm === "bun" ? "bun run --hot ./src/index.ts" : "tsx watch src/index.ts",
108
- ...pm === "deno" ? { "prod": "deno serve --allow-env --allow-net ./src/index.ts" } : pm === "bun" ? { "prod": "bun run ./src/index.ts" } : {
109
- "build": "tsc src/index.ts --outDir dist",
110
- "start": "NODE_ENV=production node dist/index.js"
111
- },
112
- ...pm !== "deno" ? { "lint": "eslint ." } : {}
113
- },
114
- instruction: getInstruction(pm, 3e3)
115
- }),
116
- defaultPort: 3e3
117
- },
118
- express: {
119
- label: "Express",
120
- packageManagers: PACKAGE_MANAGER,
121
- init: ({ projectName, packageManager: pm }) => ({
122
- dependencies: {
123
- "npm:express": "^4.19.2",
124
- "@fedify/express": PACKAGE_VERSION,
125
- ...pm !== "deno" && pm !== "bun" ? {
126
- "@dotenvx/dotenvx": "^1.14.1",
127
- tsx: "^4.17.0"
128
- } : {},
129
- ...pm === "deno" ? defaultDenoDependencies : {}
130
- },
131
- devDependencies: {
132
- "@types/express": "^4.17.21",
133
- ...pm === "bun" ? { "@types/bun": "^1.1.6" } : {},
134
- ...defaultDevDependencies
135
- },
136
- federationFile: "src/federation.ts",
137
- loggingFile: "src/logging.ts",
138
- files: {
139
- "src/app.ts": readTemplate("express/app.ts").replace(/\/\* logger \*\//, projectName),
140
- "src/index.ts": readTemplate("express/index.ts"),
141
- ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
142
- },
143
- compilerOptions: pm === "deno" ? void 0 : {
144
- "lib": ["ESNext", "DOM"],
145
- "target": "ESNext",
146
- "module": "NodeNext",
147
- "moduleResolution": "NodeNext",
148
- "allowImportingTsExtensions": true,
149
- "verbatimModuleSyntax": true,
150
- "noEmit": true,
151
- "strict": true
152
- },
153
- tasks: {
154
- "dev": pm === "bun" ? "bun run --hot ./src/index.ts" : pm === "deno" ? "deno run --allow-net --allow-env --allow-sys --watch ./src/index.ts" : "dotenvx run -- tsx watch ./src/index.ts",
155
- "prod": pm === "bun" ? "bun run ./src/index.ts" : pm === "deno" ? "deno run --allow-net --allow-env --allow-sys ./src/index.ts" : "dotenvx run -- node --import tsx ./src/index.ts",
156
- ...pm !== "deno" ? { "lint": "eslint ." } : {}
157
- },
158
- instruction: getInstruction(pm, 8e3)
159
- }),
160
- defaultPort: 8e3
161
- },
162
- nitro: {
163
- label: "Nitro",
164
- packageManagers: PACKAGE_MANAGER,
165
- init: ({ packageManager: pm, testMode }) => ({
166
- command: getNitroInitCommand(pm),
167
- dependencies: {
168
- "@fedify/h3": PACKAGE_VERSION,
169
- ...pm === "deno" ? defaultDenoDependencies : {}
170
- },
171
- devDependencies: defaultDevDependencies,
172
- federationFile: "server/federation.ts",
173
- loggingFile: "server/logging.ts",
174
- files: {
175
- "server/middleware/federation.ts": readTemplate("nitro/server/middleware/federation.ts"),
176
- "server/error.ts": readTemplate("nitro/server/error.ts"),
177
- "nitro.config.ts": readTemplate("nitro/nitro.config.ts"),
178
- ...testMode ? { ".env": readTemplate("nitro/.env.test") } : {},
179
- ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
180
- },
181
- tasks: { ...pm !== "deno" ? { "lint": "eslint ." } : {} },
182
- instruction: getInstruction(pm, 3e3)
183
- }),
184
- defaultPort: 3e3
185
- },
186
- next: {
187
- label: "Next.js",
188
- packageManagers: PACKAGE_MANAGER,
189
- init: ({ packageManager: pm }) => ({
190
- label: "Next.js",
191
- command: getNextInitCommand(pm),
192
- dependencies: {
193
- "@fedify/next": PACKAGE_VERSION,
194
- ...pm === "deno" ? defaultDenoDependencies : {}
195
- },
196
- devDependencies: {
197
- "@types/node": "^20.11.2",
198
- ...defaultDevDependencies
199
- },
200
- federationFile: "federation/index.ts",
201
- loggingFile: "logging.ts",
202
- files: {
203
- "middleware.ts": readTemplate("next/middleware.ts"),
204
- ...pm !== "deno" ? { "eslint.config.ts": readTemplate("defaults/eslint.config.ts") } : {}
205
- },
206
- tasks: { ...pm !== "deno" ? { "lint": "eslint ." } : {} },
207
- instruction: getInstruction(pm, 3e3)
208
- }),
209
- defaultPort: 3e3
210
- }
211
- };
212
- var webframeworks_default = webFrameworks;
213
- const defaultDevDependencies = {
214
- "eslint": "^9.0.0",
215
- "@fedify/lint": PACKAGE_VERSION
216
- };
217
- const defaultDenoDependencies = { "@fedify/lint": PACKAGE_VERSION };
218
-
219
- //#endregion
220
- export { webframeworks_default as default };