TLSchema readme (#1506)

This PR updates the TLSchema readme to remove reference to scripts which
are no longer present.

### Change Type

- [x] `documentation` — Changes to the documentation only (will not
publish a new version)
This commit is contained in:
Steve Ruiz 2023-06-03 09:24:58 +01:00 committed by GitHub
parent 0c9e8d323e
commit 4dfae61a32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,6 @@
# @tldraw/tlschema # @tldraw/tlschema
This package houses type definitions, schema migrations, and other type metadata for any persisted data in tldraw. This package houses type definitions, schema migrations, and other type metadata for the tldraw editor's default persisted data.
There are three main kinds of types: There are three main kinds of types:
@ -16,49 +16,9 @@ There are three main kinds of types:
These are subtypes of the root TLAsset record type. They allow specifying a unique name and custom props for a particular kind of asset. These are subtypes of the root TLAsset record type. They allow specifying a unique name and custom props for a particular kind of asset.
## Creating a new record type
To create a new record type called, e.g. `TLBanana`, run
```sh
# Create the new file in ./records/TLBanana.ts
yarn new-record TLBanana
# Rebuild the index files to make sure it is exported
yarn index
```
You may then customize your new blank `TLBanana` type!
## Creating a new shape type
To create a new shape type called, e.g. `TLMapboxShape`, run
```sh
# Create the new file in ./shapes/TLMapboxShape.ts
yarn new-shape TLMapboxShape
# Rebuild the index files to make sure it is exported
yarn index
```
You may then customize your new blank `TLMapboxShape` type!
## Creating a new asset type
To create a new shape type called, e.g. `TLZipFileAsset`, run
```sh
# Create the new file in ./assets/TLZipFileAsset.ts
yarn new-asset TLZipFileAsset
# Rebuild the index files to make sure it is exported
yarn index
```
You may then customize your new blank `TLZipFileAsset` type!
# Adding migrations # Adding migrations
If you make any kind of change to any persisted data shape in this package, you must add migrations that are able If you make any kind of change to any persisted data shape in this package, you must add migrations that are able to convert old versions to new versions, and vice-versa.
to convert old versions to new versions, and vice-versa.
If you are making a change that affects the structure of a record, shape, or asset, update the migrations in the same file as the record, shape, or asset is defined. If you are making a change that affects the structure of a record, shape, or asset, update the migrations in the same file as the record, shape, or asset is defined.
@ -71,7 +31,7 @@ In `TLShape.ts`
```diff ```diff
const Versions = { const Versions = {
Initial: 1, RemoveSomeProp: 1,
+ AddOwnerId: 2, + AddOwnerId: 2,
} as const } as const
``` ```
@ -90,11 +50,9 @@ and then adding a migration:
```diff ```diff
export const shapeTypeMigrations = defineMigrations({ export const shapeTypeMigrations = defineMigrations({
// STEP 2: Update the current version to point to your latest version
currentVersion: Versions.Initial, currentVersion: Versions.Initial,
firstVersion: Versions.Initial, firstVersion: Versions.Initial,
migrators: { migrators: {
// STEP 3: Add an up+down migration for the new version here
+ [Versions.AddOwnerId]: { + [Versions.AddOwnerId]: {
+ // add ownerId property + // add ownerId property
+ up: (shape) => ({...shape, ownerId: null}), + up: (shape) => ({...shape, ownerId: null}),