{"version":3,"file":"chunks.cjs","names":["_trace","getChunkName"],"sources":["../src/create-vocab-chunks.ts"],"sourcesContent":["import type { ChunkingContext } from 'rolldown';\nimport { trace as _trace } from './logger';\nimport { getChunkName } from './get-chunk-name';\n\nconst trace = _trace.extend('create-vocab-chunks');\n\n/**\n * Gets vocab virtual module details and creates chunks for each language\n */\nexport const createVocabChunks = (id: string, ctx: ChunkingContext) => {\n  const match = /virtual:vocab-([\\w-]+)\\.json/.exec(id);\n\n  if (!match) {\n    return;\n  }\n\n  const language = match[1];\n  const dependentEntryPoints: string[] = [];\n\n  const rootModuleInfo = ctx.getModuleInfo(id);\n\n  if (!rootModuleInfo) {\n    trace(`No module info found for ${id}`);\n    return;\n  }\n\n  const idsToHandle = new Set<string>(rootModuleInfo.dynamicImporters);\n\n  for (const moduleId of idsToHandle) {\n    const moduleInfo = ctx.getModuleInfo(moduleId);\n    if (!moduleInfo) {\n      trace(`No module info found for ${moduleId}`);\n      continue;\n    }\n\n    const { isEntry, dynamicImporters, importers } = moduleInfo;\n\n    if (isEntry || dynamicImporters.length > 0) {\n      dependentEntryPoints.push(moduleId);\n    }\n\n    for (const importerId of importers) {\n      idsToHandle.add(importerId);\n    }\n  }\n\n  if (dependentEntryPoints.length > 0) {\n    return getChunkName(language);\n  }\n};\n"],"mappings":";;;;AAIA,MAAM,QAAQA,eAAAA,MAAO,OAAO,sBAAsB;;;;AAKlD,MAAa,qBAAqB,IAAY,QAAyB;CACrE,MAAM,QAAQ,+BAA+B,KAAK,GAAG;AAErD,KAAI,CAAC,MACH;CAGF,MAAM,WAAW,MAAM;CACvB,MAAM,uBAAiC,EAAE;CAEzC,MAAM,iBAAiB,IAAI,cAAc,GAAG;AAE5C,KAAI,CAAC,gBAAgB;AACnB,QAAM,4BAA4B,KAAK;AACvC;;CAGF,MAAM,cAAc,IAAI,IAAY,eAAe,iBAAiB;AAEpE,MAAK,MAAM,YAAY,aAAa;EAClC,MAAM,aAAa,IAAI,cAAc,SAAS;AAC9C,MAAI,CAAC,YAAY;AACf,SAAM,4BAA4B,WAAW;AAC7C;;EAGF,MAAM,EAAE,SAAS,kBAAkB,cAAc;AAEjD,MAAI,WAAW,iBAAiB,SAAS,EACvC,sBAAqB,KAAK,SAAS;AAGrC,OAAK,MAAM,cAAc,UACvB,aAAY,IAAI,WAAW;;AAI/B,KAAI,qBAAqB,SAAS,EAChC,QAAOC,uBAAAA,aAAa,SAAS"}