Files
houseplan-card/scripts/bundle-sync.mjs
T
2026-08-23 10:15:45 +03:00

33 lines
1.5 KiB
JavaScript

#!/usr/bin/env node
/**
* Разложить собранный бандл по местам, которым он нужен (#255).
*
* Копий две с половиной. `custom_components/houseplan/frontend` — та, что
* ставит HACS, она в репозитории и обязана совпадать с `dist` побайтово.
* `demo/srv/assets` — рабочая копия стенда: её читают браузерные смоки, golden
* и съёмка скриншотов, но в репозитории её больше нет. Раньше «скопировать
* туда» жило шестью разными `cp` в воркфлоу и трижды в документации; когда
* копию забывали, смок врал согласованно (#236).
*/
import { copyFileSync, existsSync, mkdirSync } from 'node:fs';
import { dirname, resolve } from 'node:path';
import { fileURLToPath } from 'node:url';
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
const SOURCE = resolve(ROOT, 'dist/houseplan-card.js');
const TARGETS = [
'custom_components/houseplan/frontend/houseplan-card.js',
'demo/srv/assets/houseplan-card.js',
];
if (!existsSync(SOURCE)) {
console.error('dist/houseplan-card.js не найден: сначала `npm run build`');
process.exit(1);
}
for (const target of TARGETS) {
const path = resolve(ROOT, target);
mkdirSync(dirname(path), { recursive: true });
copyFileSync(SOURCE, path);
console.log(`бандл → ${target}`);
}