init project

This commit is contained in:
root
2026-07-31 13:12:54 -04:00
parent 0da92d5e02
commit f3863f760c
7215 changed files with 1860260 additions and 1 deletions
+44
View File
@@ -0,0 +1,44 @@
import fs from 'node:fs';
import path from 'node:path';
export function writeExpressApiTemplate(targetDir, name) {
fs.mkdirSync(path.join(targetDir, 'routes'), { recursive: true });
fs.writeFileSync(path.join(targetDir, 'package.json'), `${JSON.stringify({
name,
version: '0.1.0',
private: true,
type: 'module',
scripts: {
dev: 'node --watch index.js',
start: 'node index.js',
test: 'echo "no tests yet" && exit 0',
},
dependencies: {
express: '^5.0.0',
},
}, null, 2)}\n`);
fs.writeFileSync(path.join(targetDir, 'index.js'), `import express from 'express';
import healthRouter from './routes/health.js';
const app = express();
app.use(express.json());
app.use('/api/health', healthRouter);
const port = process.env.PORT ?? 3000;
app.listen(port, () => {
console.log(\`${name} listening on http://localhost:\${port}\`);
});
`);
fs.writeFileSync(path.join(targetDir, 'routes', 'health.js'), `import { Router } from 'express';
const router = Router();
router.get('/', (_req, res) => {
res.json({ status: 'ok' });
});
export default router;
`);
fs.writeFileSync(path.join(targetDir, '.gitignore'), 'node_modules/\n');
return targetDir;
}
//# sourceMappingURL=expressApi.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"expressApi.js","sourceRoot":"","sources":["../../../../src/tools/scaffold/templates/expressApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,uBAAuB,CAAC,SAAiB,EAAE,IAAY;IACrE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElE,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,GAAG,IAAI,CAAC,SAAS,CACf;QACE,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACP,GAAG,EAAE,uBAAuB;YAC5B,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,+BAA+B;SACtC;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,QAAQ;SAClB;KACF,EACD,IAAI,EACJ,CAAC,CACF,IAAI,CACN,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAChC;;;;;;;;;kBASc,IAAI;;CAErB,CACE,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAC3C;;;;;;;;;CASH,CACE,CAAC;IAEF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAExE,OAAO,SAAS,CAAC;AACnB,CAAC"}
+45
View File
@@ -0,0 +1,45 @@
import fs from 'node:fs';
import path from 'node:path';
export function writeStaticHtmlTemplate(targetDir, name) {
fs.mkdirSync(targetDir, { recursive: true });
fs.writeFileSync(path.join(targetDir, 'index.html'), `<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>${name}</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<main>
<h1>${name}</h1>
<p>Edit <code>index.html</code>, <code>style.css</code>, and <code>script.js</code> to get started.</p>
</main>
<script src="script.js"></script>
</body>
</html>
`);
fs.writeFileSync(path.join(targetDir, 'style.css'), `:root {
color-scheme: light dark;
font-family: system-ui, sans-serif;
}
body {
margin: 0;
display: grid;
place-items: center;
min-height: 100vh;
}
main {
max-width: 40rem;
padding: 2rem;
text-align: center;
}
`);
fs.writeFileSync(path.join(targetDir, 'script.js'), `// Entry point for ${name}.
console.log('${name} loaded');
`);
return targetDir;
}
//# sourceMappingURL=staticHtml.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"staticHtml.js","sourceRoot":"","sources":["../../../../src/tools/scaffold/templates/staticHtml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,uBAAuB,CAAC,SAAiB,EAAE,IAAY;IACrE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAClC;;;;;aAKS,IAAI;;;;;YAKL,IAAI;;;;;;CAMf,CACE,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC;;;;;;;;;;;;;;;;;CAiBH,CACE,CAAC;IAEF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,sBAAsB,IAAI;eACf,IAAI;CAClB,CACE,CAAC;IAEF,OAAO,SAAS,CAAC;AACnB,CAAC"}