@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.
- package/dist/action/configs.js +20 -52
- package/dist/action/const.js +4 -0
- package/dist/action/deps.js +1 -1
- package/dist/action/env.js +5 -0
- package/dist/action/install.js +4 -0
- package/dist/action/notice.js +21 -0
- package/dist/action/set.js +1 -1
- package/dist/action/utils.js +7 -0
- package/dist/ask/mod.js +6 -0
- package/dist/ask/pm.js +1 -1
- package/dist/ask/wf.js +1 -1
- package/dist/command.d.ts +16 -3
- package/dist/command.js +11 -0
- package/dist/const.d.ts +3 -0
- package/dist/const.js +9 -0
- package/dist/deno.js +1 -1
- package/dist/json/kv.js +18 -0
- package/dist/json/kv.json +15 -0
- package/dist/lib.js +50 -50
- package/dist/templates/astro/astro.config.deno.ts.tpl +10 -0
- package/dist/templates/astro/astro.config.node.ts.tpl +10 -0
- package/dist/templates/astro/src/middleware.ts.tpl +4 -0
- package/dist/test/create.js +5 -2
- package/dist/test/lookup.js +2 -2
- package/dist/test/utils.js +1 -1
- package/dist/types.d.ts +61 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +60 -0
- package/dist/webframeworks/astro.js +83 -0
- package/dist/webframeworks/const.js +11 -0
- package/dist/webframeworks/elysia.js +66 -0
- package/dist/webframeworks/express.js +54 -0
- package/dist/webframeworks/hono.js +66 -0
- package/dist/webframeworks/mod.js +27 -0
- package/dist/webframeworks/next.js +56 -0
- package/dist/webframeworks/nitro.js +53 -0
- package/dist/webframeworks/utils.js +31 -0
- package/package.json +1 -1
- package/dist/webframeworks.js +0 -220
|
@@ -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
package/dist/webframeworks.js
DELETED
|
@@ -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 };
|