Skip to content

Commit

Permalink
lint-fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Code-Hex committed Apr 6, 2024
1 parent d7751ef commit 08dbfa0
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 86 deletions.
2 changes: 1 addition & 1 deletion src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ export interface ValidationSchemaPluginConfig extends TypeScriptPluginConfig {
* withInterfaceType: true
* ```
*/
withInterfaceType?: boolean;
withInterfaceType?: boolean
/**
* @description Specify validation schema export type.
* @default function
Expand Down
14 changes: 6 additions & 8 deletions src/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,15 @@ export function ObjectTypeDefinitionBuilder(useObjectTypes: boolean | undefined,
};
}

export const InterfaceTypeDefinitionBuilder = (
useInterfaceTypes: boolean | undefined,
callback: InterfaceTypeDefinitionFn
): InterfaceTypeDefinitionFn | undefined => {
if (!useInterfaceTypes) return undefined;
return node => {
export function InterfaceTypeDefinitionBuilder(useInterfaceTypes: boolean | undefined, callback: InterfaceTypeDefinitionFn): InterfaceTypeDefinitionFn | undefined {
if (!useInterfaceTypes)
return undefined;
return (node) => {
return callback(node);
};
};
}

export const topologicalSortAST = (schema: GraphQLSchema, ast: DocumentNode): DocumentNode => {
export function topologicalSortAST(schema: GraphQLSchema, ast: DocumentNode): DocumentNode {
const dependencyGraph = new Graph();
const targetKinds = [
'ObjectTypeDefinition',
Expand Down
12 changes: 6 additions & 6 deletions src/myzod/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import {
import type { ValidationSchemaPluginConfig } from '../config';
import { buildApi, formatDirectiveConfig } from '../directive';
import { BaseSchemaVisitor } from '../schema_visitor';
import { Visitor } from '../visitor';
import type { Visitor } from '../visitor';
import {
InterfaceTypeDefinitionBuilder,
ObjectTypeDefinitionBuilder,
isInput,
isListType,
isNamedType,
isNonNullType,
ObjectTypeDefinitionBuilder,
} from './../graphql';

const anySchema = `definedNonNullAnySchema`;
Expand Down Expand Up @@ -70,7 +70,7 @@ export class MyZodSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = node.fields?.map(field => generateFieldMyZodSchema(this.config, visitor, field, 2)).join(',\n');
Expand Down Expand Up @@ -108,7 +108,7 @@ export class MyZodSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = node.fields?.map(field => generateFieldMyZodSchema(this.config, visitor, field, 2)).join(',\n');
Expand Down Expand Up @@ -329,9 +329,9 @@ function generateNameNodeMyZodSchema(config: ValidationSchemaPluginConfig, visit
case 'ScalarTypeDefinition':
return myzod4Scalar(config, visitor, node.value);
default:
if (converter?.targetKind) {
if (converter?.targetKind)
console.warn('Unknown target kind', converter.targetKind);
}

return myzod4Scalar(config, visitor, node.value);
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/schema_visitor.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import {
import type {
FieldDefinitionNode,
GraphQLSchema,
InputValueDefinitionNode,
Expand Down Expand Up @@ -47,7 +47,7 @@ export abstract class BaseSchemaVisitor implements SchemaVisitor {

protected buildTypeDefinitionArguments(
node: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode,
visitor: Visitor
visitor: Visitor,
) {
return visitor.buildArgumentsSchemaBlock(node, (typeName, field) => {
this.importTypes.push(typeName);
Expand Down
14 changes: 8 additions & 6 deletions src/visitor.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import { TsVisitor } from '@graphql-codegen/typescript';
import {
import type {
FieldDefinitionNode,
GraphQLSchema,
InterfaceTypeDefinitionNode,
NameNode,
ObjectTypeDefinitionNode,
} from 'graphql';
import {
specifiedScalarTypes,
} from 'graphql';

Expand Down Expand Up @@ -40,13 +42,13 @@ export class Visitor extends TsVisitor {
}

public getScalarType(scalarName: string): string | null {
if (this.scalarDirection === 'both') {
if (this.scalarDirection === 'both')
return null;
}

const scalar = this.scalars[scalarName];
if (!scalar) {
if (!scalar)
throw new Error(`Unknown scalar ${scalarName}`);
}

return scalar[this.scalarDirection];
}

Expand All @@ -64,7 +66,7 @@ export class Visitor extends TsVisitor {

public buildArgumentsSchemaBlock(
node: ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode,
callback: (typeName: string, field: FieldDefinitionNode) => string
callback: (typeName: string, field: FieldDefinitionNode) => string,
) {
const fieldsWithArguments = node.fields?.filter(field => field.arguments && field.arguments.length > 0) ?? [];
if (fieldsWithArguments.length === 0)
Expand Down
10 changes: 5 additions & 5 deletions src/yup/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import {
import type { ValidationSchemaPluginConfig } from '../config';
import { buildApi, formatDirectiveConfig } from '../directive';
import { BaseSchemaVisitor } from '../schema_visitor';
import { Visitor } from '../visitor';
import type { Visitor } from '../visitor';
import {
InterfaceTypeDefinitionBuilder,
ObjectTypeDefinitionBuilder,
isInput,
isListType,
isNamedType,
isNonNullType,
ObjectTypeDefinitionBuilder,
} from './../graphql';

export class YupSchemaVisitor extends BaseSchemaVisitor {
Expand Down Expand Up @@ -77,11 +77,11 @@ export class YupSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = node.fields
?.map(field => {
?.map((field) => {
const fieldSchema = generateFieldYupSchema(this.config, visitor, field, 2);
return isNonNullType(field.type) ? fieldSchema : `${fieldSchema}.optional()`;
})
Expand Down Expand Up @@ -120,7 +120,7 @@ export class YupSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = shapeFields(node.fields, this.config, visitor);
Expand Down
12 changes: 6 additions & 6 deletions src/zod/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import {
import type { ValidationSchemaPluginConfig } from '../config';
import { buildApi, formatDirectiveConfig } from '../directive';
import { BaseSchemaVisitor } from '../schema_visitor';
import { Visitor } from '../visitor';
import type { Visitor } from '../visitor';
import {
InterfaceTypeDefinitionBuilder,
ObjectTypeDefinitionBuilder,
isInput,
isListType,
isNamedType,
isNonNullType,
ObjectTypeDefinitionBuilder,
} from './../graphql';

const anySchema = `definedNonNullAnySchema`;
Expand Down Expand Up @@ -86,7 +86,7 @@ export class ZodSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = node.fields?.map(field => generateFieldZodSchema(this.config, visitor, field, 2)).join(',\n');
Expand Down Expand Up @@ -124,7 +124,7 @@ export class ZodSchemaVisitor extends BaseSchemaVisitor {

// Building schema for field arguments.
const argumentBlocks = this.buildTypeDefinitionArguments(node, visitor);
const appendArguments = argumentBlocks ? '\n' + argumentBlocks : '';
const appendArguments = argumentBlocks ? `\n${argumentBlocks}` : '';

// Building schema for fields.
const shape = node.fields?.map(field => generateFieldZodSchema(this.config, visitor, field, 2)).join(',\n');
Expand Down Expand Up @@ -342,9 +342,9 @@ function generateNameNodeZodSchema(config: ValidationSchemaPluginConfig, visitor
case 'ScalarTypeDefinition':
return zod4Scalar(config, visitor, node.value);
default:
if (converter?.targetKind) {
if (converter?.targetKind)
console.warn('Unknown targetKind', converter?.targetKind);
}

return zod4Scalar(config, visitor, node.value);
}
}
Expand Down
29 changes: 13 additions & 16 deletions tests/myzod.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,7 @@ describe('myzod', () => {
{
schema: 'myzod',
},
{}
{},
);
expect(result.content).not.toContain('export function UserSchema(): myzod.Type<User> {');
});
Expand All @@ -518,19 +518,18 @@ describe('myzod', () => {
schema: 'myzod',
withInterfaceType: true,
},
{}
{},
);
const wantContains = [
'export function BookSchema(): myzod.Type<Book> {',
'title: myzod.string().optional().nullable()',
];
const wantNotContains = ["__typename: myzod.literal('Book')"];
for (const wantContain of wantContains) {
const wantNotContains = ['__typename: myzod.literal(\'Book\')'];
for (const wantContain of wantContains)
expect(result.content).toContain(wantContain);
}
for (const wantNotContain of wantNotContains) {

for (const wantNotContain of wantNotContains)
expect(result.content).not.toContain(wantNotContain);
}
});

it('generate interface type contains interface type', async () => {
Expand All @@ -552,7 +551,7 @@ describe('myzod', () => {
schema: 'myzod',
withInterfaceType: true,
},
{}
{},
);
const wantContains = [
'export function AuthorSchema(): myzod.Type<Author> {',
Expand All @@ -563,9 +562,8 @@ describe('myzod', () => {
'author: AuthorSchema().optional().nullable(),',
'title: myzod.string().optional().nullable()',
];
for (const wantContain of wantContains) {
for (const wantContain of wantContains)
expect(result.content).toContain(wantContain);
}
});
it('generate object type contains interface type', async () => {
const schema = buildSchema(/* GraphQL */ `
Expand Down Expand Up @@ -599,7 +597,7 @@ describe('myzod', () => {
withInterfaceType: true,
withObjectType: true,
},
{}
{},
);
const wantContains = [
[
Expand All @@ -614,7 +612,7 @@ describe('myzod', () => {
[
'export function TextbookSchema(): myzod.Type<Textbook> {',
'return myzod.object({',
"__typename: myzod.literal('Textbook').optional(),",
'__typename: myzod.literal(\'Textbook\').optional(),',
'title: myzod.string(),',
'author: AuthorSchema(),',
'courses: myzod.array(myzod.string())',
Expand All @@ -625,7 +623,7 @@ describe('myzod', () => {
[
'export function ColoringBookSchema(): myzod.Type<ColoringBook> {',
'return myzod.object({',
"__typename: myzod.literal('ColoringBook').optional(),",
'__typename: myzod.literal(\'ColoringBook\').optional(),',
'title: myzod.string(),',
'author: AuthorSchema(),',
'colors: myzod.array(myzod.string())',
Expand All @@ -636,17 +634,16 @@ describe('myzod', () => {
[
'export function AuthorSchema(): myzod.Type<Author> {',
'return myzod.object({',
"__typename: myzod.literal('Author').optional()",
'__typename: myzod.literal(\'Author\').optional()',
'books: myzod.array(BookSchema()).optional().nullable()',
'name: myzod.string().optional().nullable()',
'})',
'}',
],
];
for (const wantContain of wantContains) {
for (const wantContainLine of wantContain) {
for (const wantContainLine of wantContain)
expect(result.content).toContain(wantContainLine);
}
}
});
});
Expand Down
Loading

0 comments on commit 08dbfa0

Please sign in to comment.