{"version":3,"file":"server.js","names":[],"sources":["../../../src/checkers/oxlint/server.ts"],"sourcesContent":["import path from 'node:path'\nimport chokidar from 'chokidar'\nimport type { FileDiagnosticManager } from '../../FileDiagnosticManager.js'\nimport { filterLogLevel } from '../../logger.js'\nimport { applyBatchedDiagnostics } from '../_shared/applyBatchedDiagnostics.js'\nimport {\n createLintScheduler,\n DEFAULT_DEBOUNCE_MS,\n} from '../_shared/lintScheduler.js'\nimport { runOxlint } from './cli.js'\nimport { dispatchDiagnostics } from './diagnostics.js'\nimport type { ResolvedOptions } from './options.js'\nimport type { DisplayTarget } from './types'\n\nexport async function setupDevServer(\n root: string,\n options: ResolvedOptions,\n manager: FileDiagnosticManager,\n displayTargets: Set,\n): Promise {\n const initial = await runOxlint(options.command, root)\n manager.initWith(initial)\n dispatchDiagnostics(\n filterLogLevel(manager.getDiagnostics(), options.logLevel),\n displayTargets,\n )\n\n const dispatch = () =>\n dispatchDiagnostics(\n filterLogLevel(manager.getDiagnostics(), options.logLevel),\n displayTargets,\n )\n\n const scheduler = createLintScheduler({\n debounceMs: options.debounceMs ?? DEFAULT_DEBOUNCE_MS,\n onBatch: async (files) => {\n const hasConfigChange = files.some(\n (f) => path.basename(f) === '.oxlintrc.json',\n )\n if (hasConfigChange) {\n const diagnostics = await runOxlint([...options.command, root], root)\n manager.initWith(diagnostics)\n } else {\n const diagnostics = await runOxlint(\n [...options.command, ...files],\n root,\n )\n applyBatchedDiagnostics(manager, files, diagnostics, root)\n }\n dispatch()\n },\n })\n\n const watcher = chokidar.watch(options.watchTarget, {\n cwd: root,\n ignored: (p: string) => p.includes('node_modules'),\n })\n\n watcher.on('change', (filePath) => {\n scheduler.schedule(path.resolve(root, filePath))\n })\n\n watcher.on('unlink', (filePath) => {\n const absPath = path.resolve(root, filePath)\n manager.updateByFileId(absPath, [])\n dispatch()\n })\n}\n"],"mappings":";;;;;;;;AAcA,eAAsB,eACpB,MACA,SACA,SACA,gBACe;CACf,MAAM,UAAU,MAAM,UAAU,QAAQ,SAAS,IAAI;CACrD,QAAQ,SAAS,OAAO;CACxB,oBACE,eAAe,QAAQ,eAAe,GAAG,QAAQ,QAAQ,GACzD,cACF;CAEA,MAAM,iBACJ,oBACE,eAAe,QAAQ,eAAe,GAAG,QAAQ,QAAQ,GACzD,cACF;CAEF,MAAM,YAAY,oBAAoB;EACpC,YAAY,QAAQ,cAAA;EACpB,SAAS,OAAO,UAAU;GAIxB,IAHwB,MAAM,MAC3B,MAAM,KAAK,SAAS,CAAC,MAAM,gBAEZ,GAAG;IACnB,MAAM,cAAc,MAAM,UAAU,CAAC,GAAG,QAAQ,SAAS,IAAI,GAAG,IAAI;IACpE,QAAQ,SAAS,WAAW;GAC9B,OAKE,wBAAwB,SAAS,OAAO,MAJd,UACxB,CAAC,GAAG,QAAQ,SAAS,GAAG,KAAK,GAC7B,IACF,GACqD,IAAI;GAE3D,SAAS;EACX;CACF,CAAC;CAED,MAAM,UAAU,SAAS,MAAM,QAAQ,aAAa;EAClD,KAAK;EACL,UAAU,MAAc,EAAE,SAAS,cAAc;CACnD,CAAC;CAED,QAAQ,GAAG,WAAW,aAAa;EACjC,UAAU,SAAS,KAAK,QAAQ,MAAM,QAAQ,CAAC;CACjD,CAAC;CAED,QAAQ,GAAG,WAAW,aAAa;EACjC,MAAM,UAAU,KAAK,QAAQ,MAAM,QAAQ;EAC3C,QAAQ,eAAe,SAAS,CAAC,CAAC;EAClC,SAAS;CACX,CAAC;AACH"}