@tscircuit/cli 0.0.113 → 0.0.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test.yml +28 -0
- package/bun.lockb +0 -0
- package/dev-server-api/bun.lockb +0 -0
- package/dev-server-api/index.ts +3 -5
- package/dev-server-api/package.json +4 -3
- package/dev-server-api/routes/api/package_info/create.ts +28 -0
- package/dev-server-api/routes/api/package_info/get.ts +18 -0
- package/dev-server-api/src/db/create-schema.ts +5 -0
- package/dev-server-api/src/db/get-db.ts +15 -7
- package/dev-server-api/src/lib/zod/export_package_info.ts +5 -0
- package/dev-server-api/static-routes.ts +22 -0
- package/dev-server-frontend/bun.lockb +0 -0
- package/dev-server-frontend/package-lock.json +3891 -347
- package/dev-server-frontend/package.json +2 -1
- package/dev-server-frontend/src/ExampleContentView.tsx +8 -8
- package/dev-server-frontend/src/HeaderMenu.tsx +26 -7
- package/dist/cli.js +1370 -651
- package/lib/cmd-fns/dev/dev-server-request-handler.ts +9 -2
- package/lib/cmd-fns/dev/index.ts +26 -12
- package/package.json +2 -2
- package/tests/soupify.test.ts +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Bun Test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v2
|
|
15
|
+
|
|
16
|
+
- name: Setup bun
|
|
17
|
+
uses: oven-sh/setup-bun@v1
|
|
18
|
+
with:
|
|
19
|
+
bun-version: latest
|
|
20
|
+
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: bun run bootstrap
|
|
23
|
+
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: bun run build
|
|
26
|
+
|
|
27
|
+
- name: Run tests
|
|
28
|
+
run: bun test
|
package/bun.lockb
CHANGED
|
Binary file
|
package/dev-server-api/bun.lockb
CHANGED
|
Binary file
|
package/dev-server-api/index.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { createWinterSpecFromRouteMap } from "winterspec/adapters/node"
|
|
2
|
+
import staticRoutes from "./static-routes"
|
|
3
3
|
|
|
4
|
-
export default await
|
|
5
|
-
join(import.meta.dir, "./routes")
|
|
6
|
-
)
|
|
4
|
+
export default await createWinterSpecFromRouteMap(staticRoutes)
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "bun server.ts",
|
|
7
|
-
"build": "
|
|
7
|
+
"build": "winterspec bundle-routes -i ./routes -o static-routes.ts"
|
|
8
8
|
},
|
|
9
9
|
"devDependencies": {
|
|
10
10
|
"@types/better-sqlite3": "^7.6.9",
|
|
11
11
|
"@types/bun": "latest",
|
|
12
|
-
"@types/sql.js": "^1.4.9"
|
|
12
|
+
"@types/sql.js": "^1.4.9",
|
|
13
|
+
"make-vfs": "^1.0.10"
|
|
13
14
|
},
|
|
14
15
|
"peerDependencies": {
|
|
15
16
|
"typescript": "^5.0.0"
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
"better-sqlite3": "^11.0.0",
|
|
19
20
|
"kysely": "^0.27.3",
|
|
20
21
|
"kysely-bun-sqlite": "^0.3.2",
|
|
21
|
-
"winterspec": "
|
|
22
|
+
"winterspec": "0.0.81",
|
|
22
23
|
"zod": "^3.22.4"
|
|
23
24
|
}
|
|
24
25
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { withWinterSpec } from "src/with-winter-spec"
|
|
2
|
+
import { z } from "zod"
|
|
3
|
+
|
|
4
|
+
export default withWinterSpec({
|
|
5
|
+
methods: ["POST"],
|
|
6
|
+
jsonBody: z.object({
|
|
7
|
+
package_name: z.string()
|
|
8
|
+
}),
|
|
9
|
+
jsonResponse: z.object({
|
|
10
|
+
package_info: z.object({
|
|
11
|
+
name: z.string()
|
|
12
|
+
})
|
|
13
|
+
}),
|
|
14
|
+
auth: "none",
|
|
15
|
+
})(async (req, ctx) => {
|
|
16
|
+
const package_name = req.jsonBody.package_name
|
|
17
|
+
const package_info = await ctx.db
|
|
18
|
+
.insertInto("package_info")
|
|
19
|
+
.values({
|
|
20
|
+
name: package_name
|
|
21
|
+
})
|
|
22
|
+
.returningAll()
|
|
23
|
+
.executeTakeFirstOrThrow()
|
|
24
|
+
|
|
25
|
+
return ctx.json({
|
|
26
|
+
package_info
|
|
27
|
+
})
|
|
28
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { export_package_info } from "src/lib/zod/export_package_info"
|
|
2
|
+
import { withWinterSpec } from "src/with-winter-spec"
|
|
3
|
+
import { z } from "zod"
|
|
4
|
+
|
|
5
|
+
export default withWinterSpec({
|
|
6
|
+
methods: ["GET"],
|
|
7
|
+
jsonResponse: z.object({
|
|
8
|
+
package_info: export_package_info
|
|
9
|
+
}),
|
|
10
|
+
auth: "none",
|
|
11
|
+
})(async (req, ctx) => {
|
|
12
|
+
const package_info = await ctx.db
|
|
13
|
+
.selectFrom("package_info")
|
|
14
|
+
.select("name")
|
|
15
|
+
.executeTakeFirstOrThrow()
|
|
16
|
+
|
|
17
|
+
return ctx.json({ package_info })
|
|
18
|
+
})
|
|
@@ -2,6 +2,11 @@ import type { DbClient } from "./get-db"
|
|
|
2
2
|
|
|
3
3
|
export const createSchema = async (db: DbClient) => {
|
|
4
4
|
console.log("Creating schema...")
|
|
5
|
+
await db.schema
|
|
6
|
+
.createTable("package_info")
|
|
7
|
+
.addColumn("name", "text", (col) => col.notNull())
|
|
8
|
+
.execute()
|
|
9
|
+
|
|
5
10
|
await db.schema
|
|
6
11
|
.createTable("dev_package_example")
|
|
7
12
|
.addColumn("dev_package_example_id", "integer", (col) =>
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { Kysely, sql, type Generated, SqliteDialect } from "kysely"
|
|
2
|
-
import { createSchema } from "./create-schema"
|
|
3
1
|
import { mkdirSync } from "fs"
|
|
2
|
+
import { Kysely, SqliteDialect, sql, type Generated } from "kysely"
|
|
4
3
|
import * as Path from "path"
|
|
4
|
+
import { createSchema } from "./create-schema"
|
|
5
|
+
|
|
6
|
+
export interface PackageInfo {
|
|
7
|
+
name: string
|
|
8
|
+
}
|
|
5
9
|
|
|
6
10
|
export interface DevPackageExample {
|
|
7
11
|
dev_package_example_id: Generated<number>
|
|
@@ -40,6 +44,7 @@ interface KyselyDatabaseSchema {
|
|
|
40
44
|
dev_package_example: DevPackageExample
|
|
41
45
|
export_request: ExportRequest
|
|
42
46
|
export_file: ExportFile
|
|
47
|
+
package_info: PackageInfo
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
export type DbClient = Kysely<KyselyDatabaseSchema>
|
|
@@ -72,7 +77,7 @@ export const getDb = async (): Promise<Kysely<KyselyDatabaseSchema>> => {
|
|
|
72
77
|
create: true,
|
|
73
78
|
}),
|
|
74
79
|
})
|
|
75
|
-
} catch (e) {}
|
|
80
|
+
} catch (e) { }
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
if (!dialect) {
|
|
@@ -82,7 +87,7 @@ export const getDb = async (): Promise<Kysely<KyselyDatabaseSchema>> => {
|
|
|
82
87
|
dialect = new SqliteDialect({
|
|
83
88
|
database: new BetterSqlite3.default(devServerDbPath),
|
|
84
89
|
})
|
|
85
|
-
} catch (e) {}
|
|
90
|
+
} catch (e) { }
|
|
86
91
|
}
|
|
87
92
|
|
|
88
93
|
if (!dialect) {
|
|
@@ -98,12 +103,15 @@ export const getDb = async (): Promise<Kysely<KyselyDatabaseSchema>> => {
|
|
|
98
103
|
const schemaExistsResult = await sql`
|
|
99
104
|
SELECT name
|
|
100
105
|
FROM sqlite_master
|
|
101
|
-
WHERE type='table' AND name
|
|
106
|
+
WHERE type='table' AND name IN ('dev_package_example', 'export_request', 'export_file', 'package_info')
|
|
102
107
|
`.execute(db)
|
|
103
108
|
|
|
104
|
-
if
|
|
109
|
+
// Check if the number of existing tables matches the number of required tables
|
|
110
|
+
if (schemaExistsResult.rows.length < 4) {
|
|
105
111
|
await createSchema(db)
|
|
106
112
|
}
|
|
107
113
|
|
|
114
|
+
globalDb = db
|
|
115
|
+
|
|
108
116
|
return db
|
|
109
|
-
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
|
|
2
|
+
// import { WinterSpecRouteMap } from "@winterspec/types"
|
|
3
|
+
|
|
4
|
+
const routeMap = {
|
|
5
|
+
"/api/dev_package_examples/create": (await import('routes/api/dev_package_examples/create.ts')).default,
|
|
6
|
+
"/api/dev_package_examples/get": (await import('routes/api/dev_package_examples/get.ts')).default,
|
|
7
|
+
"/api/dev_package_examples/list": (await import('routes/api/dev_package_examples/list.ts')).default,
|
|
8
|
+
"/api/dev_package_examples/update": (await import('routes/api/dev_package_examples/update.ts')).default,
|
|
9
|
+
"/api/dev_server/reset": (await import('routes/api/dev_server/reset.ts')).default,
|
|
10
|
+
"/api/export_files/create": (await import('routes/api/export_files/create.ts')).default,
|
|
11
|
+
"/api/export_files/download": (await import('routes/api/export_files/download.ts')).default,
|
|
12
|
+
"/api/export_requests/create": (await import('routes/api/export_requests/create.ts')).default,
|
|
13
|
+
"/api/export_requests/get": (await import('routes/api/export_requests/get.ts')).default,
|
|
14
|
+
"/api/export_requests/list": (await import('routes/api/export_requests/list.ts')).default,
|
|
15
|
+
"/api/export_requests/update": (await import('routes/api/export_requests/update.ts')).default,
|
|
16
|
+
"/api/health": (await import('routes/api/health.ts')).default,
|
|
17
|
+
"/api/package_info/create": (await import('routes/api/package_info/create.ts')).default,
|
|
18
|
+
"/api/package_info/get": (await import('routes/api/package_info/get.ts')).default,
|
|
19
|
+
"/health": (await import('routes/health.ts')).default
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default routeMap
|
|
Binary file
|