Skip to content

Instantly share code, notes, and snippets.

@nyteshade
Created November 22, 2023 21:41
Show Gist options
  • Save nyteshade/5c658a3c1a6fa019f4e8f809414eb30e to your computer and use it in GitHub Desktop.
Save nyteshade/5c658a3c1a6fa019f4e8f809414eb30e to your computer and use it in GitHub Desktop.
Quick generation of a sharable tldraw
#!/usr/bin/env node
async function generateNewSharedTlDraw() {
var myHeaders = new Headers();
myHeaders.append("Accept-Language", "en-US,en;q=0.9");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Origin", "https://www.tldraw.com");
myHeaders.append("Referer", "https://www.tldraw.com");
myHeaders.append("Sec-Ch-Ua", "\"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"");
myHeaders.append("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36");
var raw = JSON.stringify({
"schema": {
"schemaVersion": 1,
"storeVersion": 4,
"recordVersions": {
"asset": {
"version": 1,
"subTypeKey": "type",
"subTypeVersions": {
"image": 2,
"video": 2,
"bookmark": 0
}
},
"camera": {
"version": 1
},
"document": {
"version": 2
},
"instance": {
"version": 22
},
"instance_page_state": {
"version": 5
},
"page": {
"version": 1
},
"shape": {
"version": 3,
"subTypeKey": "type",
"subTypeVersions": {
"group": 0,
"text": 1,
"bookmark": 1,
"draw": 1,
"geo": 7,
"note": 4,
"line": 1,
"frame": 0,
"arrow": 1,
"highlight": 0,
"embed": 4,
"image": 2,
"video": 1
}
},
"instance_presence": {
"version": 5
},
"pointer": {
"version": 1
}
}
},
"snapshot": {
"document:document": {
"gridSize": 10,
"name": "",
"meta": {},
"id": "document:document",
"typeName": "document"
},
"page:page": {
"meta": {},
"id": "page:page",
"name": "Page 1",
"index": "a1",
"typeName": "page"
}
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow',
referrer: 'https://www.tldraw.com',
referrerPolicy: 'unsafe-url',
mode: 'no-cors',
};
const response = await fetch("https://www.tldraw.com/api/new-room", requestOptions)
const json = await response.json()
return [response, json, `https://www.tldraw.com/r/${json?.slug}`]
}
const [response, json, href] = await generateNewSharedTlDraw()
console.log(`Let's draw together! Go here ${href}`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment