UNPKG

ng-packagr

Version:

Compile and package Angular libraries in Angular Package Format (APF)

84 lines 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadPostcssConfiguration = exports.findTailwindConfiguration = exports.generateSearchDirectories = void 0; const node_fs_1 = require("node:fs"); const node_path_1 = require("node:path"); const postcssConfigurationFiles = ['postcss.config.json', '.postcssrc.json']; const tailwindConfigFiles = [ 'tailwind.config.js', 'tailwind.config.cjs', 'tailwind.config.mjs', 'tailwind.config.ts', ]; function generateSearchDirectories(roots) { return roots.map(root => { return { root, files: new Set((0, node_fs_1.readdirSync)(root, { withFileTypes: true }) .filter(entry => entry.isFile()) .map(entry => entry.name)), }; }); } exports.generateSearchDirectories = generateSearchDirectories; function findFile(searchDirectories, potentialFiles) { for (const { root, files } of searchDirectories) { for (const potential of potentialFiles) { if (files.has(potential)) { return (0, node_path_1.join)(root, potential); } } } return undefined; } function findTailwindConfiguration(searchDirectories) { return findFile(searchDirectories, tailwindConfigFiles); } exports.findTailwindConfiguration = findTailwindConfiguration; function readPostcssConfiguration(configurationFile) { const data = (0, node_fs_1.readFileSync)(configurationFile, 'utf-8'); const config = JSON.parse(data); return config; } function loadPostcssConfiguration(searchDirectories) { const configPath = findFile(searchDirectories, postcssConfigurationFiles); if (!configPath) { return undefined; } const raw = readPostcssConfiguration(configPath); // If no plugins are defined, consider it equivalent to no configuration if (!raw.plugins || typeof raw.plugins !== 'object') { return undefined; } // Normalize plugin array form if (Array.isArray(raw.plugins)) { if (raw.plugins.length < 1) { return undefined; } const config = { plugins: [] }; for (const element of raw.plugins) { if (typeof element === 'string') { config.plugins.push([element]); } else { config.plugins.push(element); } } return config; } // Normalize plugin object map form const entries = Object.entries(raw.plugins); if (entries.length < 1) { return undefined; } const config = { plugins: [] }; for (const [name, options] of entries) { if (!options || (typeof options !== 'object' && typeof options !== 'string')) { continue; } config.plugins.push([name, options]); } return config; } exports.loadPostcssConfiguration = loadPostcssConfiguration; //# sourceMappingURL=postcss-configuration.js.map