rxn-ui 0.4.4 → 0.4.6

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.
Files changed (2) hide show
  1. package/cli/index.mjs +100 -91
  2. package/package.json +1 -1
package/cli/index.mjs CHANGED
@@ -1,91 +1,100 @@
1
- #!/usr/bin/env node
2
-
3
- import fs from 'node:fs'
4
- import path from 'node:path'
5
- import process from 'node:process'
6
- import { fileURLToPath } from 'node:url'
7
-
8
- const __filename = fileURLToPath(import.meta.url) // Получаем абсолютный путь к текущему файлу (аналог __filename)
9
- const __dirname = path.dirname(__filename) // Получаем директорию текущего файла (аналог __dirname)
10
-
11
- const COMPONENTS_DIR = path.join(__dirname, '..', 'src', 'components') // Путь к компонентам внутри пакета
12
- const REGISTRY_JSON = path.join(__dirname, 'registry.json') // Путь к файлу registry.json
13
-
14
- const cwd = process.env.INIT_CWD || process.cwd() // Текущая директория, где пользователь запустил CLI
15
-
16
- function readRegistry() {
17
- if (!fs.existsSync(REGISTRY_JSON)) {
18
- // Проверяем, существует ли registry.json
19
- console.error('Registry not found')
20
- process.exit(1)
21
- }
22
- return JSON.parse(fs.readFileSync(REGISTRY_JSON, 'utf8'))
23
- }
24
-
25
- function detectProject() {
26
- // Функция для автоопределения структуры проекта
27
- const hasSrc = fs.existsSync(path.join(cwd, 'src')) // Проверяем, есть ли папка src
28
- return {
29
- components: hasSrc ? 'src/shared/components' : 'components',
30
- styles: hasSrc ? 'src/app/styles' : 'styles',
31
- }
32
- }
33
-
34
- function init() {
35
- const configPath = path.join(cwd, 'rxn-ui.json') // Путь к конфигурационному файлу
36
- if (fs.existsSync(configPath)) {
37
- console.log('✔ already initialized')
38
- return
39
- }
40
- const config = detectProject()
41
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2)) // Сохраняем конфиг в файл
42
- console.log(' rxn-ui initialized')
43
- }
44
-
45
- function add(name) {
46
- const registry = readRegistry() // Читаем registry.json
47
- const entry = registry[name] // Получаем запись компонента по имени
48
-
49
- if (!entry) {
50
- // Если компонент не найден
51
- console.error('Component not found:', name)
52
- process.exit(1)
53
- }
54
-
55
- const configPath = path.join(cwd, 'rxn-ui.json') // Путь к конфигу
56
- if (!fs.existsSync(configPath)) {
57
- console.log('You should initialize...\n npx rxn-ui init')
58
- process.exit(1)
59
- }
60
-
61
- const config = JSON.parse(fs.readFileSync(configPath, 'utf8')) // Загружаем конфигурацию
62
-
63
- const src = path.join(COMPONENTS_DIR, name) // Путь к компоненту в пакете
64
- const dest = path.join(cwd, config.components, name) // Путь установки компонента в проекте
65
-
66
- fs.mkdirSync(dest, { recursive: true })
67
- for (const file of entry.files) {
68
- const s = path.join(src, file)
69
- const d = path.join(dest, file)
70
- if (fs.existsSync(s)) {
71
- fs.copyFileSync(s, d)
72
- console.log('add', path.relative(cwd, d))
73
- }
74
- }
75
-
76
- console.log(`\n✔ ${name} added`)
77
- }
78
-
79
- const [cmd, arg] = process.argv.slice(2) // Получаем аргументы командной строки
80
-
81
- if (cmd === 'init') init()
82
- else if (cmd === 'add') add(arg)
83
- else {
84
- console.log(`
85
- rxn-ui
86
-
87
- Usage:
88
- npx rxn-ui init
89
- npx rxn-ui add button-base
90
- `)
91
- }
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs'
4
+ import path from 'node:path'
5
+ import process from 'node:process'
6
+ import { fileURLToPath } from 'node:url'
7
+
8
+ const __filename = fileURLToPath(import.meta.url) // Получаем абсолютный путь к текущему файлу (аналог __filename)
9
+ const __dirname = path.dirname(__filename) // Получаем директорию текущего файла (аналог __dirname)
10
+
11
+ const COMPONENTS_DIR = path.join(__dirname, '..', 'src', 'components') // Путь к компонентам внутри пакета
12
+ const STYLES_DIR = path.join(__dirname, '..', 'src', 'styles') // Путь к стилям внутри пакета
13
+ const REGISTRY_JSON = path.join(__dirname, 'registry.json') // Путь к файлу registry.json
14
+
15
+ const cwd = process.env.INIT_CWD || process.cwd() // Текущая директория, где пользователь запустил CLI
16
+
17
+ function readRegistry() {
18
+ if (!fs.existsSync(REGISTRY_JSON)) {
19
+ // Проверяем, существует ли registry.json
20
+ console.error('Registry not found')
21
+ process.exit(1)
22
+ }
23
+ return JSON.parse(fs.readFileSync(REGISTRY_JSON, 'utf8'))
24
+ }
25
+
26
+ function detectProject() {
27
+ const hasSrc = fs.existsSync(path.join(cwd, 'src'))
28
+ return {
29
+ components: hasSrc ? 'src/shared/components' : 'components',
30
+ styles: hasSrc ? 'src/app/styles' : 'styles',
31
+ }
32
+ }
33
+
34
+ function copyFiles(srcDir, destDir, files) {
35
+ // Копирует указанные файлы из srcDir в destDir (только отсутствующие)
36
+ fs.mkdirSync(destDir, { recursive: true })
37
+ for (const file of files) {
38
+ const s = path.join(srcDir, file)
39
+ const d = path.join(destDir, file)
40
+ if (fs.existsSync(s) && !fs.existsSync(d)) {
41
+ fs.copyFileSync(s, d)
42
+ console.log('add', path.relative(cwd, d))
43
+ }
44
+ }
45
+ }
46
+
47
+ function init() {
48
+ const configPath = path.join(cwd, 'rxn-ui.json') // Путь к конфигурационному файлу
49
+ if (fs.existsSync(configPath)) {
50
+ console.log('✔ already initialized')
51
+ return
52
+ }
53
+ const config = detectProject()
54
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2)) // Сохраняем конфиг в файл
55
+ console.log('✔ rxn-ui initialized')
56
+ }
57
+
58
+ function add(name) {
59
+ const registry = readRegistry() // Читаем registry.json
60
+ const entry = registry[name] // Получаем запись компонента по имени
61
+
62
+ if (!entry) {
63
+ // Если компонент не найден
64
+ console.error('Component not found:', name)
65
+ process.exit(1)
66
+ }
67
+
68
+ const configPath = path.join(cwd, 'rxn-ui.json') // Путь к конфигу
69
+ if (!fs.existsSync(configPath)) {
70
+ console.log('You should initialize...\n npx rxn-ui init')
71
+ process.exit(1)
72
+ }
73
+
74
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'))
75
+
76
+ // Копируем компонент
77
+ const src = path.join(COMPONENTS_DIR, name)
78
+ const dest = path.join(cwd, config.components, name)
79
+ copyFiles(src, dest, entry.files)
80
+
81
+ // Копируем стили
82
+ const stylesDest = path.join(cwd, config.styles)
83
+ copyFiles(STYLES_DIR, stylesDest, fs.readdirSync(STYLES_DIR))
84
+
85
+ console.log(`\n✔ ${name} added`)
86
+ }
87
+
88
+ const [cmd, arg] = process.argv.slice(2) // Получаем аргументы командной строки
89
+
90
+ if (cmd === 'init') init()
91
+ else if (cmd === 'add') add(arg)
92
+ else {
93
+ console.log(`
94
+ rxn-ui
95
+
96
+ Usage:
97
+ npx rxn-ui init
98
+ npx rxn-ui add button-base
99
+ `)
100
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rxn-ui",
3
3
  "description": "Vue 3 UI component library",
4
- "version": "0.4.4",
4
+ "version": "0.4.6",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "type": "module",