You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
674 B
28 lines
674 B
import { getThemeVariables } from 'ant-design-vue/dist/theme';
|
|
import lessToJs from 'less-vars-to-js';
|
|
import fs from 'fs';
|
|
|
|
function getVariablesByPath(paths: string[]) {
|
|
let modifyVars = {};
|
|
paths.forEach((path) => {
|
|
const paletteLess = fs.readFileSync(path, 'utf8');
|
|
modifyVars = Object.assign(
|
|
modifyVars,
|
|
lessToJs(paletteLess, { stripPrefix: true, resolveVariables: false })
|
|
);
|
|
});
|
|
return modifyVars;
|
|
}
|
|
export function generateModifyVars({
|
|
dark = false,
|
|
paths = [],
|
|
}: {
|
|
dark: boolean;
|
|
paths: string[];
|
|
}) {
|
|
const modifyVars = getThemeVariables({ dark });
|
|
return {
|
|
...modifyVars,
|
|
...getVariablesByPath(paths),
|
|
};
|
|
}
|
|
|