@vv0rkz/js-template 1.8.3 → 1.8.4

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 CHANGED
@@ -52,16 +52,16 @@ export default {
52
52
 
53
53
  // Релиз
54
54
  release: {
55
- requireDemo: true, // требовать GIF/PNG перед релизом
56
- demoDir: 'docs', // где искать демо
57
- demoFormats: ['gif', 'png'],
55
+ demo: {
56
+ enable: true, // требовать демо перед релизом
57
+ dir: 'docs', // где искать демо-файлы
58
+ formats: ['gif', 'png'], // допустимые форматы
59
+ style: 'click', // 'click' | 'side-by-side'
60
+ },
58
61
  },
59
62
 
60
63
  // Автообновление зависимостей
61
64
  depUpdater: false, // 'dependabot' | 'renovate' | false
62
-
63
- // Репозиторий JST для report-issue
64
- jstRepo: 'vv0rkz/js-template',
65
65
  }
66
66
  ```
67
67
 
@@ -219,6 +219,33 @@ npm run _ push-release
219
219
  - [Changelogen](https://github.com/unjs/changelogen) — Генерация changelog
220
220
  - [GitHub CLI](https://cli.github.com/) — Управление issues
221
221
 
222
+ ## Migration Guide
223
+
224
+ ### v1.9.0 — `release.demo` (breaking change)
225
+
226
+ Настройки демо переехали из плоского `release.*` в объект `release.demo`:
227
+
228
+ ```js
229
+ // ❌ Было (до v1.9.0)
230
+ release: {
231
+ requireDemo: true,
232
+ demoDir: 'docs',
233
+ demoFormats: ['gif', 'png'],
234
+ }
235
+
236
+ // ✅ Стало
237
+ release: {
238
+ demo: {
239
+ enable: true,
240
+ dir: 'docs',
241
+ formats: ['gif', 'png'],
242
+ style: 'click', // новая опция: 'click' | 'side-by-side'
243
+ },
244
+ }
245
+ ```
246
+
247
+ Если в `jst.config.js` остались старые ключи, при запуске любой `jst`-команды появится предупреждение с инструкцией по миграции.
248
+
222
249
  ## Лицензия
223
250
 
224
251
  MIT © [vv0rkz](https://github.com/vv0rkz)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vv0rkz/js-template",
3
- "version": "1.8.3",
3
+ "version": "1.8.4",
4
4
  "description": "Reusable setup for JS projects with husky, changelog, gh tools",
5
5
  "type": "module",
6
6
  "bin": {
@@ -100,6 +100,35 @@ function deepMerge(target, source) {
100
100
  return result
101
101
  }
102
102
 
103
+ /**
104
+ * Checks for deprecated config keys and prints migration warnings.
105
+ * Old flat release.* keys were moved to release.demo.* in v1.9.0.
106
+ */
107
+ function warnDeprecatedKeys(userConfig) {
108
+ const deprecated = [
109
+ { old: 'release.requireDemo', newKey: 'release.demo.enable' },
110
+ { old: 'release.demoDir', newKey: 'release.demo.dir' },
111
+ { old: 'release.demoFormats', newKey: 'release.demo.formats' },
112
+ ]
113
+
114
+ const found = deprecated.filter(({ old }) => {
115
+ const [top, key] = old.split('.')
116
+ return userConfig[top]?.[key] !== undefined
117
+ })
118
+
119
+ if (found.length === 0) return
120
+
121
+ console.warn('\n⚠️ jst.config.js: устаревшие настройки (обнови конфиг)\n')
122
+ found.forEach(({ old, newKey }) => {
123
+ console.warn(` ${old} → ${newKey}`)
124
+ })
125
+ console.warn('\n Было:')
126
+ console.warn(' release: { requireDemo, demoDir, demoFormats }')
127
+ console.warn('\n Стало (начиная с v1.9.0):')
128
+ console.warn(' release: { demo: { enable, dir, formats, style } }')
129
+ console.warn('\n Запусти: npm run _ upgrade — чтобы получить актуальный конфиг\n')
130
+ }
131
+
103
132
  /**
104
133
  * Loads config from jst.config.js (preferred) or jst.config.json (fallback)
105
134
  * Deep-merges user config with defaults
@@ -124,5 +153,7 @@ export async function loadConfig() {
124
153
  }
125
154
  }
126
155
 
156
+ warnDeprecatedKeys(userConfig)
157
+
127
158
  return deepMerge(DEFAULTS, userConfig)
128
159
  }