diff --git a/apps/svelte.dev/package.json b/apps/svelte.dev/package.json index 98ae9be37e..608e32e33a 100644 --- a/apps/svelte.dev/package.json +++ b/apps/svelte.dev/package.json @@ -74,6 +74,7 @@ "@types/node": "^20.14.2", "@vercel/speed-insights": "^1.0.0", "browserslist": "^4.23.1", + "chokidar": "^4.0.1", "degit": "^2.8.4", "dotenv": "^16.4.5", "esbuild": "^0.21.5", diff --git a/apps/svelte.dev/scripts/sync-docs/index.ts b/apps/svelte.dev/scripts/sync-docs/index.ts index b7cff430ea..8749792b37 100644 --- a/apps/svelte.dev/scripts/sync-docs/index.ts +++ b/apps/svelte.dev/scripts/sync-docs/index.ts @@ -3,6 +3,7 @@ import path from 'node:path'; import fs from 'node:fs'; import ts from 'typescript'; import glob from 'tiny-glob/sync'; +import chokidar from 'chokidar'; import { fileURLToPath } from 'node:url'; import { clone_repo, migrate_meta_json, replace_strings, strip_origin } from './utils'; import { get_types, read_d_ts_file, read_types } from './types'; @@ -123,7 +124,7 @@ if (process.env.USE_GIT === 'true') { ); } -for (const pkg of packages) { +async function sync(pkg: Package) { const dest = `${DOCS}/${pkg.name}`; fs.rmSync(dest, { force: true, recursive: true }); @@ -140,3 +141,17 @@ for (const pkg of packages) { fs.writeFileSync(file, content); } } + +for (const pkg of packages) { + await sync(pkg); +} + +if (process.argv.includes('-w') || process.argv.includes('--watch')) { + for (const pkg of packages) { + chokidar + .watch(`${REPOS}/${pkg.name}/${pkg.docs}`, { ignoreInitial: true }) + .on('all', (event) => { + sync(pkg); + }); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44cbc69baf..7e84fa10ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -180,6 +180,9 @@ importers: browserslist: specifier: ^4.23.1 version: 4.23.1 + chokidar: + specifier: ^4.0.1 + version: 4.0.1 degit: specifier: ^2.8.4 version: 2.8.4 @@ -1735,6 +1738,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} @@ -2625,6 +2632,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -4548,6 +4559,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + chownr@2.0.0: {} ci-info@3.9.0: {} @@ -5413,6 +5428,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.0.2: {} + regenerator-runtime@0.14.1: {} regex@4.3.3: {}