UNPKG

@tldraw/tlschema

Version:

tldraw infinite canvas SDK (schema).

104 lines (103 loc) 2.51 kB
import { createMigrationIds, createRecordMigrationSequence } from "@tldraw/store"; import { T } from "@tldraw/validate"; import { createAssetValidator } from "./TLBaseAsset.mjs"; const imageAssetProps = { w: T.number, h: T.number, name: T.string, isAnimated: T.boolean, mimeType: T.string.nullable(), src: T.srcUrl.nullable(), fileSize: T.nonZeroNumber.optional(), pixelRatio: T.positiveNumber.optional() }; const imageAssetValidator = createAssetValidator( "image", T.object(imageAssetProps) ); const Versions = createMigrationIds("com.tldraw.asset.image", { AddIsAnimated: 1, RenameWidthHeight: 2, MakeUrlsValid: 3, AddFileSize: 4, MakeFileSizeOptional: 5, AddPixelRatio: 6 }); const imageAssetMigrations = createRecordMigrationSequence({ sequenceId: "com.tldraw.asset.image", recordType: "asset", filter: (asset) => asset.type === "image", sequence: [ { id: Versions.AddIsAnimated, up: (asset) => { asset.props.isAnimated = false; }, down: (asset) => { delete asset.props.isAnimated; } }, { id: Versions.RenameWidthHeight, up: (asset) => { asset.props.w = asset.props.width; asset.props.h = asset.props.height; delete asset.props.width; delete asset.props.height; }, down: (asset) => { asset.props.width = asset.props.w; asset.props.height = asset.props.h; delete asset.props.w; delete asset.props.h; } }, { id: Versions.MakeUrlsValid, up: (asset) => { if (!T.srcUrl.isValid(asset.props.src)) { asset.props.src = ""; } }, down: (_asset) => { } }, { id: Versions.AddFileSize, up: (asset) => { asset.props.fileSize = -1; }, down: (asset) => { delete asset.props.fileSize; } }, { id: Versions.MakeFileSizeOptional, up: (asset) => { if (asset.props.fileSize === -1) { asset.props.fileSize = void 0; } }, down: (asset) => { if (asset.props.fileSize === void 0) { asset.props.fileSize = -1; } } }, { id: Versions.AddPixelRatio, up: (_asset) => { }, down: (asset) => { delete asset.props.pixelRatio; } } ] }); export { imageAssetMigrations, imageAssetProps, imageAssetValidator, Versions as imageAssetVersions }; //# sourceMappingURL=TLImageAsset.mjs.map