UNPKG

@baseplate-dev/core-generators

Version:

Core generators for Baseplate

29 lines 1.13 kB
/** * Deduplicate source files for the template file extractor * * @param files Array of soruce files * @returns Array of deduplicated source files */ export function deduplicateTemplateFileExtractorSourceFiles(files) { const addedTemplates = new Set(); const deduplicatedList = []; // Sort by modified time to ensure the latest version is used for (const file of files.toSorted((a, b) => b.modifiedTime.getTime() - a.modifiedTime.getTime())) { const fileKey = `${file.generatorName}__${file.templateName}`; if (addedTemplates.has(fileKey)) { if ('fileOptions' in file.existingMetadata && file.existingMetadata.fileOptions.kind === 'singleton') { throw new Error(`Duplicate singleton template found: ${fileKey}`); } else { // instance templates are allowed to be duplicated continue; } } addedTemplates.add(fileKey); deduplicatedList.push(file); } return deduplicatedList; } //# sourceMappingURL=deduplicate-templates.js.map