create-baeta 0.0.1 → 0.0.3
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/CHANGELOG.md +12 -0
- package/dist/cli.js +118 -60
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
- package/templates/yoga/src/app.bun.ts +22 -0
- package/templates/yoga/src/app.deno.ts +25 -0
- /package/templates/yoga/src/{app.ts → app.node.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# create-baeta
|
|
2
2
|
|
|
3
|
+
## 0.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`bcbfb49`](https://github.com/andreisergiu98/baeta/commit/bcbfb49b16daf5d6f195ba273f52b1aa89602c1c) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - fix yoga entrypoint for bun and deno
|
|
8
|
+
|
|
9
|
+
## 0.0.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#184](https://github.com/andreisergiu98/baeta/pull/184) [`bf2d1a3`](https://github.com/andreisergiu98/baeta/commit/bf2d1a326235e5f34e723a5acc81cd7b974b913b) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - add runtime selector
|
|
14
|
+
|
|
3
15
|
## 0.0.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/cli.js
CHANGED
|
@@ -14,12 +14,14 @@ var lockfileNames = {
|
|
|
14
14
|
bun: "bun.lockb"
|
|
15
15
|
};
|
|
16
16
|
var packageManagers = Object.keys(lockfileNames);
|
|
17
|
+
var runtimes = ["node", "deno", "bun"];
|
|
18
|
+
var defaultJavaScriptRuntime = "node";
|
|
17
19
|
var gitignoreUrl = "https://raw.githubusercontent.com/github/gitignore/refs/heads/main/Node.gitignore";
|
|
18
20
|
|
|
19
21
|
// lib/handler.ts
|
|
20
22
|
import path4 from "node:path";
|
|
21
|
-
import { logger as
|
|
22
|
-
import
|
|
23
|
+
import { logger as logger5 } from "@docusaurus/logger";
|
|
24
|
+
import shell3 from "shelljs";
|
|
23
25
|
import supportsColor from "supports-color";
|
|
24
26
|
|
|
25
27
|
// lib/app-name.ts
|
|
@@ -143,12 +145,39 @@ function getInstallCommand(pkgManager) {
|
|
|
143
145
|
return `${pkgManager} install --color always`;
|
|
144
146
|
}
|
|
145
147
|
|
|
148
|
+
// lib/runtime.ts
|
|
149
|
+
import { logger as logger3 } from "@docusaurus/logger";
|
|
150
|
+
import prompts3 from "prompts";
|
|
151
|
+
import shell2 from "shelljs";
|
|
152
|
+
async function getRuntime() {
|
|
153
|
+
const hasBun = shell2.exec("bun --version", { silent: true }).code === 0;
|
|
154
|
+
const hasDeno = shell2.exec("deno --version", { silent: true }).code === 0;
|
|
155
|
+
if (!hasDeno && !hasBun) {
|
|
156
|
+
return "node";
|
|
157
|
+
}
|
|
158
|
+
const choices = ["node", hasBun && "bun", hasDeno && "deno"].filter((p) => Boolean(p)).map((p) => ({ title: p, value: p }));
|
|
159
|
+
const runtime = await prompts3(
|
|
160
|
+
{
|
|
161
|
+
type: "select",
|
|
162
|
+
name: "runtime",
|
|
163
|
+
message: "Select a runtime...",
|
|
164
|
+
choices
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
onCancel() {
|
|
168
|
+
logger3.info`Falling back to name=${defaultJavaScriptRuntime}`;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
).then((result) => result.runtime);
|
|
172
|
+
return runtime ?? defaultJavaScriptRuntime;
|
|
173
|
+
}
|
|
174
|
+
|
|
146
175
|
// lib/templates.ts
|
|
147
176
|
import path3, { join } from "node:path";
|
|
148
177
|
import { fileURLToPath } from "node:url";
|
|
149
|
-
import { logger as
|
|
178
|
+
import { logger as logger4 } from "@docusaurus/logger";
|
|
150
179
|
import fs3 from "fs-extra";
|
|
151
|
-
import
|
|
180
|
+
import prompts4 from "prompts";
|
|
152
181
|
|
|
153
182
|
// meta/apollo/package.json
|
|
154
183
|
var package_default = {
|
|
@@ -158,7 +187,7 @@ var package_default = {
|
|
|
158
187
|
type: "module",
|
|
159
188
|
scripts: {
|
|
160
189
|
build: "baeta build --generate",
|
|
161
|
-
start: "baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app'"
|
|
190
|
+
start: "baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app.js'"
|
|
162
191
|
},
|
|
163
192
|
dependencies: {
|
|
164
193
|
"@apollo/server": "^4.11.2",
|
|
@@ -171,6 +200,8 @@ var package_default = {
|
|
|
171
200
|
"@baeta/cli": "workspace:^",
|
|
172
201
|
"@baeta/compiler": "workspace:^",
|
|
173
202
|
"@baeta/plugin-autoload": "workspace:^",
|
|
203
|
+
"@types/bun": "^1.1.14",
|
|
204
|
+
"@types/deno": "^2.0.0",
|
|
174
205
|
"@types/node": "^22.10.1",
|
|
175
206
|
typescript: "^5.7.2"
|
|
176
207
|
}
|
|
@@ -184,7 +215,7 @@ var package_default2 = {
|
|
|
184
215
|
type: "module",
|
|
185
216
|
scripts: {
|
|
186
217
|
build: "baeta build --generate",
|
|
187
|
-
start: "baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app'"
|
|
218
|
+
start: "baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app.js'"
|
|
188
219
|
},
|
|
189
220
|
dependencies: {
|
|
190
221
|
"@baeta/core": "workspace:^",
|
|
@@ -197,6 +228,8 @@ var package_default2 = {
|
|
|
197
228
|
"@baeta/cli": "workspace:^",
|
|
198
229
|
"@baeta/compiler": "workspace:^",
|
|
199
230
|
"@baeta/plugin-autoload": "workspace:^",
|
|
231
|
+
"@types/bun": "^1.1.14",
|
|
232
|
+
"@types/deno": "^2.0.0",
|
|
200
233
|
"@types/node": "^22.10.1",
|
|
201
234
|
typescript: "^5.7.2"
|
|
202
235
|
}
|
|
@@ -204,10 +237,10 @@ var package_default2 = {
|
|
|
204
237
|
|
|
205
238
|
// versions.json
|
|
206
239
|
var versions_default = {
|
|
207
|
-
"@baeta/cli": "1.0.
|
|
240
|
+
"@baeta/cli": "1.0.5",
|
|
208
241
|
"@baeta/compiler": "0.1.4",
|
|
209
242
|
"@baeta/core": "0.1.5",
|
|
210
|
-
"create-baeta": "0.0.
|
|
243
|
+
"create-baeta": "0.0.3",
|
|
211
244
|
"@baeta/directives": "1.0.5",
|
|
212
245
|
"@baeta/env": "0.1.3",
|
|
213
246
|
"@baeta/errors": "0.1.4",
|
|
@@ -218,17 +251,17 @@ var versions_default = {
|
|
|
218
251
|
"@baeta/extension-cache-redis": "0.0.5",
|
|
219
252
|
"@baeta/extension-cache-upstash": "0.0.5",
|
|
220
253
|
"@baeta/extension-complexity": "0.0.4",
|
|
221
|
-
"@baeta/generator": "0.1.
|
|
222
|
-
"@baeta/generator-sdk": "0.1.
|
|
254
|
+
"@baeta/generator": "0.1.5",
|
|
255
|
+
"@baeta/generator-sdk": "0.1.5",
|
|
223
256
|
"@baeta/plugin": "0.1.4",
|
|
224
|
-
"@baeta/plugin-autoload": "0.1.
|
|
225
|
-
"@baeta/plugin-cloudflare": "1.0.
|
|
226
|
-
"@baeta/plugin-directives": "1.0.
|
|
227
|
-
"@baeta/plugin-exec": "0.1.
|
|
228
|
-
"@baeta/plugin-gitignore": "0.1.
|
|
229
|
-
"@baeta/plugin-graphql": "0.1.
|
|
230
|
-
"@baeta/plugin-pagination": "0.1.
|
|
231
|
-
"@baeta/plugin-prisma": "0.1.
|
|
257
|
+
"@baeta/plugin-autoload": "0.1.5",
|
|
258
|
+
"@baeta/plugin-cloudflare": "1.0.6",
|
|
259
|
+
"@baeta/plugin-directives": "1.0.6",
|
|
260
|
+
"@baeta/plugin-exec": "0.1.5",
|
|
261
|
+
"@baeta/plugin-gitignore": "0.1.5",
|
|
262
|
+
"@baeta/plugin-graphql": "0.1.5",
|
|
263
|
+
"@baeta/plugin-pagination": "0.1.5",
|
|
264
|
+
"@baeta/plugin-prisma": "0.1.5",
|
|
232
265
|
"@baeta/cloudflare-subscriptions": "0.1.4",
|
|
233
266
|
"@baeta/subscriptions-pubsub": "0.0.2",
|
|
234
267
|
"@baeta/util-encoding": "0.0.4",
|
|
@@ -237,6 +270,42 @@ var versions_default = {
|
|
|
237
270
|
"@baeta/util-path": "0.1.4"
|
|
238
271
|
};
|
|
239
272
|
|
|
273
|
+
// lib/package-json.ts
|
|
274
|
+
function createPackageJSON(appName, runtime, packageJson) {
|
|
275
|
+
const meta = structuredClone(packageJson);
|
|
276
|
+
for (const [dep, version2] of Object.entries(versions_default)) {
|
|
277
|
+
if (dep in meta.dependencies) {
|
|
278
|
+
meta.dependencies[dep] = version2;
|
|
279
|
+
} else if (dep in packageJson.devDependencies) {
|
|
280
|
+
meta.devDependencies[dep] = version2;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (runtime === "node") {
|
|
284
|
+
meta.devDependencies["@types/bun"] = void 0;
|
|
285
|
+
meta.devDependencies["@types/deno"] = void 0;
|
|
286
|
+
}
|
|
287
|
+
if (runtime === "bun") {
|
|
288
|
+
meta.scripts.start = `baeta generate --watch --run='bun --watch --inspect src/app.ts'`;
|
|
289
|
+
meta.devDependencies["@types/node"] = void 0;
|
|
290
|
+
meta.devDependencies["@types/deno"] = void 0;
|
|
291
|
+
}
|
|
292
|
+
if (runtime === "deno") {
|
|
293
|
+
meta.scripts.start = `baeta generate --watch --run='deno --watch --allow-env --allow-read --allow-net src/app.ts'`;
|
|
294
|
+
meta.devDependencies["@types/node"] = void 0;
|
|
295
|
+
meta.devDependencies["@types/bun"] = void 0;
|
|
296
|
+
}
|
|
297
|
+
meta.name = appName;
|
|
298
|
+
return JSON.stringify(meta, null, 2);
|
|
299
|
+
}
|
|
300
|
+
function getPackageJson(appName, runtime, templateName) {
|
|
301
|
+
if (templateName === "yoga") {
|
|
302
|
+
return createPackageJSON(appName, runtime, package_default2);
|
|
303
|
+
}
|
|
304
|
+
if (templateName === "apollo") {
|
|
305
|
+
return createPackageJSON(appName, runtime, package_default);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
240
309
|
// ../../tools/tsconfig/tsconfig.json
|
|
241
310
|
var tsconfig_default = {
|
|
242
311
|
$schema: "https://json.schemastore.org/tsconfig",
|
|
@@ -279,32 +348,11 @@ function createTsconfig() {
|
|
|
279
348
|
// lib/templates.ts
|
|
280
349
|
var recommendedTemplate = "yoga";
|
|
281
350
|
var templatesDir = fileURLToPath(new URL("../templates", import.meta.url));
|
|
282
|
-
function
|
|
283
|
-
const meta = structuredClone(packageJson);
|
|
284
|
-
for (const [dep, version2] of Object.entries(versions_default)) {
|
|
285
|
-
if (dep in meta.dependencies) {
|
|
286
|
-
meta.dependencies[dep] = version2;
|
|
287
|
-
} else if (dep in packageJson.devDependencies) {
|
|
288
|
-
meta.devDependencies[dep] = version2;
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
meta.name = appName;
|
|
292
|
-
return JSON.stringify(meta, null, 2);
|
|
293
|
-
}
|
|
294
|
-
function getPackageJson(appName, templateName) {
|
|
295
|
-
if (templateName === "yoga") {
|
|
296
|
-
return createPackageJSON(appName, package_default2);
|
|
297
|
-
}
|
|
298
|
-
if (templateName === "apollo") {
|
|
299
|
-
return createPackageJSON(appName, package_default);
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
async function readTemplates(appName) {
|
|
351
|
+
async function readTemplates() {
|
|
303
352
|
const dirContents = await fs3.readdir(templatesDir);
|
|
304
353
|
const templates = dirContents.filter((template) => template !== "shared").map((template) => ({
|
|
305
354
|
name: template,
|
|
306
|
-
path: path3.join(templatesDir, template)
|
|
307
|
-
packageJson: getPackageJson(appName, template)
|
|
355
|
+
path: path3.join(templatesDir, template)
|
|
308
356
|
}));
|
|
309
357
|
return templates.sort(
|
|
310
358
|
(a, b) => Number(a.name !== recommendedTemplate) - Number(b.name !== recommendedTemplate)
|
|
@@ -322,7 +370,7 @@ function createTemplateChoices(templates) {
|
|
|
322
370
|
async function askTemplateChoice({
|
|
323
371
|
templates
|
|
324
372
|
}) {
|
|
325
|
-
return
|
|
373
|
+
return prompts4(
|
|
326
374
|
{
|
|
327
375
|
type: "select",
|
|
328
376
|
name: "template",
|
|
@@ -331,7 +379,7 @@ async function askTemplateChoice({
|
|
|
331
379
|
},
|
|
332
380
|
{
|
|
333
381
|
onCancel() {
|
|
334
|
-
|
|
382
|
+
logger4.error("A choice is required.");
|
|
335
383
|
process.exit(1);
|
|
336
384
|
}
|
|
337
385
|
}
|
|
@@ -349,8 +397,8 @@ async function fetchGitignore() {
|
|
|
349
397
|
} catch (error) {
|
|
350
398
|
}
|
|
351
399
|
}
|
|
352
|
-
async function getTemplate(
|
|
353
|
-
const templates = await readTemplates(
|
|
400
|
+
async function getTemplate(reqTemplate) {
|
|
401
|
+
const templates = await readTemplates();
|
|
354
402
|
const userProvided = reqTemplate ? templates.find((t) => t.name === reqTemplate) : null;
|
|
355
403
|
const template = userProvided ?? await askTemplateChoice({ templates });
|
|
356
404
|
if (!template) {
|
|
@@ -358,38 +406,48 @@ async function getTemplate(appName, reqTemplate) {
|
|
|
358
406
|
}
|
|
359
407
|
return template;
|
|
360
408
|
}
|
|
361
|
-
async function copyTemplate(template, dest) {
|
|
409
|
+
async function copyTemplate(appName, runtime, template, dest) {
|
|
362
410
|
await fs3.copy(path3.join(templatesDir, "shared"), dest);
|
|
363
411
|
await fs3.copy(template.path, dest, {
|
|
364
412
|
filter: async (filePath) => !(await fs3.lstat(filePath)).isSymbolicLink()
|
|
365
413
|
});
|
|
366
|
-
|
|
367
|
-
|
|
414
|
+
const packageJson = getPackageJson(appName, runtime, template.name);
|
|
415
|
+
if (packageJson) {
|
|
416
|
+
await fs3.writeFile(join(dest, "package.json"), packageJson);
|
|
368
417
|
}
|
|
369
418
|
await fs3.writeFile(join(dest, "tsconfig.json"), JSON.stringify(createTsconfig(), null, 2));
|
|
370
419
|
const gitignore = await fetchGitignore();
|
|
371
420
|
if (gitignore) {
|
|
372
421
|
await fs3.writeFile(join(dest, ".gitignore"), gitignore);
|
|
373
422
|
}
|
|
423
|
+
const hasRuntimeEntry = await fs3.pathExists(join(dest, "src", `app.${runtime}.ts`));
|
|
424
|
+
if (hasRuntimeEntry) {
|
|
425
|
+
await fs3.copyFile(join(dest, "src", `app.${runtime}.ts`), join(dest, "src", "app.ts"));
|
|
426
|
+
await Promise.all(
|
|
427
|
+
runtimes.map((r) => fs3.remove(join(dest, "src", `app.${r}.ts`)).catch(() => {
|
|
428
|
+
}))
|
|
429
|
+
);
|
|
430
|
+
}
|
|
374
431
|
}
|
|
375
432
|
|
|
376
433
|
// lib/handler.ts
|
|
377
434
|
async function handler(args) {
|
|
378
435
|
const appName = await getAppName(args.appName, args.rootDir);
|
|
379
436
|
const dest = path4.resolve(args.rootDir, appName);
|
|
380
|
-
const template = await getTemplate(
|
|
381
|
-
|
|
437
|
+
const template = await getTemplate(args.template);
|
|
438
|
+
const runtime = await getRuntime();
|
|
439
|
+
logger5.info("Creating new Baeta project...");
|
|
382
440
|
try {
|
|
383
|
-
await copyTemplate(template, dest);
|
|
441
|
+
await copyTemplate(appName, runtime, template, dest);
|
|
384
442
|
} catch (err) {
|
|
385
|
-
|
|
443
|
+
logger5.error`Copying Baeta template name=${template.name} failed!`;
|
|
386
444
|
throw err;
|
|
387
445
|
}
|
|
388
446
|
const pkgManager = await getPackageManager(dest, args);
|
|
389
447
|
if (!args.skipInstall) {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
const result =
|
|
448
|
+
shell3.cd(dest);
|
|
449
|
+
logger5.info`Installing dependencies with name=${pkgManager}...`;
|
|
450
|
+
const result = shell3.exec(getInstallCommand(pkgManager), {
|
|
393
451
|
env: {
|
|
394
452
|
...process.env,
|
|
395
453
|
...supportsColor.stdout ? { FORCE_COLOR: "1" } : {}
|
|
@@ -397,8 +455,8 @@ async function handler(args) {
|
|
|
397
455
|
});
|
|
398
456
|
if (result.code !== 0) {
|
|
399
457
|
console.log("Dependency installation failed.");
|
|
400
|
-
|
|
401
|
-
|
|
458
|
+
logger5.error("Dependency installation failed.");
|
|
459
|
+
logger5.info`The app directory has already been created, and you can retry by typing:
|
|
402
460
|
|
|
403
461
|
code=${`cd ${dest}`}
|
|
404
462
|
code=${`${pkgManager} install`}`;
|
|
@@ -408,8 +466,8 @@ code=${`${pkgManager} install`}`;
|
|
|
408
466
|
const useNpm = pkgManager === "npm";
|
|
409
467
|
const useBun = pkgManager === "bun";
|
|
410
468
|
const useRunCommand = useNpm || useBun;
|
|
411
|
-
|
|
412
|
-
|
|
469
|
+
logger5.success`Created name=${dest}.`;
|
|
470
|
+
logger5.info`Inside that directory, you can run several commands:
|
|
413
471
|
|
|
414
472
|
code=${`${pkgManager} start`}
|
|
415
473
|
Starts the development server.
|
|
@@ -425,7 +483,7 @@ We recommend that you begin by typing:
|
|
|
425
483
|
}
|
|
426
484
|
|
|
427
485
|
// package.json
|
|
428
|
-
var version = "0.0.
|
|
486
|
+
var version = "0.0.3";
|
|
429
487
|
var engines = {
|
|
430
488
|
node: ">=22.12.0"
|
|
431
489
|
};
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../cli.ts","../lib/constants.ts","../lib/handler.ts","../lib/app-name.ts","../lib/package-manager.ts","../lib/templates.ts","../meta/apollo/package.json","../meta/yoga/package.json","../versions.json","../../../tools/tsconfig/tsconfig.json","../lib/tsconfig.ts","../package.json"],"sourcesContent":["#!/usr/bin/env node\n\nimport semver from 'semver';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { packageManagers } from './lib/constants.ts';\nimport { handler } from './lib/handler.ts';\nimport { engines, version } from './package.json';\n\nconst requiredVersion = engines.node;\n\nif (!semver.satisfies(process.version, requiredVersion)) {\n\tconsole.log('Minimum Node.js version not met :(');\n\tconsole.info`You are using Node.js number=${process.version}, Requirement: Node.js number=${requiredVersion}.`;\n\tprocess.exit(1);\n}\n\nprocess.on('unhandledRejection', (err) => {\n\tconsole.log(err);\n\tprocess.exit(1);\n});\n\nyargs(hideBin(process.argv))\n\t.version(version)\n\t.command({\n\t\tcommand: '* [appName] [template] [rootDir]',\n\t\tdescribe: 'Initialize Baeta application',\n\t\tbuilder: (yargs) => {\n\t\t\treturn yargs\n\t\t\t\t.option('package-manager', {\n\t\t\t\t\talias: 'p',\n\t\t\t\t\tdescribe: 'The package manager used to install dependencies.',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tchoices: packageManagers,\n\t\t\t\t})\n\t\t\t\t.option('skip-install', {\n\t\t\t\t\talias: 's',\n\t\t\t\t\tdescribe: 'Do not run package manager immediately after scaffolding',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t})\n\t\t\t\t.positional('appName', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Name of the app',\n\t\t\t\t})\n\t\t\t\t.positional('template', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Template to use',\n\t\t\t\t\tchoices: ['yoga', 'apollo'],\n\t\t\t\t})\n\t\t\t\t.positional('rootDir', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Root directory',\n\t\t\t\t\tdefault: '.',\n\t\t\t\t});\n\t\t},\n\t\thandler: (argv) => handler(argv),\n\t})\n\t.showHelpOnFail(true)\n\t.strict()\n\t.help()\n\t.parse();\n","export const defaultPackageManager = 'npm';\n\nexport const lockfileNames = {\n\tnpm: 'package-lock.json',\n\tyarn: 'yarn.lock',\n\tpnpm: 'pnpm-lock.yaml',\n\tbun: 'bun.lockb',\n};\n\nexport const packageManagers = Object.keys(lockfileNames) as PackageManager[];\n\nexport type PackageManager = keyof typeof lockfileNames;\n\nexport const gitignoreUrl =\n\t'https://raw.githubusercontent.com/github/gitignore/refs/heads/main/Node.gitignore';\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport shell from 'shelljs';\nimport supportsColor from 'supports-color';\nimport { getAppName } from './app-name.ts';\nimport type { PackageManager } from './constants.ts';\nimport { getInstallCommand, getPackageManager } from './package-manager.ts';\nimport { copyTemplate, getTemplate } from './templates.ts';\n\ninterface Args {\n\tpackageManager?: PackageManager;\n\tskipInstall?: boolean;\n\tappName?: string;\n\ttemplate?: string;\n\trootDir: string;\n}\n\nexport async function handler(args: Args) {\n\tconst appName = await getAppName(args.appName, args.rootDir);\n\tconst dest = path.resolve(args.rootDir, appName);\n\n\tconst template = await getTemplate(appName, args.template);\n\n\tlogger.info('Creating new Baeta project...');\n\n\ttry {\n\t\tawait copyTemplate(template, dest);\n\t} catch (err) {\n\t\tlogger.error`Copying Baeta template name=${template.name} failed!`;\n\t\tthrow err;\n\t}\n\n\tconst pkgManager = await getPackageManager(dest, args);\n\n\tif (!args.skipInstall) {\n\t\tshell.cd(dest);\n\t\tlogger.info`Installing dependencies with name=${pkgManager}...`;\n\t\tconst result = shell.exec(getInstallCommand(pkgManager), {\n\t\t\tenv: {\n\t\t\t\t...process.env,\n\t\t\t\t...(supportsColor.stdout ? { FORCE_COLOR: '1' } : {}),\n\t\t\t},\n\t\t});\n\n\t\tif (result.code !== 0) {\n\t\t\tconsole.log('Dependency installation failed.');\n\t\t\tlogger.error('Dependency installation failed.');\n\t\t\tlogger.info`The app directory has already been created, and you can retry by typing:\n\ncode=${`cd ${dest}`}\ncode=${`${pkgManager} install`}`;\n\n\t\t\tprocess.exit(0);\n\t\t}\n\t}\n\n\tconst useNpm = pkgManager === 'npm';\n\tconst useBun = pkgManager === 'bun';\n\tconst useRunCommand = useNpm || useBun;\n\n\tlogger.success`Created name=${dest}.`;\n\n\tlogger.info`Inside that directory, you can run several commands:\n\n code=${`${pkgManager} start`}\n Starts the development server.\n\n code=${`${pkgManager} ${useRunCommand ? 'run ' : ''}build`}\n Bundles your server application.\n\nWe recommend that you begin by typing:\n\n code=${`cd ${dest}`}\n code=${`${pkgManager} start`}\n`;\n}\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts from 'prompts';\n\nexport async function getAppName(reqName: string | undefined, rootDir: string): Promise<string> {\n\tasync function validateAppName(appName: string) {\n\t\tif (!appName) {\n\t\t\treturn 'An app name is required.';\n\t\t}\n\t\tconst dest = path.resolve(rootDir, appName);\n\t\tif (await fs.pathExists(dest)) {\n\t\t\treturn logger.interpolate`Directory already exists at path=${dest}!`;\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (reqName) {\n\t\tconst res = await validateAppName(reqName);\n\t\tif (typeof res === 'string') {\n\t\t\tthrow new Error(res);\n\t\t}\n\t\treturn reqName;\n\t}\n\n\treturn prompts(\n\t\t{\n\t\t\ttype: 'text',\n\t\t\tname: 'appName',\n\t\t\tmessage: 'What should we name this app?',\n\t\t\tinitial: 'baeta-app',\n\t\t\tvalidate: validateAppName,\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.error('An app name is required.');\n\t\t\t\tprocess.exit(1);\n\t\t\t},\n\t\t},\n\t).then((result) => (result as { appName: string }).appName);\n}\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts from 'prompts';\nimport shell from 'shelljs';\nimport type { CliOptions } from './cli-options.ts';\nimport {\n\ttype PackageManager,\n\tdefaultPackageManager,\n\tlockfileNames,\n\tpackageManagers,\n} from './constants.ts';\n\nasync function findPackageManagerFromLockFile(\n\trootDir: string,\n): Promise<PackageManager | undefined> {\n\tfor (const packageManager of packageManagers) {\n\t\tconst lockFilePath = path.join(rootDir, lockfileNames[packageManager]);\n\t\tif (await fs.pathExists(lockFilePath)) {\n\t\t\treturn packageManager;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findPackageManagerFromUserAgent(): PackageManager | undefined {\n\treturn packageManagers.find((packageManager) =>\n\t\tprocess.env.npm_config_user_agent?.startsWith(packageManager),\n\t);\n}\n\nasync function askForPackageManagerChoice(): Promise<PackageManager> {\n\tconst hasYarn = shell.exec('yarn --version', { silent: true }).code === 0;\n\tconst hasPnpm = shell.exec('pnpm --version', { silent: true }).code === 0;\n\tconst hasBun = shell.exec('bun --version', { silent: true }).code === 0;\n\n\tif (!hasYarn && !hasPnpm && !hasBun) {\n\t\treturn 'npm';\n\t}\n\tconst choices = ['npm', hasYarn && 'yarn', hasPnpm && 'pnpm', hasBun && 'bun']\n\t\t.filter((p): p is string => Boolean(p))\n\t\t.map((p) => ({ title: p, value: p }));\n\n\tconst manager = await prompts(\n\t\t{\n\t\t\ttype: 'select',\n\t\t\tname: 'packageManager',\n\t\t\tmessage: 'Select a package manager...',\n\t\t\tchoices,\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.info`Falling back to name=${defaultPackageManager}`;\n\t\t\t},\n\t\t},\n\t).then((result) => (result as { packageManager?: PackageManager }).packageManager);\n\n\treturn manager ?? defaultPackageManager;\n}\n\nexport async function getPackageManager(\n\tdest: string,\n\t{ packageManager, skipInstall }: CliOptions,\n): Promise<PackageManager> {\n\tif (packageManager && !packageManagers.includes(packageManager)) {\n\t\tthrow new Error(\n\t\t\t`Invalid package manager choice ${packageManager}. Must be one of ${packageManagers.join(\n\t\t\t\t', ',\n\t\t\t)}`,\n\t\t);\n\t}\n\n\tconst fromLockfile = await findPackageManagerFromLockFile(dest);\n\n\tif (fromLockfile) {\n\t\treturn fromLockfile;\n\t}\n\n\tif (packageManager) {\n\t\treturn packageManager;\n\t}\n\n\tconst fromLockfileInCwd = await findPackageManagerFromLockFile('.');\n\n\tif (fromLockfileInCwd) {\n\t\treturn fromLockfileInCwd;\n\t}\n\n\tconst fromUserAgent = findPackageManagerFromUserAgent();\n\n\tif (fromUserAgent) {\n\t\treturn fromUserAgent;\n\t}\n\n\tif (skipInstall) {\n\t\treturn defaultPackageManager;\n\t}\n\n\treturn askForPackageManagerChoice();\n}\n\nexport function getInstallCommand(pkgManager: PackageManager): string {\n\tif (pkgManager === 'yarn') {\n\t\treturn 'yarn';\n\t}\n\tif (pkgManager === 'bun') {\n\t\treturn 'bun install';\n\t}\n\treturn `${pkgManager} install --color always`;\n}\n","import path, { join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts, { type Choice } from 'prompts';\nimport apolloPackageJson from '../meta/apollo/package.json';\nimport yogaPackageJson from '../meta/yoga/package.json';\nimport dependenciesVersions from '../versions.json';\nimport { gitignoreUrl } from './constants.ts';\nimport { createTsconfig } from './tsconfig.ts';\n\nconst recommendedTemplate = 'yoga';\nconst templatesDir = fileURLToPath(new URL('../templates', import.meta.url));\n\ntype Template = {\n\tname: string;\n\tpath: string;\n\tpackageJson?: string;\n};\n\nfunction createPackageJSON(\n\tappName: string,\n\tpackageJson: {\n\t\tname: string;\n\t\tdependencies: Record<string, string>;\n\t\tdevDependencies: Record<string, string>;\n\t},\n) {\n\tconst meta = structuredClone(packageJson);\n\n\tfor (const [dep, version] of Object.entries(dependenciesVersions)) {\n\t\tif (dep in meta.dependencies) {\n\t\t\tmeta.dependencies[dep] = version;\n\t\t} else if (dep in packageJson.devDependencies) {\n\t\t\tmeta.devDependencies[dep] = version;\n\t\t}\n\t}\n\n\tmeta.name = appName;\n\n\treturn JSON.stringify(meta, null, 2);\n}\n\nfunction getPackageJson(appName: string, templateName: string) {\n\tif (templateName === 'yoga') {\n\t\treturn createPackageJSON(appName, yogaPackageJson);\n\t}\n\n\tif (templateName === 'apollo') {\n\t\treturn createPackageJSON(appName, apolloPackageJson);\n\t}\n}\n\nasync function readTemplates(appName: string): Promise<Template[]> {\n\tconst dirContents = await fs.readdir(templatesDir);\n\n\tconst templates = dirContents\n\t\t.filter((template) => template !== 'shared')\n\t\t.map((template) => ({\n\t\t\tname: template,\n\t\t\tpath: path.join(templatesDir, template),\n\t\t\tpackageJson: getPackageJson(appName, template),\n\t\t}));\n\n\treturn templates.sort(\n\t\t(a, b) => Number(a.name !== recommendedTemplate) - Number(b.name !== recommendedTemplate),\n\t);\n}\n\nfunction createTemplateChoices(templates: Template[]): Choice[] {\n\tfunction makeNameAndValueChoice(value: string | Template): Choice {\n\t\tif (typeof value === 'string') {\n\t\t\treturn { title: value, value };\n\t\t}\n\t\treturn { title: value.name, value };\n\t}\n\n\treturn templates.map((template) => makeNameAndValueChoice(template));\n}\n\nasync function askTemplateChoice({\n\ttemplates,\n}: {\n\ttemplates: Template[];\n}) {\n\treturn prompts(\n\t\t{\n\t\t\ttype: 'select',\n\t\t\tname: 'template',\n\t\t\tmessage: 'Select a template below...',\n\t\t\tchoices: createTemplateChoices(templates),\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.error('A choice is required.');\n\t\t\t\tprocess.exit(1);\n\t\t\t},\n\t\t},\n\t).then((result) => {\n\t\treturn (result as { template: Template }).template;\n\t});\n}\nasync function fetchGitignore() {\n\ttry {\n\t\tconst response = await fetch(gitignoreUrl);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch gitignore: ${response.statusText}`);\n\t\t}\n\n\t\treturn response.text();\n\t} catch (error) {}\n}\n\nexport async function getTemplate(appName: string, reqTemplate: string | undefined) {\n\tconst templates = await readTemplates(appName);\n\n\tconst userProvided = reqTemplate ? templates.find((t) => t.name === reqTemplate) : null;\n\tconst template = userProvided ?? (await askTemplateChoice({ templates }));\n\n\tif (!template) {\n\t\tthrow new Error('Template not found');\n\t}\n\n\treturn template;\n}\n\nexport async function copyTemplate(template: Template, dest: string) {\n\tawait fs.copy(path.join(templatesDir, 'shared'), dest);\n\n\tawait fs.copy(template.path, dest, {\n\t\tfilter: async (filePath) => !(await fs.lstat(filePath)).isSymbolicLink(),\n\t});\n\n\tif (template.packageJson) {\n\t\tawait fs.writeFile(join(dest, 'package.json'), template.packageJson);\n\t}\n\n\tawait fs.writeFile(join(dest, 'tsconfig.json'), JSON.stringify(createTsconfig(), null, 2));\n\n\tconst gitignore = await fetchGitignore();\n\tif (gitignore) {\n\t\tawait fs.writeFile(join(dest, '.gitignore'), gitignore);\n\t}\n}\n","{\n \"name\": \"@baeta/template-apollo\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"baeta build --generate\",\n \"start\": \"baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app'\"\n },\n \"dependencies\": {\n \"@apollo/server\": \"^4.11.2\",\n \"@baeta/core\": \"workspace:^\",\n \"@baeta/errors\": \"workspace:^\",\n \"@baeta/extension-complexity\": \"workspace:^\",\n \"graphql\": \"^16.9.0\"\n },\n \"devDependencies\": {\n \"@baeta/cli\": \"workspace:^\",\n \"@baeta/compiler\": \"workspace:^\",\n \"@baeta/plugin-autoload\": \"workspace:^\",\n \"@types/node\": \"^22.10.1\",\n \"typescript\": \"^5.7.2\"\n }\n}\n","{\n \"name\": \"@baeta/template-yoga\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"baeta build --generate\",\n \"start\": \"baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app'\"\n },\n \"dependencies\": {\n \"@baeta/core\": \"workspace:^\",\n \"@baeta/errors\": \"workspace:^\",\n \"@baeta/extension-complexity\": \"workspace:^\",\n \"graphql\": \"^16.9.0\",\n \"graphql-yoga\": \"^5.10.4\"\n },\n \"devDependencies\": {\n \"@baeta/cli\": \"workspace:^\",\n \"@baeta/compiler\": \"workspace:^\",\n \"@baeta/plugin-autoload\": \"workspace:^\",\n \"@types/node\": \"^22.10.1\",\n \"typescript\": \"^5.7.2\"\n }\n}\n","{\n \"@baeta/cli\": \"1.0.4\",\n \"@baeta/compiler\": \"0.1.4\",\n \"@baeta/core\": \"0.1.5\",\n \"create-baeta\": \"0.0.1\",\n \"@baeta/directives\": \"1.0.5\",\n \"@baeta/env\": \"0.1.3\",\n \"@baeta/errors\": \"0.1.4\",\n \"@baeta/extension-auth\": \"1.0.5\",\n \"@baeta/extension-cache\": \"0.0.5\",\n \"@baeta/extension-cache-cloudflare\": \"0.0.5\",\n \"@baeta/extension-cache-keyv\": \"0.0.5\",\n \"@baeta/extension-cache-redis\": \"0.0.5\",\n \"@baeta/extension-cache-upstash\": \"0.0.5\",\n \"@baeta/extension-complexity\": \"0.0.4\",\n \"@baeta/generator\": \"0.1.4\",\n \"@baeta/generator-sdk\": \"0.1.4\",\n \"@baeta/plugin\": \"0.1.4\",\n \"@baeta/plugin-autoload\": \"0.1.4\",\n \"@baeta/plugin-cloudflare\": \"1.0.5\",\n \"@baeta/plugin-directives\": \"1.0.5\",\n \"@baeta/plugin-exec\": \"0.1.4\",\n \"@baeta/plugin-gitignore\": \"0.1.4\",\n \"@baeta/plugin-graphql\": \"0.1.4\",\n \"@baeta/plugin-pagination\": \"0.1.4\",\n \"@baeta/plugin-prisma\": \"0.1.4\",\n \"@baeta/cloudflare-subscriptions\": \"0.1.4\",\n \"@baeta/subscriptions-pubsub\": \"0.0.2\",\n \"@baeta/util-encoding\": \"0.0.4\",\n \"@baeta/util-env\": \"0.1.3\",\n \"@baeta/util-log\": \"0.1.3\",\n \"@baeta/util-path\": \"0.1.4\"\n}","{\n \"$schema\": \"https://json.schemastore.org/tsconfig\",\n \"compilerOptions\": {\n \"target\": \"es2023\",\n \"lib\": [\n \"es2024\"\n ],\n \"module\": \"esnext\",\n \"noEmit\": true,\n \"strict\": true,\n \"noImplicitAny\": true,\n \"isolatedModules\": true,\n \"esModuleInterop\": true,\n \"verbatimModuleSyntax\": true,\n \"allowImportingTsExtensions\": true,\n \"allowSyntheticDefaultImports\": true,\n \"skipLibCheck\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"moduleResolution\": \"bundler\"\n }\n}\n","import tsconfig from '../../../tools/tsconfig/tsconfig.json';\n\nexport function createTsconfig() {\n\tconst current = structuredClone(tsconfig);\n\n\treturn {\n\t\t...current,\n\t\tcompilerOptions: {\n\t\t\t...current.compilerOptions,\n\t\t\trootDir: 'src',\n\t\t\toutDir: 'dist',\n\t\t\tnoEmit: true,\n\t\t\temitDeclarationOnly: false,\n\t\t},\n\t\texclude: ['baeta.ts'],\n\t};\n}\n","{\n \"name\": \"create-baeta\",\n \"version\": \"0.0.1\",\n \"keywords\": [\n \"baeta\",\n \"graphql\",\n \"schema\",\n \"types\",\n \"typescript\",\n \"framework\",\n \"builder\"\n ],\n \"homepage\": \"https://github.com/andreisergiu98/baeta#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/andreisergiu98/baeta/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/andreisergiu98/baeta.git\",\n \"directory\": \"packages/create-baeta\"\n },\n \"license\": \"MIT\",\n \"author\": {\n \"name\": \"Andrei Pampu\",\n \"url\": \"https://github.com/andreisergiu98\"\n },\n \"type\": \"module\",\n \"bin\": \"dist/cli.js\",\n \"exports\": {\n \".\": {\n \"types\": \"./index.ts\",\n \"default\": \"./dist/index.js\"\n }\n },\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"templates\",\n \"package.json\"\n ],\n \"scripts\": {\n \"build\": \"yarn build:versions && tsup\",\n \"build:versions\": \"node --no-warnings --experimental-transform-types ./scripts/version-manifest.ts\",\n \"prepack\": \"prep\",\n \"postpack\": \"prep --clean\",\n \"types\": \"yarn build:versions && tsc --noEmit\"\n },\n \"dependencies\": {\n \"@docusaurus/logger\": \"^3.6.3\",\n \"fs-extra\": \"^11.2.0\",\n \"prompts\": \"^2.4.2\",\n \"semver\": \"^7.6.3\",\n \"shelljs\": \"^0.8.5\",\n \"supports-color\": \"^9.4.0\",\n \"yargs\": \"^17.7.2\"\n },\n \"devDependencies\": {\n \"@baeta/builder\": \"workspace:^\",\n \"@baeta/tsconfig\": \"workspace:^\",\n \"@types/fs-extra\": \"^11.0.4\",\n \"@types/node\": \"^22.10.1\",\n \"@types/prompts\": \"^2.4.9\",\n \"@types/semver\": \"^7.5.8\",\n \"@types/shelljs\": \"^0.8.15\",\n \"@types/yargs\": \"^17.0.33\",\n \"typescript\": \"^5.7.2\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"default\": \"./dist/index.js\"\n }\n }\n },\n \"ava\": {\n \"extensions\": {\n \"ts\": \"module\"\n },\n \"nodeArguments\": [\n \"--no-warnings\",\n \"--experimental-transform-types\"\n ]\n },\n \"typedocOptions\": {\n \"entryPoints\": [\n \"./index.ts\"\n ],\n \"readme\": \"none\",\n \"tsconfig\": \"./tsconfig.json\"\n }\n}\n"],"mappings":"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","names":["path","logger","shell","path","logger","fs","prompts","path","fs","prompts","logger","path","logger","fs","prompts","package_default","version","package_default","fs","path","prompts","logger","path","logger","shell","yargs"]}
|
|
1
|
+
{"version":3,"sources":["../cli.ts","../lib/constants.ts","../lib/handler.ts","../lib/app-name.ts","../lib/package-manager.ts","../lib/runtime.ts","../lib/templates.ts","../meta/apollo/package.json","../meta/yoga/package.json","../versions.json","../lib/package-json.ts","../../../tools/tsconfig/tsconfig.json","../lib/tsconfig.ts","../package.json"],"sourcesContent":["#!/usr/bin/env node\n\nimport semver from 'semver';\nimport yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\nimport { packageManagers } from './lib/constants.ts';\nimport { handler } from './lib/handler.ts';\nimport { engines, version } from './package.json';\n\nconst requiredVersion = engines.node;\n\nif (!semver.satisfies(process.version, requiredVersion)) {\n\tconsole.log('Minimum Node.js version not met :(');\n\tconsole.info`You are using Node.js number=${process.version}, Requirement: Node.js number=${requiredVersion}.`;\n\tprocess.exit(1);\n}\n\nprocess.on('unhandledRejection', (err) => {\n\tconsole.log(err);\n\tprocess.exit(1);\n});\n\nyargs(hideBin(process.argv))\n\t.version(version)\n\t.command({\n\t\tcommand: '* [appName] [template] [rootDir]',\n\t\tdescribe: 'Initialize Baeta application',\n\t\tbuilder: (yargs) => {\n\t\t\treturn yargs\n\t\t\t\t.option('package-manager', {\n\t\t\t\t\talias: 'p',\n\t\t\t\t\tdescribe: 'The package manager used to install dependencies.',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tchoices: packageManagers,\n\t\t\t\t})\n\t\t\t\t.option('skip-install', {\n\t\t\t\t\talias: 's',\n\t\t\t\t\tdescribe: 'Do not run package manager immediately after scaffolding',\n\t\t\t\t\ttype: 'boolean',\n\t\t\t\t})\n\t\t\t\t.positional('appName', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Name of the app',\n\t\t\t\t})\n\t\t\t\t.positional('template', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Template to use',\n\t\t\t\t\tchoices: ['yoga', 'apollo'],\n\t\t\t\t})\n\t\t\t\t.positional('rootDir', {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescribe: 'Root directory',\n\t\t\t\t\tdefault: '.',\n\t\t\t\t});\n\t\t},\n\t\thandler: (argv) => handler(argv),\n\t})\n\t.showHelpOnFail(true)\n\t.strict()\n\t.help()\n\t.parse();\n","export const defaultPackageManager = 'npm';\n\nexport const lockfileNames = {\n\tnpm: 'package-lock.json',\n\tyarn: 'yarn.lock',\n\tpnpm: 'pnpm-lock.yaml',\n\tbun: 'bun.lockb',\n};\n\nexport const packageManagers = Object.keys(lockfileNames) as PackageManager[];\n\nexport type PackageManager = keyof typeof lockfileNames;\n\nexport const runtimes = ['node', 'deno', 'bun'] as const;\n\nexport type JavaScriptRuntime = (typeof runtimes)[number];\n\nexport const defaultJavaScriptRuntime = 'node';\n\nexport const gitignoreUrl =\n\t'https://raw.githubusercontent.com/github/gitignore/refs/heads/main/Node.gitignore';\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport shell from 'shelljs';\nimport supportsColor from 'supports-color';\nimport { getAppName } from './app-name.ts';\nimport type { PackageManager } from './constants.ts';\nimport { getInstallCommand, getPackageManager } from './package-manager.ts';\nimport { getRuntime } from './runtime.ts';\nimport { copyTemplate, getTemplate } from './templates.ts';\n\ninterface Args {\n\tpackageManager?: PackageManager;\n\tskipInstall?: boolean;\n\tappName?: string;\n\ttemplate?: string;\n\trootDir: string;\n}\n\nexport async function handler(args: Args) {\n\tconst appName = await getAppName(args.appName, args.rootDir);\n\tconst dest = path.resolve(args.rootDir, appName);\n\n\tconst template = await getTemplate(args.template);\n\n\tconst runtime = await getRuntime();\n\n\tlogger.info('Creating new Baeta project...');\n\n\ttry {\n\t\tawait copyTemplate(appName, runtime, template, dest);\n\t} catch (err) {\n\t\tlogger.error`Copying Baeta template name=${template.name} failed!`;\n\t\tthrow err;\n\t}\n\n\tconst pkgManager = await getPackageManager(dest, args);\n\n\tif (!args.skipInstall) {\n\t\tshell.cd(dest);\n\t\tlogger.info`Installing dependencies with name=${pkgManager}...`;\n\t\tconst result = shell.exec(getInstallCommand(pkgManager), {\n\t\t\tenv: {\n\t\t\t\t...process.env,\n\t\t\t\t...(supportsColor.stdout ? { FORCE_COLOR: '1' } : {}),\n\t\t\t},\n\t\t});\n\n\t\tif (result.code !== 0) {\n\t\t\tconsole.log('Dependency installation failed.');\n\t\t\tlogger.error('Dependency installation failed.');\n\t\t\tlogger.info`The app directory has already been created, and you can retry by typing:\n\ncode=${`cd ${dest}`}\ncode=${`${pkgManager} install`}`;\n\n\t\t\tprocess.exit(0);\n\t\t}\n\t}\n\n\tconst useNpm = pkgManager === 'npm';\n\tconst useBun = pkgManager === 'bun';\n\tconst useRunCommand = useNpm || useBun;\n\n\tlogger.success`Created name=${dest}.`;\n\n\tlogger.info`Inside that directory, you can run several commands:\n\n code=${`${pkgManager} start`}\n Starts the development server.\n\n code=${`${pkgManager} ${useRunCommand ? 'run ' : ''}build`}\n Bundles your server application.\n\nWe recommend that you begin by typing:\n\n code=${`cd ${dest}`}\n code=${`${pkgManager} start`}\n`;\n}\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts from 'prompts';\n\nexport async function getAppName(reqName: string | undefined, rootDir: string): Promise<string> {\n\tasync function validateAppName(appName: string) {\n\t\tif (!appName) {\n\t\t\treturn 'An app name is required.';\n\t\t}\n\t\tconst dest = path.resolve(rootDir, appName);\n\t\tif (await fs.pathExists(dest)) {\n\t\t\treturn logger.interpolate`Directory already exists at path=${dest}!`;\n\t\t}\n\t\treturn true;\n\t}\n\n\tif (reqName) {\n\t\tconst res = await validateAppName(reqName);\n\t\tif (typeof res === 'string') {\n\t\t\tthrow new Error(res);\n\t\t}\n\t\treturn reqName;\n\t}\n\n\treturn prompts(\n\t\t{\n\t\t\ttype: 'text',\n\t\t\tname: 'appName',\n\t\t\tmessage: 'What should we name this app?',\n\t\t\tinitial: 'baeta-app',\n\t\t\tvalidate: validateAppName,\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.error('An app name is required.');\n\t\t\t\tprocess.exit(1);\n\t\t\t},\n\t\t},\n\t).then((result) => (result as { appName: string }).appName);\n}\n","import path from 'node:path';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts from 'prompts';\nimport shell from 'shelljs';\nimport type { CliOptions } from './cli-options.ts';\nimport {\n\ttype PackageManager,\n\tdefaultPackageManager,\n\tlockfileNames,\n\tpackageManagers,\n} from './constants.ts';\n\nasync function findPackageManagerFromLockFile(\n\trootDir: string,\n): Promise<PackageManager | undefined> {\n\tfor (const packageManager of packageManagers) {\n\t\tconst lockFilePath = path.join(rootDir, lockfileNames[packageManager]);\n\t\tif (await fs.pathExists(lockFilePath)) {\n\t\t\treturn packageManager;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nfunction findPackageManagerFromUserAgent(): PackageManager | undefined {\n\treturn packageManagers.find((packageManager) =>\n\t\tprocess.env.npm_config_user_agent?.startsWith(packageManager),\n\t);\n}\n\nasync function askForPackageManagerChoice(): Promise<PackageManager> {\n\tconst hasYarn = shell.exec('yarn --version', { silent: true }).code === 0;\n\tconst hasPnpm = shell.exec('pnpm --version', { silent: true }).code === 0;\n\tconst hasBun = shell.exec('bun --version', { silent: true }).code === 0;\n\n\tif (!hasYarn && !hasPnpm && !hasBun) {\n\t\treturn 'npm';\n\t}\n\tconst choices = ['npm', hasYarn && 'yarn', hasPnpm && 'pnpm', hasBun && 'bun']\n\t\t.filter((p): p is string => Boolean(p))\n\t\t.map((p) => ({ title: p, value: p }));\n\n\tconst manager = await prompts(\n\t\t{\n\t\t\ttype: 'select',\n\t\t\tname: 'packageManager',\n\t\t\tmessage: 'Select a package manager...',\n\t\t\tchoices,\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.info`Falling back to name=${defaultPackageManager}`;\n\t\t\t},\n\t\t},\n\t).then((result) => (result as { packageManager?: PackageManager }).packageManager);\n\n\treturn manager ?? defaultPackageManager;\n}\n\nexport async function getPackageManager(\n\tdest: string,\n\t{ packageManager, skipInstall }: CliOptions,\n): Promise<PackageManager> {\n\tif (packageManager && !packageManagers.includes(packageManager)) {\n\t\tthrow new Error(\n\t\t\t`Invalid package manager choice ${packageManager}. Must be one of ${packageManagers.join(\n\t\t\t\t', ',\n\t\t\t)}`,\n\t\t);\n\t}\n\n\tconst fromLockfile = await findPackageManagerFromLockFile(dest);\n\n\tif (fromLockfile) {\n\t\treturn fromLockfile;\n\t}\n\n\tif (packageManager) {\n\t\treturn packageManager;\n\t}\n\n\tconst fromLockfileInCwd = await findPackageManagerFromLockFile('.');\n\n\tif (fromLockfileInCwd) {\n\t\treturn fromLockfileInCwd;\n\t}\n\n\tconst fromUserAgent = findPackageManagerFromUserAgent();\n\n\tif (fromUserAgent) {\n\t\treturn fromUserAgent;\n\t}\n\n\tif (skipInstall) {\n\t\treturn defaultPackageManager;\n\t}\n\n\treturn askForPackageManagerChoice();\n}\n\nexport function getInstallCommand(pkgManager: PackageManager): string {\n\tif (pkgManager === 'yarn') {\n\t\treturn 'yarn';\n\t}\n\tif (pkgManager === 'bun') {\n\t\treturn 'bun install';\n\t}\n\treturn `${pkgManager} install --color always`;\n}\n","import { logger } from '@docusaurus/logger';\nimport prompts from 'prompts';\nimport shell from 'shelljs';\nimport { type JavaScriptRuntime, defaultJavaScriptRuntime } from './constants.ts';\n\nexport async function getRuntime(): Promise<JavaScriptRuntime> {\n\tconst hasBun = shell.exec('bun --version', { silent: true }).code === 0;\n\tconst hasDeno = shell.exec('deno --version', { silent: true }).code === 0;\n\n\tif (!hasDeno && !hasBun) {\n\t\treturn 'node';\n\t}\n\tconst choices = ['node', hasBun && 'bun', hasDeno && 'deno']\n\t\t.filter((p): p is string => Boolean(p))\n\t\t.map((p) => ({ title: p, value: p }));\n\n\tconst runtime = await prompts(\n\t\t{\n\t\t\ttype: 'select',\n\t\t\tname: 'runtime',\n\t\t\tmessage: 'Select a runtime...',\n\t\t\tchoices,\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.info`Falling back to name=${defaultJavaScriptRuntime}`;\n\t\t\t},\n\t\t},\n\t).then((result) => (result as { runtime?: JavaScriptRuntime }).runtime);\n\n\treturn runtime ?? defaultJavaScriptRuntime;\n}\n","import path, { join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { logger } from '@docusaurus/logger';\nimport fs from 'fs-extra';\nimport prompts, { type Choice } from 'prompts';\nimport { type JavaScriptRuntime, gitignoreUrl, runtimes } from './constants.ts';\nimport { getPackageJson } from './package-json.ts';\nimport { createTsconfig } from './tsconfig.ts';\n\nconst recommendedTemplate = 'yoga';\nconst templatesDir = fileURLToPath(new URL('../templates', import.meta.url));\n\ntype Template = {\n\tname: string;\n\tpath: string;\n\tpackageJsn?: string;\n};\n\nasync function readTemplates(): Promise<Template[]> {\n\tconst dirContents = await fs.readdir(templatesDir);\n\n\tconst templates = dirContents\n\t\t.filter((template) => template !== 'shared')\n\t\t.map((template) => ({\n\t\t\tname: template,\n\t\t\tpath: path.join(templatesDir, template),\n\t\t}));\n\n\treturn templates.sort(\n\t\t(a, b) => Number(a.name !== recommendedTemplate) - Number(b.name !== recommendedTemplate),\n\t);\n}\n\nfunction createTemplateChoices(templates: Template[]): Choice[] {\n\tfunction makeNameAndValueChoice(value: string | Template): Choice {\n\t\tif (typeof value === 'string') {\n\t\t\treturn { title: value, value };\n\t\t}\n\t\treturn { title: value.name, value };\n\t}\n\n\treturn templates.map((template) => makeNameAndValueChoice(template));\n}\n\nasync function askTemplateChoice({\n\ttemplates,\n}: {\n\ttemplates: Template[];\n}) {\n\treturn prompts(\n\t\t{\n\t\t\ttype: 'select',\n\t\t\tname: 'template',\n\t\t\tmessage: 'Select a template below...',\n\t\t\tchoices: createTemplateChoices(templates),\n\t\t},\n\t\t{\n\t\t\tonCancel() {\n\t\t\t\tlogger.error('A choice is required.');\n\t\t\t\tprocess.exit(1);\n\t\t\t},\n\t\t},\n\t).then((result) => {\n\t\treturn (result as { template: Template }).template;\n\t});\n}\nasync function fetchGitignore() {\n\ttry {\n\t\tconst response = await fetch(gitignoreUrl);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`Failed to fetch gitignore: ${response.statusText}`);\n\t\t}\n\n\t\treturn response.text();\n\t} catch (error) {}\n}\n\nexport async function getTemplate(reqTemplate: string | undefined) {\n\tconst templates = await readTemplates();\n\n\tconst userProvided = reqTemplate ? templates.find((t) => t.name === reqTemplate) : null;\n\tconst template = userProvided ?? (await askTemplateChoice({ templates }));\n\n\tif (!template) {\n\t\tthrow new Error('Template not found');\n\t}\n\n\treturn template;\n}\n\nexport async function copyTemplate(\n\tappName: string,\n\truntime: JavaScriptRuntime,\n\ttemplate: Template,\n\tdest: string,\n) {\n\tawait fs.copy(path.join(templatesDir, 'shared'), dest);\n\n\tawait fs.copy(template.path, dest, {\n\t\tfilter: async (filePath) => !(await fs.lstat(filePath)).isSymbolicLink(),\n\t});\n\n\tconst packageJson = getPackageJson(appName, runtime, template.name);\n\n\tif (packageJson) {\n\t\tawait fs.writeFile(join(dest, 'package.json'), packageJson);\n\t}\n\n\tawait fs.writeFile(join(dest, 'tsconfig.json'), JSON.stringify(createTsconfig(), null, 2));\n\n\tconst gitignore = await fetchGitignore();\n\tif (gitignore) {\n\t\tawait fs.writeFile(join(dest, '.gitignore'), gitignore);\n\t}\n\n\tconst hasRuntimeEntry = await fs.pathExists(join(dest, 'src', `app.${runtime}.ts`));\n\n\tif (hasRuntimeEntry) {\n\t\tawait fs.copyFile(join(dest, 'src', `app.${runtime}.ts`), join(dest, 'src', 'app.ts'));\n\t\tawait Promise.all(\n\t\t\truntimes.map((r) => fs.remove(join(dest, 'src', `app.${r}.ts`)).catch(() => {})),\n\t\t);\n\t}\n}\n","{\n \"name\": \"@baeta/template-apollo\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"baeta build --generate\",\n \"start\": \"baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app.js'\"\n },\n \"dependencies\": {\n \"@apollo/server\": \"^4.11.2\",\n \"@baeta/core\": \"workspace:^\",\n \"@baeta/errors\": \"workspace:^\",\n \"@baeta/extension-complexity\": \"workspace:^\",\n \"graphql\": \"^16.9.0\"\n },\n \"devDependencies\": {\n \"@baeta/cli\": \"workspace:^\",\n \"@baeta/compiler\": \"workspace:^\",\n \"@baeta/plugin-autoload\": \"workspace:^\",\n \"@types/bun\": \"^1.1.14\",\n \"@types/deno\": \"^2.0.0\",\n \"@types/node\": \"^22.10.1\",\n \"typescript\": \"^5.7.2\"\n }\n}\n","{\n \"name\": \"@baeta/template-yoga\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"baeta build --generate\",\n \"start\": \"baeta build --watch --generate --onSuccess='node --enable-source-maps --inspect dist/app.js'\"\n },\n \"dependencies\": {\n \"@baeta/core\": \"workspace:^\",\n \"@baeta/errors\": \"workspace:^\",\n \"@baeta/extension-complexity\": \"workspace:^\",\n \"graphql\": \"^16.9.0\",\n \"graphql-yoga\": \"^5.10.4\"\n },\n \"devDependencies\": {\n \"@baeta/cli\": \"workspace:^\",\n \"@baeta/compiler\": \"workspace:^\",\n \"@baeta/plugin-autoload\": \"workspace:^\",\n \"@types/bun\": \"^1.1.14\",\n \"@types/deno\": \"^2.0.0\",\n \"@types/node\": \"^22.10.1\",\n \"typescript\": \"^5.7.2\"\n }\n}\n","{\n \"@baeta/cli\": \"1.0.5\",\n \"@baeta/compiler\": \"0.1.4\",\n \"@baeta/core\": \"0.1.5\",\n \"create-baeta\": \"0.0.3\",\n \"@baeta/directives\": \"1.0.5\",\n \"@baeta/env\": \"0.1.3\",\n \"@baeta/errors\": \"0.1.4\",\n \"@baeta/extension-auth\": \"1.0.5\",\n \"@baeta/extension-cache\": \"0.0.5\",\n \"@baeta/extension-cache-cloudflare\": \"0.0.5\",\n \"@baeta/extension-cache-keyv\": \"0.0.5\",\n \"@baeta/extension-cache-redis\": \"0.0.5\",\n \"@baeta/extension-cache-upstash\": \"0.0.5\",\n \"@baeta/extension-complexity\": \"0.0.4\",\n \"@baeta/generator\": \"0.1.5\",\n \"@baeta/generator-sdk\": \"0.1.5\",\n \"@baeta/plugin\": \"0.1.4\",\n \"@baeta/plugin-autoload\": \"0.1.5\",\n \"@baeta/plugin-cloudflare\": \"1.0.6\",\n \"@baeta/plugin-directives\": \"1.0.6\",\n \"@baeta/plugin-exec\": \"0.1.5\",\n \"@baeta/plugin-gitignore\": \"0.1.5\",\n \"@baeta/plugin-graphql\": \"0.1.5\",\n \"@baeta/plugin-pagination\": \"0.1.5\",\n \"@baeta/plugin-prisma\": \"0.1.5\",\n \"@baeta/cloudflare-subscriptions\": \"0.1.4\",\n \"@baeta/subscriptions-pubsub\": \"0.0.2\",\n \"@baeta/util-encoding\": \"0.0.4\",\n \"@baeta/util-env\": \"0.1.3\",\n \"@baeta/util-log\": \"0.1.3\",\n \"@baeta/util-path\": \"0.1.4\"\n}","import apolloPackageJson from '../meta/apollo/package.json';\nimport yogaPackageJson from '../meta/yoga/package.json';\nimport dependenciesVersions from '../versions.json';\nimport type { JavaScriptRuntime } from './constants.ts';\n\nfunction createPackageJSON(\n\tappName: string,\n\truntime: JavaScriptRuntime,\n\tpackageJson: {\n\t\tname: string;\n\t\tscripts: Record<string, string | undefined>;\n\t\tdependencies: Record<string, string | undefined>;\n\t\tdevDependencies: Record<string, string | undefined>;\n\t},\n) {\n\tconst meta = structuredClone(packageJson);\n\n\tfor (const [dep, version] of Object.entries(dependenciesVersions)) {\n\t\tif (dep in meta.dependencies) {\n\t\t\tmeta.dependencies[dep] = version;\n\t\t} else if (dep in packageJson.devDependencies) {\n\t\t\tmeta.devDependencies[dep] = version;\n\t\t}\n\t}\n\n\tif (runtime === 'node') {\n\t\tmeta.devDependencies['@types/bun'] = undefined;\n\t\tmeta.devDependencies['@types/deno'] = undefined;\n\t}\n\n\tif (runtime === 'bun') {\n\t\tmeta.scripts.start = `baeta generate --watch --run='bun --watch --inspect src/app.ts'`;\n\t\tmeta.devDependencies['@types/node'] = undefined;\n\t\tmeta.devDependencies['@types/deno'] = undefined;\n\t}\n\n\tif (runtime === 'deno') {\n\t\tmeta.scripts.start = `baeta generate --watch --run='deno --watch --allow-env --allow-read --allow-net src/app.ts'`;\n\t\tmeta.devDependencies['@types/node'] = undefined;\n\t\tmeta.devDependencies['@types/bun'] = undefined;\n\t}\n\n\tmeta.name = appName;\n\n\treturn JSON.stringify(meta, null, 2);\n}\n\nexport function getPackageJson(appName: string, runtime: JavaScriptRuntime, templateName: string) {\n\tif (templateName === 'yoga') {\n\t\treturn createPackageJSON(appName, runtime, yogaPackageJson);\n\t}\n\n\tif (templateName === 'apollo') {\n\t\treturn createPackageJSON(appName, runtime, apolloPackageJson);\n\t}\n}\n","{\n \"$schema\": \"https://json.schemastore.org/tsconfig\",\n \"compilerOptions\": {\n \"target\": \"es2023\",\n \"lib\": [\n \"es2024\"\n ],\n \"module\": \"esnext\",\n \"noEmit\": true,\n \"strict\": true,\n \"noImplicitAny\": true,\n \"isolatedModules\": true,\n \"esModuleInterop\": true,\n \"verbatimModuleSyntax\": true,\n \"allowImportingTsExtensions\": true,\n \"allowSyntheticDefaultImports\": true,\n \"skipLibCheck\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"moduleResolution\": \"bundler\"\n }\n}\n","import tsconfig from '../../../tools/tsconfig/tsconfig.json';\n\nexport function createTsconfig() {\n\tconst current = structuredClone(tsconfig);\n\n\treturn {\n\t\t...current,\n\t\tcompilerOptions: {\n\t\t\t...current.compilerOptions,\n\t\t\trootDir: 'src',\n\t\t\toutDir: 'dist',\n\t\t\tnoEmit: true,\n\t\t\temitDeclarationOnly: false,\n\t\t},\n\t\texclude: ['baeta.ts'],\n\t};\n}\n","{\n \"name\": \"create-baeta\",\n \"version\": \"0.0.3\",\n \"keywords\": [\n \"baeta\",\n \"graphql\",\n \"schema\",\n \"types\",\n \"typescript\",\n \"framework\",\n \"builder\"\n ],\n \"homepage\": \"https://github.com/andreisergiu98/baeta#readme\",\n \"bugs\": {\n \"url\": \"https://github.com/andreisergiu98/baeta/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/andreisergiu98/baeta.git\",\n \"directory\": \"packages/create-baeta\"\n },\n \"license\": \"MIT\",\n \"author\": {\n \"name\": \"Andrei Pampu\",\n \"url\": \"https://github.com/andreisergiu98\"\n },\n \"type\": \"module\",\n \"bin\": \"dist/cli.js\",\n \"exports\": {\n \".\": {\n \"types\": \"./index.ts\",\n \"default\": \"./dist/index.js\"\n }\n },\n \"types\": \"dist/index.d.ts\",\n \"files\": [\n \"dist\",\n \"templates\",\n \"package.json\"\n ],\n \"scripts\": {\n \"build\": \"yarn build:versions && tsup\",\n \"build:versions\": \"node --no-warnings --experimental-transform-types ./scripts/version-manifest.ts\",\n \"prepack\": \"prep\",\n \"postpack\": \"prep --clean\",\n \"types\": \"yarn build:versions && tsc --noEmit\"\n },\n \"dependencies\": {\n \"@docusaurus/logger\": \"^3.6.3\",\n \"fs-extra\": \"^11.2.0\",\n \"prompts\": \"^2.4.2\",\n \"semver\": \"^7.6.3\",\n \"shelljs\": \"^0.8.5\",\n \"supports-color\": \"^9.4.0\",\n \"yargs\": \"^17.7.2\"\n },\n \"devDependencies\": {\n \"@baeta/builder\": \"workspace:^\",\n \"@baeta/tsconfig\": \"workspace:^\",\n \"@types/fs-extra\": \"^11.0.4\",\n \"@types/node\": \"^22.10.1\",\n \"@types/prompts\": \"^2.4.9\",\n \"@types/semver\": \"^7.5.8\",\n \"@types/shelljs\": \"^0.8.15\",\n \"@types/yargs\": \"^17.0.33\",\n \"typescript\": \"^5.7.2\"\n },\n \"engines\": {\n \"node\": \">=22.12.0\"\n },\n \"publishConfig\": {\n \"access\": \"public\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"default\": \"./dist/index.js\"\n }\n }\n },\n \"ava\": {\n \"extensions\": {\n \"ts\": \"module\"\n },\n \"nodeArguments\": [\n \"--no-warnings\",\n \"--experimental-transform-types\"\n ]\n },\n \"typedocOptions\": {\n \"entryPoints\": [\n \"./index.ts\"\n ],\n \"readme\": \"none\",\n \"tsconfig\": \"./tsconfig.json\"\n }\n}\n"],"mappings":"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","names":["path","logger","shell","path","logger","fs","prompts","path","fs","prompts","logger","logger","prompts","shell","shell","prompts","logger","path","logger","fs","prompts","package_default","version","package_default","fs","path","prompts","logger","path","logger","shell","yargs"]}
|
package/package.json
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createApplication } from '@baeta/core';
|
|
2
|
+
import { createYoga } from 'graphql-yoga';
|
|
3
|
+
import { modules } from './modules/autoload.ts';
|
|
4
|
+
import type { Context, ServerContext } from './types/context.ts';
|
|
5
|
+
|
|
6
|
+
const baeta = createApplication({
|
|
7
|
+
modules,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export const yoga = createYoga<ServerContext, Context>({
|
|
11
|
+
schema: baeta.schema,
|
|
12
|
+
context: {
|
|
13
|
+
appVersion: '1.0.0',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
Bun.serve({
|
|
18
|
+
fetch: yoga.fetch,
|
|
19
|
+
port: 4000,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
console.log(`🚀 Server ready at http://localhost:4000${yoga.graphqlEndpoint}`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createApplication } from '@baeta/core';
|
|
2
|
+
import { createYoga } from 'graphql-yoga';
|
|
3
|
+
import { modules } from './modules/autoload.ts';
|
|
4
|
+
import type { Context, ServerContext } from './types/context.ts';
|
|
5
|
+
|
|
6
|
+
const baeta = createApplication({
|
|
7
|
+
modules,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
export const yoga = createYoga<ServerContext, Context>({
|
|
11
|
+
schema: baeta.schema,
|
|
12
|
+
context: {
|
|
13
|
+
appVersion: '1.0.0',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
Deno.serve(
|
|
18
|
+
{
|
|
19
|
+
port: 4000,
|
|
20
|
+
onListen() {
|
|
21
|
+
console.log(`🚀 Server ready at http://localhost:4000${yoga.graphqlEndpoint}`);
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
yoga.fetch,
|
|
25
|
+
);
|
|
File without changes
|