Skip to content

Commit

Permalink
feat(codegen.ts): add emitLegacyCommonJSImports flag to CodegenConfig…
Browse files Browse the repository at this point in the history
… to support ESM

refactor(codegen.ts): update BlockStatusFilter path to reflect its new location
refactor(package.json): rename "generate" script to "codegen" for consistency with codegen.ts
refactor(resolvers-types.ts): update Scalars types to include input and output types for better type safety
refactor(resolvers-types.ts): reorder imports for better organization
feat(resolvers-types.ts): add MakeEmpty and Incremental types for more flexible type handling
  • Loading branch information
MartinMinkov committed Jan 30, 2024
1 parent dce4a9f commit 136c399
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 45 deletions.
3 changes: 2 additions & 1 deletion codegen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ import type { CodegenConfig } from '@graphql-codegen/cli';

const config: CodegenConfig = {
schema: 'schema.graphql',
emitLegacyCommonJSImports: false,
generates: {
'./src/resolvers-types.ts': {
config: {
contextType: './context#GraphQLContext',
enumValues: {
BlockStatusFilter: './models/types#BlockStatusFilter',
BlockStatusFilter: './blockchain/types#BlockStatusFilter',
},
},
plugins: ['typescript', 'typescript-resolvers'],
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"coverage": "vitest run --coverage",
"lint": "eslint . --ext .ts",
"format": "prettier --write .",
"generate": "graphql-codegen",
"codegen": "graphql-codegen-esm --config codegen.ts",
"compose:prod": "docker compose up",
"compose:dev": "docker compose -f docker-compose.dev.yml up"
},
Expand Down
95 changes: 52 additions & 43 deletions src/resolvers-types.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { GraphQLResolveInfo } from 'graphql';
import { BlockStatusFilter } from './blockchain/types.js';
import { GraphQLResolveInfo } from 'graphql';
import { GraphQLContext } from './context.js';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
Expand All @@ -12,6 +12,15 @@ export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
[SubKey in K]: Maybe<T[SubKey]>;
};
export type MakeEmpty<
T extends { [key: string]: unknown },
K extends keyof T,
> = { [_ in K]?: never };
export type Incremental<T> =
| T
| {
[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
};
export type EnumResolverSignature<T, AllowedValues = any> = {
[key in keyof T]?: AllowedValues;
};
Expand All @@ -20,28 +29,28 @@ export type RequireFields<T, K extends keyof T> = Omit<T, K> & {
};
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: string;
String: string;
Boolean: boolean;
Int: number;
Float: number;
ID: { input: string; output: string };
String: { input: string; output: string };
Boolean: { input: boolean; output: boolean };
Int: { input: number; output: number };
Float: { input: number; output: number };
};

export type ActionData = {
__typename?: 'ActionData';
accountUpdateId: Scalars['String'];
data: Array<Maybe<Scalars['String']>>;
accountUpdateId: Scalars['String']['output'];
data: Array<Maybe<Scalars['String']['output']>>;
transactionInfo?: Maybe<TransactionInfo>;
};

export type ActionFilterOptionsInput = {
address: Scalars['String'];
endActionState?: InputMaybe<Scalars['String']>;
from?: InputMaybe<Scalars['Int']>;
fromActionState?: InputMaybe<Scalars['String']>;
address: Scalars['String']['input'];
endActionState?: InputMaybe<Scalars['String']['input']>;
from?: InputMaybe<Scalars['Int']['input']>;
fromActionState?: InputMaybe<Scalars['String']['input']>;
status?: InputMaybe<BlockStatusFilter>;
to?: InputMaybe<Scalars['Int']>;
tokenId?: InputMaybe<Scalars['String']>;
to?: InputMaybe<Scalars['Int']['input']>;
tokenId?: InputMaybe<Scalars['String']['input']>;
};

export type ActionOutput = {
Expand All @@ -54,40 +63,40 @@ export type ActionOutput = {

export type ActionStates = {
__typename?: 'ActionStates';
actionStateFive?: Maybe<Scalars['String']>;
actionStateFour?: Maybe<Scalars['String']>;
actionStateOne?: Maybe<Scalars['String']>;
actionStateThree?: Maybe<Scalars['String']>;
actionStateTwo?: Maybe<Scalars['String']>;
actionStateFive?: Maybe<Scalars['String']['output']>;
actionStateFour?: Maybe<Scalars['String']['output']>;
actionStateOne?: Maybe<Scalars['String']['output']>;
actionStateThree?: Maybe<Scalars['String']['output']>;
actionStateTwo?: Maybe<Scalars['String']['output']>;
};

export type BlockInfo = {
__typename?: 'BlockInfo';
chainStatus: Scalars['String'];
distanceFromMaxBlockHeight: Scalars['Int'];
globalSlotSinceGenesis: Scalars['Int'];
globalSlotSinceHardfork: Scalars['Int'];
height: Scalars['Int'];
ledgerHash: Scalars['String'];
parentHash: Scalars['String'];
stateHash: Scalars['String'];
timestamp: Scalars['String'];
chainStatus: Scalars['String']['output'];
distanceFromMaxBlockHeight: Scalars['Int']['output'];
globalSlotSinceGenesis: Scalars['Int']['output'];
globalSlotSinceHardfork: Scalars['Int']['output'];
height: Scalars['Int']['output'];
ledgerHash: Scalars['String']['output'];
parentHash: Scalars['String']['output'];
stateHash: Scalars['String']['output'];
timestamp: Scalars['String']['output'];
};

export { BlockStatusFilter };

export type EventData = {
__typename?: 'EventData';
data: Array<Maybe<Scalars['String']>>;
data: Array<Maybe<Scalars['String']['output']>>;
transactionInfo?: Maybe<TransactionInfo>;
};

export type EventFilterOptionsInput = {
address: Scalars['String'];
from?: InputMaybe<Scalars['Int']>;
address: Scalars['String']['input'];
from?: InputMaybe<Scalars['Int']['input']>;
status?: InputMaybe<BlockStatusFilter>;
to?: InputMaybe<Scalars['Int']>;
tokenId?: InputMaybe<Scalars['String']>;
to?: InputMaybe<Scalars['Int']['input']>;
tokenId?: InputMaybe<Scalars['String']['input']>;
};

export type EventOutput = {
Expand All @@ -112,10 +121,10 @@ export type QueryEventsArgs = {

export type TransactionInfo = {
__typename?: 'TransactionInfo';
authorizationKind: Scalars['String'];
hash: Scalars['String'];
memo: Scalars['String'];
status: Scalars['String'];
authorizationKind: Scalars['String']['output'];
hash: Scalars['String']['output'];
memo: Scalars['String']['output'];
status: Scalars['String']['output'];
};

export type ResolverTypeWrapper<T> = Promise<T> | T;
Expand Down Expand Up @@ -231,13 +240,13 @@ export type ResolversTypes = {
ActionStates: ResolverTypeWrapper<ActionStates>;
BlockInfo: ResolverTypeWrapper<BlockInfo>;
BlockStatusFilter: BlockStatusFilter;
Boolean: ResolverTypeWrapper<Scalars['Boolean']>;
Boolean: ResolverTypeWrapper<Scalars['Boolean']['output']>;
EventData: ResolverTypeWrapper<EventData>;
EventFilterOptionsInput: EventFilterOptionsInput;
EventOutput: ResolverTypeWrapper<EventOutput>;
Int: ResolverTypeWrapper<Scalars['Int']>;
Int: ResolverTypeWrapper<Scalars['Int']['output']>;
Query: ResolverTypeWrapper<{}>;
String: ResolverTypeWrapper<Scalars['String']>;
String: ResolverTypeWrapper<Scalars['String']['output']>;
TransactionInfo: ResolverTypeWrapper<TransactionInfo>;
};

Expand All @@ -248,13 +257,13 @@ export type ResolversParentTypes = {
ActionOutput: ActionOutput;
ActionStates: ActionStates;
BlockInfo: BlockInfo;
Boolean: Scalars['Boolean'];
Boolean: Scalars['Boolean']['output'];
EventData: EventData;
EventFilterOptionsInput: EventFilterOptionsInput;
EventOutput: EventOutput;
Int: Scalars['Int'];
Int: Scalars['Int']['output'];
Query: {};
String: Scalars['String'];
String: Scalars['String']['output'];
TransactionInfo: TransactionInfo;
};

Expand Down

0 comments on commit 136c399

Please sign in to comment.