mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 19:21:54 +00:00
[Docs] Extract comfy workflow zod schema as json schema (#2206)
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -41,4 +41,7 @@ browser_tests/*/*-win32.png
|
|||||||
|
|
||||||
dist.zip
|
dist.zip
|
||||||
|
|
||||||
/temp/
|
/temp/
|
||||||
|
|
||||||
|
# Generated JSON Schemas
|
||||||
|
/schemas/
|
||||||
|
|||||||
@@ -28,7 +28,8 @@
|
|||||||
"lint": "eslint src",
|
"lint": "eslint src",
|
||||||
"lint:fix": "eslint src --fix",
|
"lint:fix": "eslint src --fix",
|
||||||
"locale": "lobe-i18n locale",
|
"locale": "lobe-i18n locale",
|
||||||
"collect-i18n": "playwright test --config=playwright.i18n.config.ts"
|
"collect-i18n": "playwright test --config=playwright.i18n.config.ts",
|
||||||
|
"json-schema": "tsx scripts/generate-json-schema.ts"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.7",
|
"@babel/core": "^7.24.7",
|
||||||
|
|||||||
35
scripts/generate-json-schema.ts
Normal file
35
scripts/generate-json-schema.ts
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
import fs from 'fs'
|
||||||
|
import path from 'path'
|
||||||
|
import { zodToJsonSchema } from 'zod-to-json-schema'
|
||||||
|
|
||||||
|
import { zComfyWorkflow, zComfyWorkflow1 } from '../src/types/comfyWorkflow'
|
||||||
|
|
||||||
|
// Convert both workflow schemas to JSON Schema
|
||||||
|
const workflow04Schema = zodToJsonSchema(zComfyWorkflow, {
|
||||||
|
name: 'ComfyWorkflow0_4',
|
||||||
|
$refStrategy: 'none'
|
||||||
|
})
|
||||||
|
|
||||||
|
const workflow1Schema = zodToJsonSchema(zComfyWorkflow1, {
|
||||||
|
name: 'ComfyWorkflow1_0',
|
||||||
|
$refStrategy: 'none'
|
||||||
|
})
|
||||||
|
|
||||||
|
// Create output directory if it doesn't exist
|
||||||
|
const outputDir = './schemas'
|
||||||
|
if (!fs.existsSync(outputDir)) {
|
||||||
|
fs.mkdirSync(outputDir, { recursive: true })
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write schemas to files
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.join(outputDir, 'workflow-0_4.json'),
|
||||||
|
JSON.stringify(workflow04Schema, null, 2)
|
||||||
|
)
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.join(outputDir, 'workflow-1_0.json'),
|
||||||
|
JSON.stringify(workflow1Schema, null, 2)
|
||||||
|
)
|
||||||
|
|
||||||
|
console.log('JSON Schemas generated successfully!')
|
||||||
@@ -200,7 +200,7 @@ export const zComfyWorkflow = z
|
|||||||
.passthrough()
|
.passthrough()
|
||||||
|
|
||||||
/** Schema version 1 */
|
/** Schema version 1 */
|
||||||
const zComfyWorkflow1 = z
|
export const zComfyWorkflow1 = z
|
||||||
.object({
|
.object({
|
||||||
version: z.literal(1),
|
version: z.literal(1),
|
||||||
config: zConfig.optional().nullable(),
|
config: zConfig.optional().nullable(),
|
||||||
|
|||||||
Reference in New Issue
Block a user