nexa-init 0.2.0
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/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -0
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createProject } from './index';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const projectName = process.argv[2] || 'my-nexa-app';
|
|
5
|
+
try {
|
|
6
|
+
createProject(projectName, process.cwd());
|
|
7
|
+
const projectDir = join(process.cwd(), projectName);
|
|
8
|
+
console.log(`✅ Created ${projectName} at ${projectDir}`);
|
|
9
|
+
console.log(` cd ${projectName}`);
|
|
10
|
+
console.log(' npm install');
|
|
11
|
+
console.log(' npm run dev');
|
|
12
|
+
}
|
|
13
|
+
catch (err) {
|
|
14
|
+
if (err instanceof Error) {
|
|
15
|
+
console.error(`Error: ${err.message}`);
|
|
16
|
+
}
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,aAAa,CAAA;AACpD,IAAI,CAAC;IACH,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAA;IACnD,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,OAAO,UAAU,EAAE,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,QAAQ,WAAW,EAAE,CAAC,CAAA;IAClC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAC9B,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AA4EA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAejE"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const FILES = {
|
|
5
|
+
'package.json': (name) => JSON.stringify({
|
|
6
|
+
name,
|
|
7
|
+
version: '0.0.1',
|
|
8
|
+
private: true,
|
|
9
|
+
type: 'module',
|
|
10
|
+
scripts: { dev: 'vite', build: 'vite build', preview: 'vite preview' },
|
|
11
|
+
dependencies: { nexa: 'latest' },
|
|
12
|
+
devDependencies: { vite: '^6.0.0', 'nexa-vite-plugin': 'latest' },
|
|
13
|
+
}, null, 2),
|
|
14
|
+
'index.html': (name) => `<!DOCTYPE html>
|
|
15
|
+
<html lang="en">
|
|
16
|
+
<head>
|
|
17
|
+
<meta charset="UTF-8" />
|
|
18
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
19
|
+
<title>${name}</title>
|
|
20
|
+
</head>
|
|
21
|
+
<body>
|
|
22
|
+
<div id="app"></div>
|
|
23
|
+
<script type="module" src="/src/main.ts"></script>
|
|
24
|
+
</body>
|
|
25
|
+
</html>`,
|
|
26
|
+
'vite.config.ts': () => `import { defineConfig } from 'vite'
|
|
27
|
+
import { nexaPlugin } from 'nexa-vite-plugin'
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
plugins: [nexaPlugin()],
|
|
31
|
+
})`,
|
|
32
|
+
'src/main.ts': () => `import { mount, h } from 'nexa'
|
|
33
|
+
import App from './App.nexa'
|
|
34
|
+
|
|
35
|
+
const root = document.getElementById('app')
|
|
36
|
+
if (root) {
|
|
37
|
+
mount(h(App, null), root)
|
|
38
|
+
}
|
|
39
|
+
`,
|
|
40
|
+
'src/app.nexa': () => `<script setup>
|
|
41
|
+
import { signal } from 'nexa'
|
|
42
|
+
|
|
43
|
+
const count = signal(0)
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div>
|
|
48
|
+
<h1>Welcome to Nexa!</h1>
|
|
49
|
+
<p>Count: {{ count.value }}</p>
|
|
50
|
+
<button @click="count.value++">Increment</button>
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<style scoped>
|
|
55
|
+
div {
|
|
56
|
+
text-align: center;
|
|
57
|
+
padding: 2rem;
|
|
58
|
+
font-family: system-ui, sans-serif;
|
|
59
|
+
}
|
|
60
|
+
button {
|
|
61
|
+
background: #646cff;
|
|
62
|
+
color: white;
|
|
63
|
+
border: none;
|
|
64
|
+
padding: 8px 16px;
|
|
65
|
+
border-radius: 4px;
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
}
|
|
68
|
+
</style>`,
|
|
69
|
+
};
|
|
70
|
+
export function createProject(name, destDir) {
|
|
71
|
+
const projectDir = join(destDir, name);
|
|
72
|
+
if (existsSync(projectDir)) {
|
|
73
|
+
throw new Error(`Directory "${name}" already exists.`);
|
|
74
|
+
}
|
|
75
|
+
mkdirSync(projectDir, { recursive: true });
|
|
76
|
+
for (const [filePath, content] of Object.entries(FILES)) {
|
|
77
|
+
const fullPath = join(projectDir, filePath);
|
|
78
|
+
const dir = join(fullPath, '..');
|
|
79
|
+
if (!existsSync(dir))
|
|
80
|
+
mkdirSync(dir, { recursive: true });
|
|
81
|
+
writeFileSync(fullPath, content(name), 'utf-8');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,MAAM,KAAK,GAA6C;IACtD,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QAC/C,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE;QACtE,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE;KAClE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEX,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC;;;;;WAKvB,IAAI;;;;;;QAMP;IAEN,gBAAgB,EAAE,GAAG,EAAE,CAAC;;;;;GAKvB;IAED,aAAa,EAAE,GAAG,EAAE,CAAC;;;;;;;CAOtB;IAEC,cAAc,EAAE,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4Bf;CACR,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAEtC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,mBAAmB,CAAC,CAAA;IACxD,CAAC;IAED,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nexa-init",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"nexa-init": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"templates"
|
|
12
|
+
],
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@types/node": "^25.8.0"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsc",
|
|
18
|
+
"clean": "rm -rf dist"
|
|
19
|
+
}
|
|
20
|
+
}
|