UNPKG

@tldraw/tlschema

Version:

tldraw infinite canvas SDK (schema).

62 lines (61 loc) 1.51 kB
import { createMigrationIds, createRecordMigrationSequence, createRecordType } from "@tldraw/store"; import { mapObjectMapValues } from "@tldraw/utils"; import { T } from "@tldraw/validate"; import { createAssetValidator } from "../assets/TLBaseAsset.mjs"; const assetVersions = createMigrationIds("com.tldraw.asset", { AddMeta: 1 }); const assetMigrations = createRecordMigrationSequence({ sequenceId: "com.tldraw.asset", recordType: "asset", sequence: [ { id: assetVersions.AddMeta, up: (record) => { ; record.meta = {}; } } ] }); function createAssetRecordType(assets) { return createRecordType("asset", { scope: "document", validator: T.model( "asset", T.union( "type", mapObjectMapValues( assets, (type, { props, meta }) => createAssetValidator(type, props, meta) ) ) ) }).withDefaultProperties(() => ({ meta: {} })); } const AssetRecordType = createRecordType("asset", { scope: "document" }).withDefaultProperties(() => ({ meta: {} })); function createAssetPropsMigrationSequence(migrations) { return migrations; } function createAssetPropsMigrationIds(assetType, ids) { return mapObjectMapValues(ids, (_k, v) => `com.tldraw.asset.${assetType}/${v}`); } export { AssetRecordType, assetMigrations, assetVersions, createAssetPropsMigrationIds, createAssetPropsMigrationSequence, createAssetRecordType }; //# sourceMappingURL=TLAsset.mjs.map