All files / packages/sds-metadata/scripts generate-metadata.js

0% Statements 0/26
0% Branches 0/4
0% Functions 0/15
0% Lines 0/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96                                                                                                                                                                                               
import { Listr } from 'listr2';
import { generateStylingHooks, generateSelectorsList, generateLwcToSldsMap,
     generateStyleHooksMetadata, generateAuraToLwcTokensMapping, generateBemNamingMap, 
     generateIcons, generateColorStylingHooks, generateDesignTokenMappings, generateSLDSStylingHooks, 
     generateSLDSDelta, generateSLDSExcludedVars, generateSLDS1DeprecatedComponentHooks, generateReleaseInfo } from "../build/index.js"
import { resolve, dirname } from 'path';
import { fileURLToPath } from 'url';
import { existsSync, mkdirSync } from 'fs';
 
 
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
 
//default output directory to metadata folder which is in the root of the project
const outputDir = resolve(__dirname, '../dist');
 
//ensure the output directory exists
if (!existsSync(outputDir)) {
    mkdirSync(outputDir, { recursive: true });
}
 
const tasks = new Listr([
    {
        title: 'Generating Selectors List',
        task: async () => await generateSelectorsList(outputDir)
    },
    {
        title: 'Generating Styling Hooks',
        task: async () => await generateStylingHooks(outputDir)
    },
    {
        title: 'Generating BEM Naming Map',
        task: async () => await generateBemNamingMap(outputDir)
    },
    {
        title: 'Generating LWC to SLDS Map',
        task: async () => await generateLwcToSldsMap(outputDir)
    },
    {
        title: 'Generating Style Hooks Metadata',
        task: async () => await generateStyleHooksMetadata(outputDir)
    },
    {
        title: 'Generating Aura to LWC Tokens Mapping',
        task: async () => await generateAuraToLwcTokensMapping(outputDir)
    },
    {
        title: 'Generating Icons',
        task: async () => await generateIcons(outputDir)
    },
    {
        title: 'Generating Color Styling Hooks Metadata',
        task: async () => await generateColorStylingHooks(outputDir, 'csv')
    },
    {
        title: 'Generating Design Token Mappings',
        task: async () => await generateDesignTokenMappings(outputDir)
    },
    {
        title: 'Generating SLDSStylingHooks',
        task: async () => await generateSLDSStylingHooks(outputDir)
    },
    {
        title: 'Generating SLDS Delta',
        task: async () => await generateSLDSDelta(outputDir)
    },
    {
        title: 'Generating SLDS Excluded Vars',
        task: async () => await generateSLDSExcludedVars(outputDir)
    },
    {
        title: 'Generating SLDS1 Deprecated Component Hooks',
        task: async () => await generateSLDS1DeprecatedComponentHooks(outputDir)
    },
    {
        title: 'Generating Release Info',
        task: async () => await generateReleaseInfo(outputDir)
    }
], {
    concurrent: false,
    exitOnError: true
});
 
 
export async function generateMetadata() {
    try {
        await tasks.run();
    } catch (error) {
        console.error('Error during task execution:', error);
        process.exit(1);
    }
}
 
if (import.meta.url === `file://${process.argv[1]}`) {
    generateMetadata();
}