1 | import type {DefinitionOptions} from "./_types"
|
2 | import type {SchemaObject, KeywordCxt, Name} from "ajv"
|
3 | import {_} from "ajv/dist/compile/codegen"
|
4 |
|
5 | const META_SCHEMA_ID = "http://json-schema.org/schema"
|
6 |
|
7 | export function metaSchemaRef({defaultMeta}: DefinitionOptions = {}): SchemaObject {
|
8 | return defaultMeta === false ? {} : {$ref: defaultMeta || META_SCHEMA_ID}
|
9 | }
|
10 |
|
11 | export function usePattern(
|
12 | {gen, it: {opts}}: KeywordCxt,
|
13 | pattern: string,
|
14 | flags = opts.unicodeRegExp ? "u" : ""
|
15 | ): Name {
|
16 | const rx = new RegExp(pattern, flags)
|
17 | return gen.scopeValue("pattern", {
|
18 | key: rx.toString(),
|
19 | ref: rx,
|
20 | code: _`new RegExp(${pattern}, ${flags})`,
|
21 | })
|
22 | }
|