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:
parent
0c9e8d323e
commit
4dfae61a32
1 changed files with 3 additions and 45 deletions
|
@ -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}),
|
||||||
|
|
Loading…
Reference in a new issue