@momentum-ui/react-collaboration
Version:
Cisco Momentum UI Framework for React Collaboration Applications
44 lines (34 loc) • 1.12 kB
JavaScript
const path = require('path');
const fs = require('fs-extra');
const generateComment = (dataFile) => {
return [
'//------------------------------------------------------',
'// Do not edit this file directly. These variables are',
'// generated from the Momentum Design color tokens.',
`// ${dataFile}`,
'//------------------------------------------------------',
].join('\n');
};
const delve = (value, prefix) => {
if (typeof value !== 'object') {
return `${prefix}: ${value} !default;\n`;
}
return Object.keys(value).map(
(key) => delve(value[key], `${prefix}-${key}`)
).join('');
};
async function generateFileFromThemeToken(dest, fileName, data, dataFile) {
const scope = { ...data };
const prefix = `$${data.prefix}-${data.component}`;
const outputFile = path.join(dest, fileName);
delete scope.component;
delete scope.prefix;
const content = [
generateComment(dataFile),
'\n\n',
delve(scope, prefix)
].join('');
await fs.outputFile(outputFile, content);
console.warn(`${outputFile} written!`);
}
module.exports = generateFileFromThemeToken;