{"version":3,"file":"upsertSliceLibraryIndexFile.cjs","sources":["../../../src/lib/upsertSliceLibraryIndexFile.ts"],"sourcesContent":["import { SliceMachineContext } from \"@slicemachine/plugin-kit\";\nimport {\n\tbuildSliceDirectoryPath,\n\tbuildSliceLibraryDirectoryPath,\n\twriteProjectFile,\n} from \"@slicemachine/plugin-kit/fs\";\nimport { stripIndent } from \"common-tags\";\nimport * as path from \"node:path\";\n\nimport { NON_EDITABLE_FILE_BANNER } from \"../constants\";\nimport { PluginOptions } from \"../types\";\n\nimport { getJSFileExtension } from \"./getJSFileExtension\";\nimport { pascalCase } from \"./pascalCase\";\n\ntype UpsertSliceLibraryIndexFileArgs = {\n\tlibraryID: string;\n} & SliceMachineContext<PluginOptions>;\n\nexport const upsertSliceLibraryIndexFile = async (\n\targs: UpsertSliceLibraryIndexFileArgs,\n): Promise<void> => {\n\tconst slices = await args.actions.readAllSliceModelsForLibrary({\n\t\tlibraryID: args.libraryID,\n\t});\n\n\tlet contents: string;\n\n\tif (args.options.lazyLoadSlices) {\n\t\tcontents = stripIndent`\n\t\t\t${NON_EDITABLE_FILE_BANNER}\n\n\t\t\texport const components = {\n\t\t\t\t${(\n\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\tslices.map(async (slice) => {\n\t\t\t\t\t\t\tconst id = slice.model.id;\n\t\t\t\t\t\t\tconst dirName = path.basename(\n\t\t\t\t\t\t\t\tawait buildSliceDirectoryPath({\n\t\t\t\t\t\t\t\t\tmodel: slice.model,\n\t\t\t\t\t\t\t\t\thelpers: args.helpers,\n\t\t\t\t\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\treturn `${id}: () => import(/* webpackChunkName: \"prismic__${args.libraryID.replace(\n\t\t\t\t\t\t\t\t/[^\\w]/g,\n\t\t\t\t\t\t\t\t\"\",\n\t\t\t\t\t\t\t)}__${id}\" */ \"./${dirName}/index.vue\")`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t).join(\",\\n\")}\n\t\t\t};\n\t\t`;\n\t} else {\n\t\tcontents = stripIndent`\n\t\t\t${NON_EDITABLE_FILE_BANNER}\n\n\t\t\t${(\n\t\t\t\tawait Promise.all(\n\t\t\t\t\tslices.map(async (slice) => {\n\t\t\t\t\t\tconst dirName = path.basename(\n\t\t\t\t\t\t\tawait buildSliceDirectoryPath({\n\t\t\t\t\t\t\t\tmodel: slice.model,\n\t\t\t\t\t\t\t\thelpers: args.helpers,\n\t\t\t\t\t\t\t\tlibraryID: args.libraryID,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst componentName = pascalCase(slice.model.name);\n\n\t\t\t\t\t\treturn `import ${componentName} from \"./${dirName}/index.vue\";`;\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t).join(\"\\n\")}\n\n\t\t\texport const components = {\n\t\t\t\t${slices\n\t\t\t\t\t.map((slice) => {\n\t\t\t\t\t\tconst id = slice.model.id;\n\t\t\t\t\t\tconst componentName = pascalCase(slice.model.name);\n\n\t\t\t\t\t\treturn `${id}: ${componentName}`;\n\t\t\t\t\t})\n\t\t\t\t\t.join(\",\\n\")}\n\t\t\t};\n\t\t`;\n\t}\n\n\tconst extension = await getJSFileExtension({\n\t\thelpers: args.helpers,\n\t\toptions: args.options,\n\t});\n\tconst filePath = path.join(\n\t\tbuildSliceLibraryDirectoryPath({\n\t\t\tlibraryID: args.libraryID,\n\t\t\thelpers: args.helpers,\n\t\t}),\n\t\t`index.${extension}`,\n\t);\n\n\tawait writeProjectFile({\n\t\tfilename: filePath,\n\t\tcontents,\n\t\tformat: args.options.format,\n\t\thelpers: args.helpers,\n\t});\n};\n"],"names":["stripIndent","NON_EDITABLE_FILE_BANNER","path","buildSliceDirectoryPath","pascalCase","getJSFileExtension","buildSliceLibraryDirectoryPath","writeProjectFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBO,MAAM,8BAA8B,OAC1C,SACkB;AAClB,QAAM,SAAS,MAAM,KAAK,QAAQ,6BAA6B;AAAA,IAC9D,WAAW,KAAK;AAAA,EAAA,CAChB;AAED,MAAI;AAEJ,MAAI,KAAK,QAAQ,gBAAgB;AAChC,eAAWA,WAAAA;AAAAA,KACRC,UAAAA,wBAAwB;AAAA;AAAA;AAAA,OAIxB,MAAM,QAAQ,IACb,OAAO,IAAI,OAAO,UAAS;AAC1B,YAAM,KAAK,MAAM,MAAM;AACvB,YAAM,UAAUC,gBAAK,SACpB,MAAMC,GAAAA,wBAAwB;AAAA,QAC7B,OAAO,MAAM;AAAA,QACb,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,MAAA,CAChB,CAAC;AAGH,aAAO,GAAG,EAAE,iDAAiD,KAAK,UAAU,QAC3E,UACA,EAAE,CACF,KAAK,EAAE,WAAW,OAAO;AAAA,IAC3B,CAAC,CAAC,GAEF,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,EAGhB,OAAO;AACN,eAAWH,WAAAA;AAAAA,KACRC,UAAAA,wBAAwB;AAAA;AAAA,MAGzB,MAAM,QAAQ,IACb,OAAO,IAAI,OAAO,UAAS;AAC1B,YAAM,UAAUC,gBAAK,SACpB,MAAMC,GAAAA,wBAAwB;AAAA,QAC7B,OAAO,MAAM;AAAA,QACb,SAAS,KAAK;AAAA,QACd,WAAW,KAAK;AAAA,MAAA,CAChB,CAAC;AAEH,YAAM,gBAAgBC,WAAAA,WAAW,MAAM,MAAM,IAAI;AAEjD,aAAO,UAAU,aAAa,YAAY,OAAO;AAAA,IAClD,CAAC,CAAC,GAEF,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA,MAGT,OACA,IAAI,CAAC,UAAS;AACd,YAAM,KAAK,MAAM,MAAM;AACvB,YAAM,gBAAgBA,WAAAA,WAAW,MAAM,MAAM,IAAI;AAEjD,aAAO,GAAG,EAAE,KAAK,aAAa;AAAA,IAC/B,CAAC,EACA,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,EAGhB;AAEA,QAAM,YAAY,MAAMC,sCAAmB;AAAA,IAC1C,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,EAAA,CACd;AACD,QAAM,WAAWH,gBAAK,KACrBI,kCAA+B;AAAA,IAC9B,WAAW,KAAK;AAAA,IAChB,SAAS,KAAK;AAAA,EAAA,CACd,GACD,SAAS,SAAS,EAAE;AAGrB,QAAMC,oBAAiB;AAAA,IACtB,UAAU;AAAA,IACV;AAAA,IACA,QAAQ,KAAK,QAAQ;AAAA,IACrB,SAAS,KAAK;AAAA,EAAA,CACd;AACF;;"}