@tldraw/tlschema
Version:
tldraw infinite canvas SDK (schema).
62 lines (61 loc) • 1.51 kB
JavaScript
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