UNPKG

@mui/internal-docs-infra

Version:

MUI Infra - internal documentation creation tools.

49 lines (44 loc) 1.73 kB
import _extends from "@babel/runtime/helpers/esm/extends"; /** * Flatten variant utility to convert a VariantCode into a flat files list * Handles relative path resolution and metadata file scoping * Uses addPathsToVariant for the core logic, then flattens the result */ import { stringOrHastToString } from "../pipeline/hastUtils/index.js"; import { addPathsToVariant } from "../CodeHighlighter/addPathsToVariant.js"; /** * Flatten a VariantCode into a flat files structure * Resolves relative paths and handles metadata file scoping * Uses addPathsToVariant for path resolution logic */ export function flattenVariant(variant) { var result = {}; // Use addPathsToVariant to get the structured paths var variantWithPaths = addPathsToVariant(variant); // Add main file if it exists if (variantWithPaths.path && variantWithPaths.source !== undefined) { result[variantWithPaths.path] = { source: stringOrHastToString(variantWithPaths.source) }; } // Add extra files if they exist if (variantWithPaths.extraFiles) { for (var _i = 0, _Object$values = Object.values(variantWithPaths.extraFiles); _i < _Object$values.length; _i++) { var fileWithPath = _Object$values[_i]; // Skip files that are just URLs or missing a path if (typeof fileWithPath === 'string' || !fileWithPath.path) { continue; } // Skip files with no source content if (!fileWithPath.source && fileWithPath.source !== '') { continue; } result[fileWithPath.path] = _extends({ source: stringOrHastToString(fileWithPath.source || '') }, fileWithPath.metadata && { metadata: fileWithPath.metadata }); } } return result; }