chore: 清理macOS同步产生的重复文件
详细说明: - 删除了352个带数字后缀的重复文件 - 更新.gitignore防止未来产生此类文件 - 这些文件是由iCloud或其他同步服务冲突产生的 - 不影响项目功能,仅清理冗余文件
This commit is contained in:
@@ -1,143 +0,0 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"properties": {
|
||||
"allOf": {
|
||||
"allOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"anyOf": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"oneOf": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"array": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minItems": 2,
|
||||
"maxItems": 3
|
||||
},
|
||||
"tuple": {
|
||||
"type": "array",
|
||||
"items": [
|
||||
{
|
||||
"type": "boolean"
|
||||
},
|
||||
{
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"minItems": 2,
|
||||
"maxItems": 3
|
||||
},
|
||||
"const": {
|
||||
"const": "xbox"
|
||||
},
|
||||
"enum": {
|
||||
"enum": ["ps4", "ps5"]
|
||||
},
|
||||
"ifThenElse": {
|
||||
"if": {
|
||||
"type": "string"
|
||||
},
|
||||
"then": {
|
||||
"const": "x"
|
||||
},
|
||||
"else": {
|
||||
"enum": [1, 2, 3]
|
||||
}
|
||||
},
|
||||
"null": {
|
||||
"type": "null"
|
||||
},
|
||||
"multiple": {
|
||||
"type": ["array", "boolean"]
|
||||
},
|
||||
"objAdditionalTrue": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"x": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": true
|
||||
},
|
||||
"objAdditionalFalse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"x": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"objAdditionalNumber": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"x": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"objAdditionalOnly": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"patternProps": {
|
||||
"type": "object",
|
||||
"patternProperties": {
|
||||
"^x": {
|
||||
"type": "string"
|
||||
},
|
||||
"^y": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"z": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
import type { z } from 'zod';
|
||||
|
||||
expect.extend({
|
||||
toMatchZod(this: jest.MatcherContext, actual: z.ZodTypeAny, expected: z.ZodTypeAny) {
|
||||
const actualSerialized = JSON.stringify(actual._def, null, 2);
|
||||
const expectedSerialized = JSON.stringify(expected._def, null, 2);
|
||||
const pass = this.equals(actualSerialized, expectedSerialized);
|
||||
|
||||
return {
|
||||
pass,
|
||||
message: pass
|
||||
? () => `Expected ${actualSerialized} not to match ${expectedSerialized}`
|
||||
: () => `Expected ${actualSerialized} to match ${expectedSerialized}`,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -1,5 +0,0 @@
|
||||
namespace jest {
|
||||
interface Matchers<R, T> {
|
||||
toMatchZod(expected: unknown): T;
|
||||
}
|
||||
}
|
||||
@@ -1,106 +0,0 @@
|
||||
import type { JSONSchema4, JSONSchema6Definition, JSONSchema7Definition } from 'json-schema';
|
||||
import { z } from 'zod';
|
||||
|
||||
import { jsonSchemaToZod } from '../src';
|
||||
|
||||
describe('jsonSchemaToZod', () => {
|
||||
test('should accept json schema 7 and 4', () => {
|
||||
const schema = { type: 'string' } as unknown;
|
||||
|
||||
expect(jsonSchemaToZod(schema as JSONSchema4));
|
||||
expect(jsonSchemaToZod(schema as JSONSchema6Definition));
|
||||
expect(jsonSchemaToZod(schema as JSONSchema7Definition));
|
||||
});
|
||||
|
||||
test('can exclude defaults', () => {
|
||||
expect(
|
||||
jsonSchemaToZod(
|
||||
{
|
||||
type: 'string',
|
||||
default: 'foo',
|
||||
},
|
||||
{ withoutDefaults: true },
|
||||
),
|
||||
).toMatchZod(z.string());
|
||||
});
|
||||
|
||||
test('should include describes', () => {
|
||||
expect(
|
||||
jsonSchemaToZod({
|
||||
type: 'string',
|
||||
description: 'foo',
|
||||
}),
|
||||
).toMatchZod(z.string().describe('foo'));
|
||||
});
|
||||
|
||||
test('can exclude describes', () => {
|
||||
expect(
|
||||
jsonSchemaToZod(
|
||||
{
|
||||
type: 'string',
|
||||
description: 'foo',
|
||||
},
|
||||
{
|
||||
withoutDescribes: true,
|
||||
},
|
||||
),
|
||||
).toMatchZod(z.string());
|
||||
});
|
||||
|
||||
test('will remove optionality if default is present', () => {
|
||||
expect(
|
||||
jsonSchemaToZod({
|
||||
type: 'object',
|
||||
properties: {
|
||||
prop: {
|
||||
type: 'string',
|
||||
default: 'def',
|
||||
},
|
||||
},
|
||||
}),
|
||||
).toMatchZod(z.object({ prop: z.string().default('def') }));
|
||||
});
|
||||
|
||||
test('will handle falsy defaults', () => {
|
||||
expect(
|
||||
jsonSchemaToZod({
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
}),
|
||||
).toMatchZod(z.boolean().default(false));
|
||||
});
|
||||
|
||||
test('will ignore undefined as default', () => {
|
||||
expect(
|
||||
jsonSchemaToZod({
|
||||
type: 'null',
|
||||
default: undefined,
|
||||
}),
|
||||
).toMatchZod(z.null());
|
||||
});
|
||||
|
||||
test('should be possible to define a custom parser', () => {
|
||||
expect(
|
||||
jsonSchemaToZod(
|
||||
{
|
||||
allOf: [{ type: 'string' }, { type: 'number' }, { type: 'boolean', description: 'foo' }],
|
||||
},
|
||||
{
|
||||
parserOverride: (schema, refs) => {
|
||||
if (
|
||||
refs.path.length === 2 &&
|
||||
refs.path[0] === 'allOf' &&
|
||||
refs.path[1] === 2 &&
|
||||
schema.type === 'boolean' &&
|
||||
schema.description === 'foo'
|
||||
) {
|
||||
return z.null();
|
||||
}
|
||||
|
||||
return undefined;
|
||||
},
|
||||
},
|
||||
),
|
||||
).toMatchZod(z.intersection(z.string(), z.intersection(z.number(), z.null())));
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user