Lines 1-21javascript
1import { spawnSync } from "node:child_process";
2import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
HighChild Process
Package source references child process execution.
dist/create.jsView on unpkg · L1 3import { basename, dirname, join, relative, resolve } from "node:path";
4import { cliVersion, findWorkspaceRoot, flag, hasFlag, isEngineMonorepo } from "./pkg.js";
5import { displayNameFromId, GAME_ID_PATTERN, gameTemplate } from "./templates.js";
6export function writeGame(targetDir, id, name, variant) {
7 for (const file of gameTemplate({ id, name, variant, engineVersion: cliVersion() })) {
8 const dest = join(targetDir, file.path);
9 mkdirSync(dirname(dest), { recursive: true });
10 writeFileSync(dest, file.contents);
13export function registerRootGameScript(rootDir, id) {
14 const rootPackagePath = join(rootDir, "package.json");
15 const root = JSON.parse(readFileSync(rootPackagePath, "utf8"));
16 const scripts = root.scripts ?? {};
17 const key = `games:${id}`;
18 if (scripts[key] !== undefined)
20 const entries = Object.entries(scripts);
21 const games = entries.filter(([k]) => k.startsWith("games:"));