UNPKG

@wordpress/blocks

Version:
98 lines (96 loc) 3.57 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // packages/blocks/src/api/parser/apply-block-deprecated-versions.js var apply_block_deprecated_versions_exports = {}; __export(apply_block_deprecated_versions_exports, { applyBlockDeprecatedVersions: () => applyBlockDeprecatedVersions }); module.exports = __toCommonJS(apply_block_deprecated_versions_exports); var import_constants = require("../constants"); var import_validation = require("../validation"); var import_get_block_attributes = require("./get-block-attributes"); var import_apply_built_in_validation_fixes = require("./apply-built-in-validation-fixes"); var import_utils = require("../utils"); function stubFalse() { return false; } function applyBlockDeprecatedVersions(block, rawBlock, blockType) { const parsedAttributes = rawBlock.attrs; const { deprecated: deprecatedDefinitions } = blockType; if (!deprecatedDefinitions || !deprecatedDefinitions.length) { return block; } for (let i = 0; i < deprecatedDefinitions.length; i++) { const { isEligible = stubFalse } = deprecatedDefinitions[i]; if (block.isValid && !isEligible(parsedAttributes, block.innerBlocks, { blockNode: rawBlock, block })) { continue; } const deprecatedBlockType = Object.assign( (0, import_utils.omit)(blockType, import_constants.DEPRECATED_ENTRY_KEYS), deprecatedDefinitions[i] ); let migratedBlock = { ...block, attributes: (0, import_get_block_attributes.getBlockAttributes)( deprecatedBlockType, block.originalContent, parsedAttributes ) }; let [isValid] = (0, import_validation.validateBlock)(migratedBlock, deprecatedBlockType); if (!isValid) { migratedBlock = (0, import_apply_built_in_validation_fixes.applyBuiltInValidationFixes)( migratedBlock, deprecatedBlockType ); [isValid] = (0, import_validation.validateBlock)(migratedBlock, deprecatedBlockType); } if (!isValid) { continue; } let migratedInnerBlocks = migratedBlock.innerBlocks; let migratedAttributes = migratedBlock.attributes; const { migrate } = deprecatedBlockType; if (migrate) { let migrated = migrate(migratedAttributes, block.innerBlocks); if (!Array.isArray(migrated)) { migrated = [migrated]; } [ migratedAttributes = parsedAttributes, migratedInnerBlocks = block.innerBlocks ] = migrated; } block = { ...block, attributes: migratedAttributes, innerBlocks: migratedInnerBlocks, isValid: true, validationIssues: [] }; } return block; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { applyBlockDeprecatedVersions }); //# sourceMappingURL=apply-block-deprecated-versions.js.map