create-asciitorium 0.1.5 → 0.1.7
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/README.md +51 -0
- package/dist/scaffold.d.ts +1 -0
- package/dist/scaffold.js +16 -13
- package/dist/scaffold.js.map +1 -1
- package/dist/templates/base/package.json +1 -1
- package/dist/templates/base/public/@empty.js +1 -0
- package/dist/templates/base/vite.config.ts +28 -3
- package/package.json +10 -8
package/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# create-asciitorium
|
|
2
|
+
|
|
3
|
+
`create-asciitorium` is a command-line tool that helps you quickly scaffold a new [asciitorium](https://github.com/iroknee/asciitorium) project. It sets up all the necessary files, folders, and dependencies so you can start building ASCII art-based web applications with minimal setup.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Interactive CLI for project setup
|
|
8
|
+
- Generates a ready-to-use asciitorium project structure
|
|
9
|
+
- Installs dependencies automatically
|
|
10
|
+
- Supports TypeScript and Vite
|
|
11
|
+
- Includes example code and assets
|
|
12
|
+
|
|
13
|
+
## Getting Started
|
|
14
|
+
|
|
15
|
+
### Installation
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
The recommended way to start a new project is with the npm create command:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm create asciitorium@latest my-app
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This will create a new directory with the specified project name, scaffold the project, and install dependencies.
|
|
25
|
+
|
|
26
|
+
## Project Structure
|
|
27
|
+
|
|
28
|
+
A typical generated project will look like:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
my-asciitorium-app/
|
|
32
|
+
├── public/
|
|
33
|
+
├── src/
|
|
34
|
+
├── index.html
|
|
35
|
+
├── package.json
|
|
36
|
+
├── tsconfig.json
|
|
37
|
+
└── vite.config.ts
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Requirements
|
|
41
|
+
|
|
42
|
+
- Node.js >= 18
|
|
43
|
+
- npm or pnpm
|
|
44
|
+
|
|
45
|
+
## Learn More
|
|
46
|
+
|
|
47
|
+
- [Asciitorium Documentation](https://github.com/iroknee/asciitorium)
|
|
48
|
+
|
|
49
|
+
## License
|
|
50
|
+
|
|
51
|
+
MIT
|
package/dist/scaffold.d.ts
CHANGED
package/dist/scaffold.js
CHANGED
|
@@ -55,22 +55,25 @@ async function renameGitignore(projectDir) {
|
|
|
55
55
|
// ignore if not present
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
async function
|
|
59
|
-
|
|
60
|
-
let pkg;
|
|
58
|
+
async function getLatestVersion(pkg) {
|
|
59
|
+
// Try pnpm first
|
|
61
60
|
try {
|
|
62
|
-
const
|
|
63
|
-
|
|
61
|
+
const { stdout } = await execa('pnpm', ['view', pkg, 'version']);
|
|
62
|
+
return stdout.trim();
|
|
64
63
|
}
|
|
65
|
-
catch
|
|
66
|
-
|
|
64
|
+
catch {
|
|
65
|
+
// Fallback to npm
|
|
66
|
+
const { stdout } = await execa('npm', ['view', pkg, 'version']);
|
|
67
|
+
return stdout.trim();
|
|
67
68
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
}
|
|
70
|
+
export async function pinLatestAsciitorium(appDir) {
|
|
71
|
+
const pkgPath = path.join(appDir, 'package.json');
|
|
72
|
+
const raw = await fs.readFile(pkgPath, 'utf8');
|
|
73
|
+
const pkg = JSON.parse(raw);
|
|
74
|
+
const latest = await getLatestVersion('asciitorium');
|
|
75
|
+
pkg.dependencies ??= {};
|
|
76
|
+
pkg.dependencies.asciitorium = `^${latest}`;
|
|
74
77
|
await fs.writeFile(pkgPath, JSON.stringify(pkg, null, 2) + '\n', 'utf8');
|
|
75
78
|
}
|
|
76
79
|
async function runInstall(appDir, pm) {
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAU/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAqB;IAClD,MAAM,EACJ,UAAU,EACV,QAAQ,EACR,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,IAAI,EACd,cAAc,GAAG,MAAM,GACxB,GAAG,IAAI,CAAC;IAET,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEhE,6BAA6B;IAC7B,MAAM,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEvC,kCAAkC;IAClC,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IAElC,4DAA4D;IAC5D,MAAM,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEvC,0CAA0C;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,mDAAmD;IACnD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,iDAAiD;AAEjD,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAY;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,UAAkB;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import { defineConfig } from 'vite';
|
|
2
2
|
|
|
3
|
+
// Minimal virtual shim for Node built-ins on the web build
|
|
4
|
+
function nodeBuiltinsShim(): Plugin {
|
|
5
|
+
const ids = new Set([
|
|
6
|
+
'fs',
|
|
7
|
+
'fs/promises',
|
|
8
|
+
'path',
|
|
9
|
+
'readline',
|
|
10
|
+
'node:fs',
|
|
11
|
+
'node:fs/promises',
|
|
12
|
+
'node:path',
|
|
13
|
+
'node:readline',
|
|
14
|
+
]);
|
|
15
|
+
return {
|
|
16
|
+
name: 'node-builtins-shim',
|
|
17
|
+
resolveId(id) {
|
|
18
|
+
if (ids.has(id)) return id; // mark as resolved virtual id
|
|
19
|
+
return null;
|
|
20
|
+
},
|
|
21
|
+
load(id) {
|
|
22
|
+
if (ids.has(id)) return 'export {}'; // empty ESM module
|
|
23
|
+
return null;
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
3
28
|
export default defineConfig({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
29
|
+
esbuild: { target: 'esnext' },
|
|
30
|
+
build: { target: 'esnext' },
|
|
31
|
+
plugins: [nodeBuiltinsShim()],
|
|
7
32
|
server: {
|
|
8
33
|
port: 5173,
|
|
9
34
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-asciitorium",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"private": false,
|
|
4
5
|
"description": "Scaffold a Vite + TypeScript project prewired for asciitorium (web + cli).",
|
|
5
6
|
"bin": {
|
|
6
7
|
"create-asciitorium": "dist/index.js"
|
|
@@ -12,8 +13,14 @@
|
|
|
12
13
|
"README.md",
|
|
13
14
|
"LICENSE"
|
|
14
15
|
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc -p tsconfig.json",
|
|
18
|
+
"postbuild": "cp -r templates dist/",
|
|
19
|
+
"dev": "tsx watch src/index.ts",
|
|
20
|
+
"prepublishOnly": "pnpm run build"
|
|
21
|
+
},
|
|
15
22
|
"dependencies": {
|
|
16
|
-
"asciitorium": "
|
|
23
|
+
"asciitorium": "",
|
|
17
24
|
"execa": "^9.3.0",
|
|
18
25
|
"kolorist": "^1.8.0",
|
|
19
26
|
"minimist": "^1.2.8",
|
|
@@ -31,10 +38,5 @@
|
|
|
31
38
|
},
|
|
32
39
|
"publishConfig": {
|
|
33
40
|
"access": "public"
|
|
34
|
-
},
|
|
35
|
-
"scripts": {
|
|
36
|
-
"build": "tsc -p tsconfig.json",
|
|
37
|
-
"postbuild": "cp -r templates dist/",
|
|
38
|
-
"dev": "tsx watch src/index.ts"
|
|
39
41
|
}
|
|
40
|
-
}
|
|
42
|
+
}
|