snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled

This commit is contained in:
upstream-mirror
2026-09-23 16:12:52 +05:00
commit a774ac673a
4541 changed files with 770499 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
import fs from 'fs'
import path from 'path'
import esbuild from 'esbuild'
import fse, { exists } from 'fs-extra'
import { logEnv } from './cli'
import { getDirname } from './path'
const rootDir = getDirname(import.meta.url, '../')
const log = logEnv('editor')
export async function build() {
try {
const targetFolder = `${rootDir}dist/`
if (await exists(targetFolder)) {
log({ cmd: 'remove', args: { target: targetFolder } })
await fs.promises.rm(targetFolder, { recursive: true })
}
await fs.promises.mkdir(targetFolder)
const topSource = `${rootDir}public`
const files = await fs.promises.readdir(topSource)
for (const file of files) {
const dest = targetFolder + path.basename(file)
const source = path.join(topSource, file)
log({ cmd: 'copy', args: { source, dest } })
await fse.copy(source, dest)
}
const entryPoints = [`${rootDir}src/index.tsx`]
log({ cmd: 'esbuild', args: { entryPoints } })
esbuild.buildSync({
entryPoints,
outfile: `${rootDir}/dist/index.js`,
minify: false,
bundle: true,
target: 'es6',
jsxFactory: 'React.createElement',
jsxFragment: 'React.Fragment',
loader: {
'.woff2': 'dataurl',
'.woff': 'dataurl',
'.svg': 'file',
'.png': 'file',
'.json': 'file',
},
define: {
'process.env.NODE_ENV': '"production"',
},
})
log({ cmd: 'esbuild:success', args: {} })
} catch (error) {
log({ cmd: 'esbuild:error', args: { error } })
throw error
}
}
build()

View File

@@ -0,0 +1,58 @@
import path from 'path'
const displayRelative = (from: string, to: string) => {
const outpath = path.relative(from, to)
if (!outpath.match(/^\./)) {
return `./${outpath}`
}
return outpath
}
type LogDef =
| { cmd: 'remove'; env: string; args: { target: string } }
| { cmd: 'copy'; env: string; args: { source: string; dest: string } }
| { cmd: 'esbuild'; env: string; args: { entryPoints: string[] } }
| { cmd: 'esbuild:success'; env: string; args: any }
| { cmd: 'esbuild:error'; env: string; args: { error: string } }
| { cmd: 'esbuild:serve'; env: string; args: { host: string; port: number | string } }
export function log(def: LogDef) {
const printStderr = (icon: string, cmd: string, ...args: unknown[]) => {
console.error(`${icon} [${def.env ?? 'unknown'}/${cmd}]`, ...args)
}
if (def.cmd === 'remove') {
const { target } = def.args
printStderr('🗑 ', 'remove', displayRelative(process.cwd(), target))
} else if (def.cmd === 'copy') {
const { source, dest } = def.args
printStderr(
'🏠',
'copy',
`${displayRelative(process.cwd(), source)} -> ${displayRelative(process.cwd(), dest)}`
)
} else if (def.cmd === 'esbuild') {
printStderr(
'🤖',
'esbuild',
`${def.args.entryPoints.map((pathname) => displayRelative(process.cwd(), pathname))}`
)
} else if (def.cmd === 'esbuild:success') {
printStderr('✅', `esbuild`, `build successful (${new Date().toISOString()})`)
} else if (def.cmd === 'esbuild:error') {
printStderr(`❌`, `esbuild`, `error`)
console.error(def.args.error)
} else if (def.cmd === 'esbuild:serve') {
const { host = 'localhost', port } = def.args
printStderr(`🌎`, `esbuild`, `serving <http://${host}:${port}>`)
} else {
// @ts-ignore
printStderr(`❓`, def.cmd, JSON.stringify(def.args))
}
}
export function logEnv(env: string) {
return (opts: any) => {
log({ ...opts, env })
}
}

View File

@@ -0,0 +1,77 @@
import fs from 'fs'
import path from 'path'
import dotenv from 'dotenv'
import esbuild from 'esbuild'
import fse, { exists } from 'fs-extra'
import { logEnv } from './cli'
import { copyEditor } from './helpers'
import { getDirname } from './path'
dotenv.config()
const rootDir = getDirname(import.meta.url, '../')
const log = logEnv('editor')
export async function run() {
try {
const targetFolder = `${rootDir}dist/`
if (await exists(targetFolder)) {
log({ cmd: 'remove', args: { target: targetFolder } })
await fs.promises.rm(targetFolder, { recursive: true })
}
await fs.promises.mkdir(targetFolder)
const topSource = `${rootDir}public`
const files = await fs.promises.readdir(topSource)
for (const file of files) {
const dest = targetFolder + path.basename(file)
const source = path.join(topSource, file)
log({ cmd: 'copy', args: { source, dest } })
await fse.copy(source, dest)
}
const entryPoints = [`${rootDir}src/index.tsx`]
log({ cmd: 'esbuild', args: { entryPoints } })
const builder = await esbuild.context({
entryPoints,
outfile: `${rootDir}/dist/index.js`,
minify: false,
bundle: true,
target: 'es6',
jsxFactory: 'React.createElement',
jsxFragment: 'React.Fragment',
loader: {
'.woff2': 'dataurl',
'.woff': 'dataurl',
'.svg': 'file',
'.png': 'file',
'.json': 'file',
},
define: {
'process.env.NODE_ENV': '"development"',
},
plugins: [
{
name: 'log-builds',
setup(build) {
build.onEnd((result) => {
if (result.errors.length) {
log({ cmd: 'esbuild:error', args: { err: result.errors } })
} else {
copyEditor({ log })
log({ cmd: 'esbuild:success', args: {} })
}
})
},
},
],
})
await builder.watch()
} catch (error) {
log({ cmd: 'esbuild:error', args: { error } })
throw error
}
}
run()

View File

@@ -0,0 +1,25 @@
import fs from 'fs'
import { join } from 'path'
import fse from 'fs-extra'
import { exists, getDirname } from './path'
const vscodeDir = getDirname(import.meta.url, '../../')
export async function copyEditor({ log }: { log(opts: any): void }) {
const editorRoot = join(vscodeDir, 'editor')
const extensionRoot = join(vscodeDir, 'extension')
const source = join(editorRoot, 'dist')
const dest = join(extensionRoot, 'editor')
log({ cmd: 'copy', args: { source, dest } })
await fse.copy(source, dest)
}
export async function removeDistDirectory({ log }: { log(opts: any): void }) {
const target = join(vscodeDir, 'extension', 'dist')
if (await exists(target)) {
log({ cmd: 'remove', args: { target } })
await fs.promises.rm(target, { recursive: true })
}
}

View File

@@ -0,0 +1,16 @@
import fs from 'fs'
import path from 'path'
export function getDirname(metaUrl: string, targetPath: string) {
const dirname = path.dirname(metaUrl.replace('file://', ''))
return path.normalize(path.join(dirname, targetPath))
}
export async function exists(targetFolder: string) {
try {
await fs.promises.access(targetFolder)
return true
} catch {
return false
}
}