1
1
mirror of https://github.com/leon-ai/leon.git synced 2024-09-20 14:27:40 +03:00

feat: add data schemas

This commit is contained in:
louistiti 2022-11-02 00:21:14 +08:00
parent 360c4d4f6f
commit a4e9b1e1cc
5 changed files with 47 additions and 38 deletions

45
core/data/schemas.ts Normal file
View File

@ -0,0 +1,45 @@
import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
const globalEntity = {
options: Type.Record(
Type.String(),
Type.Object({
synonyms: Type.Array(Type.String()),
data: Type.Record(Type.String(), Type.Array(Type.String()))
})
)
}
const globalResolver = {
name: Type.String(),
intents: Type.Record(
Type.String(),
Type.Object({
utterance_samples: Type.Array(Type.String()),
value: Type.Unknown()
})
)
}
const answers = {
answers: Type.Record(
Type.String(),
Type.Union([
Type.Record(Type.String(), Type.String()),
Type.Array(Type.String())
])
)
}
const globalEntitySchemaObject = Type.Strict(
Type.Object(globalEntity, { additionalProperties: false })
)
const globalResolverSchemaObject = Type.Strict(
Type.Object(globalResolver, { additionalProperties: false })
)
const answersSchemaObject = Type.Strict(
Type.Object(answers, { additionalProperties: false })
)
export type GlobalEntity = Static<typeof globalEntitySchemaObject>
export type GlobalResolver = Static<typeof globalResolverSchemaObject>
export type Answers = Static<typeof answersSchemaObject>

View File

@ -3,7 +3,7 @@ import path from 'node:path'
import type { ShortLanguageCode } from '@/helpers/lang-helper'
import type { Domain } from '@/models/domain'
import type { GlobalEntity } from '@/models/global-entities'
import type { GlobalEntity } from '@@/core/data/schemas'
import type { SkillConfig } from '@/models/skill-config'
import type { Skill, SkillBridge } from '@/models/skill'

View File

@ -1,18 +0,0 @@
import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
export const globalEntity = {
options: Type.Record(
Type.String(),
Type.Object({
synonyms: Type.Array(Type.String()),
data: Type.Record(Type.String(), Type.Array(Type.String()))
})
)
}
export const globalEntitySchemaObject = Type.Strict(
Type.Object(globalEntity, { additionalProperties: false })
)
export type GlobalEntity = Static<typeof globalEntitySchemaObject>

View File

@ -1,19 +0,0 @@
import type { Static } from '@sinclair/typebox'
import { Type } from '@sinclair/typebox'
export const globalResolver = {
name: Type.String(),
intents: Type.Record(
Type.String(),
Type.Object({
utterance_samples: Type.Array(Type.String()),
value: Type.Unknown()
})
)
}
export const globalResolverSchemaObject = Type.Strict(
Type.Object(globalResolver, { additionalProperties: false })
)
export type GlobalResolver = Static<typeof globalResolverSchemaObject>

1
skills/schemas.ts Normal file
View File

@ -0,0 +1 @@
// TODO