UNPKG

@mui/internal-docs-infra

Version:

MUI Infra - internal documentation creation tools.

94 lines (93 loc) 2.94 kB
import _typeof from "@babel/runtime/helpers/esm/typeof"; import { hasAllVariants } from "./hasAllVariants.js"; export function maybeInitialData(variants, variant, code, fileName) { var needsHighlight = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; var needsAllFiles = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false; var needsAllVariants = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false; if (!code) { return { initialData: false, reason: 'No code provided' }; } if (needsAllVariants && !hasAllVariants(variants, code, needsHighlight)) { return { initialData: false, reason: 'Not all variants are available' }; } var variantCode = code[variant]; if (!variantCode || typeof variantCode === 'string') { return { initialData: false, reason: 'Variant code is not loaded yet' }; } if (needsAllFiles) { if (!variantCode) { return { initialData: false, reason: 'Variant code not found' }; } if (!variantCode.source) { return { initialData: false, reason: 'Variant source not found' }; } if (variantCode.extraFiles && !Object.keys(variantCode.extraFiles).every(function (file) { var _variantCode$extraFil; var fileData = (_variantCode$extraFil = variantCode.extraFiles) == null ? void 0 : _variantCode$extraFil[file]; return _typeof(fileData) === 'object' && (fileData == null ? void 0 : fileData.source) !== undefined; })) { return { initialData: false, reason: 'Not all extra files are available' }; } } // TODO, filename might need to be determined from filesOrder if provided? var initialFilename = fileName || variantCode.fileName; var fileSource; if (fileName && fileName !== variantCode.fileName) { var _variantCode$extraFil2; var fileData = variantCode == null || (_variantCode$extraFil2 = variantCode.extraFiles) == null ? void 0 : _variantCode$extraFil2[fileName]; if (!fileData) { return { initialData: false, reason: "File not found in code" }; } if (typeof fileData === 'string') { // It's a URL, not actual source content return { initialData: false, reason: "File is not loaded yet" }; } fileSource = fileData.source; } else { fileSource = variantCode.source; } if (!fileSource) { return { initialData: false, reason: "File source not found" }; } if (needsHighlight && typeof fileSource === 'string') { return { initialData: false, reason: 'File needs highlighting' }; } return { initialData: { code: code, initialFilename: initialFilename, initialSource: fileSource, initialExtraFiles: variantCode == null ? void 0 : variantCode.extraFiles } }; }