Skip to content

Commit 54d048e

Browse files
authored
feat(perf): remove imports that bloat bundle (#1215)
1 parent debbe39 commit 54d048e

File tree

20 files changed

+188
-76
lines changed

20 files changed

+188
-76
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ website/.vitepress/.temp
99
website/.vitepress/dist
1010
website/.vitepress/cache
1111
legacy
12+
project/

eslint.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import tsEslint from 'typescript-eslint'
33

44
export default tsEslint.config({
55
ignores: [
6+
'project/**/*',
67
'examples/35_custom-scalar/custom-scalar.ts',
78
'eslint.config.js',
89
'vite.config.ts',

examples/__outputs__/20_output/output_envelope.output.test.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
{ name: 'Weedle' }
1111
]
1212
},
13-
errors: undefined,
14-
extensions: undefined,
1513
response: Response {
1614
status: 200,
1715
statusText: 'OK',

examples/__outputs__/20_output/output_return-error_return-error-execution__return-error-execution.output.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ContextualAggregateError: One or more errors in the execution result.
88
context: {},
99
cause: undefined,
1010
errors: [
11-
GraphQLError: [
11+
ContextualError: [
1212
{
1313
"code": "too_small",
1414
"minimum": 1,
@@ -21,15 +21,15 @@ ContextualAggregateError: One or more errors in the execution result.
2121
]
2222
}
2323
]
24-
at <anonymous> (/some/path/to/http.ts:XX:XX:47)
24+
at <anonymous> (/some/path/to/handleOutput.ts:XX:XX:16)
2525
at Array.map (<anonymous>)
26-
at parseExecutionResult (/some/path/to/http.ts:XX:XX:28)
27-
at Object.unpack (/some/path/to/core.ts:XX:XX:26)
26+
at handleOutput (/some/path/to/handleOutput.ts:XX:XX:21)
27+
at executeDocument (/some/path/to/requestMethods.ts:XX:XX:10)
2828
at process.processTicksAndRejections (node:internal/process/task_queues:XX:XX)
29-
at async runHook (/some/path/to/runHook.ts:XX:XX:16) {
30-
path: [ 'addPokemon' ],
31-
locations: undefined,
32-
extensions: [Object: null prototype] {}
29+
at async executeRootField (/some/path/to/requestMethods.ts:XX:XX:18)
30+
at async <anonymous> (/some/path/to/output_return-error_return-error-execution__return-error-execution.ts:XX:XX:16) {
31+
context: { locations: [ { line: 2, column: 3 } ], path: [ 'addPokemon' ] },
32+
cause: undefined
3333
}
3434
]
3535
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
"check:publint": "publint run --strict",
8585
"prepublishOnly": "pnpm build",
8686
"build:docs": "doctoc README.md --notitle && dprint fmt README.md",
87+
"build:emit": "pnpm clean && pnpm tsc --noCheck --project tsconfig.build.json && chmod +x ./build/generator/cli/generate.js",
8788
"build": "pnpm clean && pnpm tsc --project tsconfig.build.json && chmod +x ./build/generator/cli/generate.js",
8889
"clean": "tsc --build --clean && rm -rf build",
8990
"test:unit": "vitest --exclude tests/examples",

src/documentBuilder/Select/document.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export const createDocumentNormalizedFromRootTypeSelection = (
8080
operations: {
8181
[operationName ?? defaultOperationName]: {
8282
name: operationName ?? null,
83-
type: Grafaid.RootTypeNameToOperationName[rootTypeName],
83+
type: Grafaid.Document.RootTypeToOperationType[rootTypeName],
8484
rootType: rootTypeName,
8585
selectionSet,
8686
},
@@ -100,15 +100,15 @@ export const normalizeOrThrow = (document: DocumentObject): DocumentNormalized =
100100
[name, selectionSet],
101101
): [name: string, OperationNormalized] => [name, {
102102
name,
103-
type: Grafaid.RootTypeNameToOperationName[Grafaid.Schema.RootTypeName.Query],
103+
type: Grafaid.Document.RootTypeToOperationType[Grafaid.Schema.RootTypeName.Query],
104104
rootType: Grafaid.Schema.RootTypeName.Query,
105105
selectionSet,
106106
}])
107107
const mutationOperations = Object.entries(document.mutation ?? {}).map((
108108
[name, selectionSet],
109109
): [name: string, OperationNormalized] => [name, {
110110
name,
111-
type: Grafaid.RootTypeNameToOperationName[Grafaid.Schema.RootTypeName.Mutation],
111+
type: Grafaid.Document.RootTypeToOperationType[Grafaid.Schema.RootTypeName.Mutation],
112112
rootType: Grafaid.Schema.RootTypeName.Mutation,
113113
selectionSet,
114114
}])

src/generator/generators/MethodsRoot.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ export const ModuleGeneratorMethodsRoot = createModuleGenerator(
3030
export interface BuilderMethodsRoot<$Context extends ${identifiers.$$Utilities}.ClientContext> {
3131
${
3232
config.schema.kindMap.Root.map(node => {
33-
const operationName =
34-
Grafaid.RootTypeNameToOperationName[node.name as keyof typeof Grafaid.RootTypeNameToOperationName]
33+
const operationName = Grafaid.Document
34+
.RootTypeToOperationType[node.name as keyof typeof Grafaid.Document.RootTypeToOperationType]
3535
return `${operationName}: ${node.name}Methods<$Context>`
3636
}).join(`\n`)
3737
}

src/layers/5_request/core.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
import { type ExecutionResult } from 'graphql'
21
import { SelectionSetGraphqlMapper } from '../../documentBuilder/SelectGraphQLMapper/__.js'
32
import { Anyware } from '../../lib/anyware/__.js'
4-
import type { Grafaid } from '../../lib/grafaid/__.js'
3+
import { Grafaid } from '../../lib/grafaid/__.js'
54
import { getOperationDefinition, OperationTypeToAccessKind, print } from '../../lib/grafaid/document.js'
6-
import { execute } from '../../lib/grafaid/execute.js'
7-
import { operationTypeToRootType } from '../../lib/grafaid/graphql.js'
5+
import { execute } from '../../lib/grafaid/execute.js' // todo
86
import {
97
getRequestEncodeSearchParameters,
108
getRequestHeadersRec,
@@ -44,15 +42,16 @@ export const graffleMappedResultToRequest = (
4442
if (!operation_) throw new Error(`Unknown operation named "${String(operationName)}".`)
4543

4644
return {
47-
rootType: operationTypeToRootType[operation_.operation],
45+
rootType: Grafaid.Document.OperationTypeToRootType[operation_.operation],
4846
operationName,
4947
operation: operation_,
5048
query: document,
5149
variables: variables_,
5250
}
5351
}
5452

55-
export const anyware = Anyware.create<HookSequence, HookMap, ExecutionResult>({
53+
// todo execution result only if transport is memory
54+
export const anyware = Anyware.create<HookSequence, HookMap, Grafaid.FormattedExecutionResult>({
5655
// If core errors caused by an abort error then raise it as a direct error.
5756
// This is an expected possible error. Possible when user cancels a request.
5857
passthroughErrorWith: (signal) => {

src/layers/5_request/hooks.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ExecutionResult, GraphQLSchema } from 'graphql'
1+
import type { FormattedExecutionResult, GraphQLSchema } from 'graphql'
22
import type { Select } from '../../documentBuilder/Select/__.js'
33
import type { Grafaid } from '../../lib/grafaid/__.js'
44
import type { getRequestEncodeSearchParameters, postRequestEncodeBody } from '../../lib/grafaid/http/http.js'
@@ -96,7 +96,7 @@ export type HookDefUnpack<$Config extends Config> = {
9696
& TransportInput<
9797
$Config,
9898
{ response: Response },
99-
{ result: ExecutionResult }
99+
{ result: FormattedExecutionResult }
100100
>
101101
}
102102

@@ -108,7 +108,7 @@ export type HookDefDecode<$Config extends Config> = {
108108
$Config,
109109
{ response: Response }
110110
>
111-
& { result: ExecutionResult }
111+
& { result: FormattedExecutionResult }
112112
}
113113

114114
export type HookMap<$Config extends Config = Config> = {

src/layers/6_client/client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CustomScalars } from '../../extensions/CustomScalars/CustomScalars.js'
1+
import { CustomScalars } from '../../extensions/CustomScalars/CustomScalars.js' // todo
22
import type { ConfigManager } from '../../lib/config-manager/__.js'
33
import type { Fluent } from '../../lib/fluent/__.js'
44
import { proxyGet } from '../../lib/prelude.js'
@@ -11,7 +11,7 @@ import type { FnInternal } from './properties/internal.js'
1111
import { type FnRetry, retryProperties } from './properties/retry.js'
1212
import { type ScalarFn, scalarProperties } from './properties/scalar.js'
1313
import { type FnWith, withProperties } from './properties/with.js'
14-
import { type FnRequestMethods, requestMethodsProperties } from './requestMethods/requestMethods.js'
14+
import { type FnRequestMethods, requestMethodsProperties } from './requestMethods/requestMethods.js' // todo
1515
import { type InputStatic } from './Settings/Input.js'
1616
import { type NormalizeInput } from './Settings/InputToConfig.js'
1717

0 commit comments

Comments
 (0)