@nitra/cursor 1.3.4 → 1.3.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.
- package/bin/nitra-cursor.js +4 -8
- package/mdc/ga.mdc +2 -2
- package/mdc/js-format.mdc +1 -1
- package/mdc/js-lint.mdc +102 -0
- package/mdc/nginx-default-tpl.mdc +3 -1
- package/mdc/{stylelint.mdc → style-lint.mdc} +1 -1
- package/package.json +4 -2
package/bin/nitra-cursor.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Завантажує cursor-правила з npm-пакету nitra-cursor у локальний репозиторій.
|
|
7
7
|
*
|
|
8
8
|
* Використання:
|
|
9
|
-
* npx @nitra/cursor
|
|
9
|
+
* `npx @nitra/cursor`
|
|
10
10
|
*
|
|
11
11
|
* Якщо у корені репозиторію немає nitra-cursor.json, він створюється автоматично
|
|
12
12
|
* з усіма правилами з каталогу mdc пакету (їх можна відредагувати після створення).
|
|
@@ -199,14 +199,10 @@ async function removeOrphanManagedRuleFiles(rulesDir, configRules) {
|
|
|
199
199
|
const names = await readdir(rulesDir)
|
|
200
200
|
const removed = []
|
|
201
201
|
for (const name of names) {
|
|
202
|
-
if (
|
|
203
|
-
|
|
202
|
+
if (name.endsWith('.mdc') && name.startsWith(RULE_PREFIX) && !expected.has(name)) {
|
|
203
|
+
await unlink(join(rulesDir, name))
|
|
204
|
+
removed.push(name)
|
|
204
205
|
}
|
|
205
|
-
if (expected.has(name)) {
|
|
206
|
-
continue
|
|
207
|
-
}
|
|
208
|
-
await unlink(join(rulesDir, name))
|
|
209
|
-
removed.push(name)
|
|
210
206
|
}
|
|
211
207
|
return removed.sort((a, b) => a.localeCompare(b))
|
|
212
208
|
}
|
package/mdc/ga.mdc
CHANGED
|
@@ -36,7 +36,7 @@ on:
|
|
|
36
36
|
- cron: '0 1 16 * *'
|
|
37
37
|
|
|
38
38
|
# Allow workflow to be manually run from the GitHub UI
|
|
39
|
-
workflow_dispatch:
|
|
39
|
+
workflow_dispatch: {}
|
|
40
40
|
|
|
41
41
|
jobs:
|
|
42
42
|
cleanup_old_workflows:
|
|
@@ -62,7 +62,7 @@ on:
|
|
|
62
62
|
- cron: '0 1 15 * *'
|
|
63
63
|
|
|
64
64
|
# Allow workflow to be manually run from the GitHub UI
|
|
65
|
-
workflow_dispatch:
|
|
65
|
+
workflow_dispatch: {}
|
|
66
66
|
|
|
67
67
|
jobs:
|
|
68
68
|
cleanup_old_branches:
|
package/mdc/js-format.mdc
CHANGED
package/mdc/js-lint.mdc
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Перевірка JavaScript коду
|
|
3
|
+
alwaysApply: true
|
|
4
|
+
version: '1.2'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Перевірка виконується за допомогою **oxlint** та **ESLint**.
|
|
8
|
+
|
|
9
|
+
У файлі `.vscode/extensions.json` мають бути рекомендації розширень:
|
|
10
|
+
|
|
11
|
+
```json title=".vscode/extensions.json"
|
|
12
|
+
{
|
|
13
|
+
"recommendations": [
|
|
14
|
+
"dbaeumer.vscode-eslint",
|
|
15
|
+
"github.vscode-github-actions",
|
|
16
|
+
"oxc.oxc-vscode"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
У кореневому `package.json` додай скрипт і залежність:
|
|
22
|
+
|
|
23
|
+
```json title="package.json"
|
|
24
|
+
"scripts": {
|
|
25
|
+
"lint-js": "oxlint --fix && bunx eslint --fix ."
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@nitra/eslint-config": "^3.3.0"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
У `devDependencies` достатньо `@nitra/eslint-config` (залежності ESLint підтягуються разом із ним). **oxlint** і **eslint** у скриптах викликай через `bunx`; окремо не додавай пакети `oxlint` / `eslint`, якщо цього не вимагає ваш монорепо.
|
|
33
|
+
|
|
34
|
+
Додай workflow `.github/workflows/lint-js.yml`:
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
name: Lint JS
|
|
38
|
+
|
|
39
|
+
on:
|
|
40
|
+
push:
|
|
41
|
+
branches:
|
|
42
|
+
- dev
|
|
43
|
+
paths:
|
|
44
|
+
- '**/*.js'
|
|
45
|
+
- '**/*.mjs'
|
|
46
|
+
- '**/*.cjs'
|
|
47
|
+
- '**/*.jsx'
|
|
48
|
+
- '**/*.ts'
|
|
49
|
+
- '**/*.tsx'
|
|
50
|
+
- '**/*.vue'
|
|
51
|
+
- '**/eslint.config.*'
|
|
52
|
+
|
|
53
|
+
pull_request:
|
|
54
|
+
branches:
|
|
55
|
+
- dev
|
|
56
|
+
|
|
57
|
+
concurrency:
|
|
58
|
+
group: ${{ github.ref }}-${{ github.workflow }}
|
|
59
|
+
cancel-in-progress: true
|
|
60
|
+
|
|
61
|
+
jobs:
|
|
62
|
+
eslint:
|
|
63
|
+
runs-on: ubuntu-latest
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v4
|
|
66
|
+
|
|
67
|
+
- uses: oven-sh/setup-bun@v2
|
|
68
|
+
|
|
69
|
+
- name: Cache Bun dependencies
|
|
70
|
+
uses: actions/cache@v4
|
|
71
|
+
with:
|
|
72
|
+
path: |
|
|
73
|
+
~/.bun/install/cache
|
|
74
|
+
node_modules
|
|
75
|
+
key: ${{ runner.os }}-bun-${{ hashFiles('**/bun.lock') }}
|
|
76
|
+
restore-keys: |
|
|
77
|
+
${{ runner.os }}-bun-
|
|
78
|
+
|
|
79
|
+
- name: Install dependencies
|
|
80
|
+
run: bun install --frozen-lockfile
|
|
81
|
+
|
|
82
|
+
- name: Eslint
|
|
83
|
+
run: |
|
|
84
|
+
bunx oxlint
|
|
85
|
+
bunx eslint .
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Без дублювання CI:** якщо в `.github/workflows` уже є `lint.yml` з тими самими кроками `oxlint` або `eslint`, видали зайвий workflow — лінт JS має виконуватися в одному місці.
|
|
89
|
+
|
|
90
|
+
У корені проєкту має бути `eslint.config.js` із розподілом директорій за типом коду:
|
|
91
|
+
|
|
92
|
+
```javascript title="eslint.config.js"
|
|
93
|
+
import { getConfig } from '@nitra/eslint-config'
|
|
94
|
+
|
|
95
|
+
export default [
|
|
96
|
+
...getConfig({
|
|
97
|
+
node: ['npm']
|
|
98
|
+
})
|
|
99
|
+
]
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
У монорепо пакети з Vite (frontend) вкажи в секції `vue`, решту — у секції `node` у виклику `getConfig`.
|
|
@@ -92,12 +92,14 @@ spec:
|
|
|
92
92
|
type: PathPrefix
|
|
93
93
|
value: /$PUBLIC_PATH/
|
|
94
94
|
backendRefs:
|
|
95
|
-
- name:
|
|
95
|
+
- name: $SERVICE_NAME
|
|
96
96
|
port: 8080
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
де $PUBLIC_PATH підставляється з ini файлу з dev середовища, а якщо для інших середовищ відрізняється то підставляється в kustomization.ya,l відповідні значення з ini середовища.
|
|
100
100
|
|
|
101
|
+
В $SERVICE_NAME повинно бути вказано ім'я сервісу, яке буде використовуватися в k8s.
|
|
102
|
+
|
|
101
103
|
В Dockerfile потрібно додати команду для стиснення файлів, які потім використовуватимуться з `gzip_static on`:
|
|
102
104
|
|
|
103
105
|
```dockerfile
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitra/cursor",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"description": "CLI для завантаження cursor-правил Nitra у локальний репозиторій",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -31,5 +31,7 @@
|
|
|
31
31
|
"scripts": {
|
|
32
32
|
"test": "npx coverage-node test/index.js"
|
|
33
33
|
},
|
|
34
|
-
"
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=24"
|
|
36
|
+
}
|
|
35
37
|
}
|