1 | import * as fs from 'fs'
|
2 | import { JsonSchema } from '@naturalcycles/js-lib'
|
3 | import { GlobbyOptions } from 'globby'
|
4 | import * as globby from 'globby'
|
5 | import { AjvSchema, AjvSchemaCfg } from './ajvSchema'
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | export function readJsonSchemas(patterns: string | string[], opt?: GlobbyOptions): JsonSchema[] {
|
16 | return globby.sync(patterns, opt).map(fileName => JSON.parse(fs.readFileSync(fileName, 'utf8')))
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | export function readAjvSchemas(patterns: string | string[], cfg?: AjvSchemaCfg): AjvSchema[] {
|
27 | const schemas = readJsonSchemas(patterns)
|
28 | return schemas.map(schema =>
|
29 | AjvSchema.create(schema, {
|
30 | schemas,
|
31 | ...cfg,
|
32 | }),
|
33 | )
|
34 | }
|