graphql-codegen-plugin-typescript-swr 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,27 +0,0 @@
1
- import { RawClientSideBasePluginConfig } from '@graphql-codegen/visitor-plugin-common';
2
- /**
3
- * @description This plugin generates [`graphql-request`](https://www.npmjs.com/package/graphql-request) ready-to-use SDK, which is fully-typed.
4
- */
5
- export interface RawSWRPluginConfig extends RawClientSideBasePluginConfig {
6
- /**
7
- * @description By default the `request` method return the `data` or `errors` key from the response. If you need to access the `extensions` key you can use the `rawRequest` method.
8
- * @default false
9
- *
10
- * @exampleMarkdown
11
- * ```yml
12
- * generates:
13
- * path/to/file.ts:
14
- * plugins:
15
- * - typescript
16
- * - typescript-operations
17
- * - typescript-graphql-request
18
- * - graphql-codegen-plugin-typescript-swr
19
- * config:
20
- * rawRequest: true
21
- * ```
22
- */
23
- rawRequest?: boolean;
24
- excludeQueries?: string | string[];
25
- useSWRInfinite?: string | string[];
26
- autogenSWRKey?: boolean;
27
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,6 +0,0 @@
1
- import { PluginValidateFn, PluginFunction } from '@graphql-codegen/plugin-helpers';
2
- import { RawSWRPluginConfig } from './config';
3
- import { SWRVisitor } from './visitor';
4
- export declare const plugin: PluginFunction<RawSWRPluginConfig>;
5
- export declare const validate: PluginValidateFn<any>;
6
- export { SWRVisitor };
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SWRVisitor = exports.validate = exports.plugin = void 0;
4
- const path_1 = require("path");
5
- const plugin_helpers_1 = require("@graphql-codegen/plugin-helpers");
6
- const graphql_1 = require("graphql");
7
- const visitor_1 = require("./visitor");
8
- Object.defineProperty(exports, "SWRVisitor", { enumerable: true, get: function () { return visitor_1.SWRVisitor; } });
9
- const plugin = (schema, documents, config) => {
10
- const allAst = (0, graphql_1.concatAST)(documents.map((v) => v.document));
11
- const allFragments = [
12
- // prettier-ignore
13
- ...allAst.definitions.filter((d) => d.kind === graphql_1.Kind.FRAGMENT_DEFINITION).map((fragmentDef) => ({
14
- node: fragmentDef,
15
- name: fragmentDef.name.value,
16
- onType: fragmentDef.typeCondition.name.value,
17
- isExternal: false,
18
- })),
19
- ...(config.externalFragments || []),
20
- ];
21
- const visitor = new visitor_1.SWRVisitor(schema, allFragments, config);
22
- (0, plugin_helpers_1.oldVisit)(allAst, { leave: visitor });
23
- return {
24
- prepend: visitor.getImports(),
25
- content: visitor.sdkContent,
26
- };
27
- };
28
- exports.plugin = plugin;
29
- const validate = async (_schema, _documents, _config, outputFile) => {
30
- if ((0, path_1.extname)(outputFile) !== '.ts') {
31
- throw new Error(`Plugin "typescript-swr" requires extension to be ".ts"!`);
32
- }
33
- };
34
- exports.validate = validate;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQThCO0FBRTlCLG9FQUt3QztBQUV4QyxxQ0FBZ0Y7QUFHaEYsdUNBQXNDO0FBeUM3QiwyRkF6Q0Esb0JBQVUsT0F5Q0E7QUF2Q1osTUFBTSxNQUFNLEdBQXVDLENBQ3hELE1BQXFCLEVBQ3JCLFNBQStCLEVBQy9CLE1BQTBCLEVBQzFCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFTLEVBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFFMUQsTUFBTSxZQUFZLEdBQXFCO1FBQ3JDLGtCQUFrQjtRQUNsQixHQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsbUJBQW1CLENBQ2QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkQsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUM1QixNQUFNLEVBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUM1QyxVQUFVLEVBQUUsS0FBSztTQUNsQixDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztLQUNwQyxDQUFBO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxvQkFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUQsSUFBQSx5QkFBUSxFQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRTtRQUM3QixPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVU7S0FDNUIsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQTFCWSxRQUFBLE1BQU0sVUEwQmxCO0FBRU0sTUFBTSxRQUFRLEdBQTBCLEtBQUssRUFDbEQsT0FBc0IsRUFDdEIsVUFBZ0MsRUFDaEMsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsRUFBRTtJQUNGLElBQUksSUFBQSxjQUFPLEVBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQTtLQUMzRTtBQUNILENBQUMsQ0FBQTtBQVRZLFFBQUEsUUFBUSxZQVNwQiJ9
@@ -1,30 +0,0 @@
1
- import { ClientSideBasePluginConfig, ClientSideBaseVisitor, LoadedFragment, ParsedConfig } from '@graphql-codegen/visitor-plugin-common';
2
- import { GraphQLSchema, OperationDefinitionNode } from 'graphql';
3
- import { RawSWRPluginConfig } from './config';
4
- export interface SWRPluginConfig extends ClientSideBasePluginConfig {
5
- rawRequest: boolean;
6
- excludeQueries: string | string[];
7
- useSWRInfinite: string | string[];
8
- autogenSWRKey: boolean;
9
- }
10
- export interface Operation {
11
- node: OperationDefinitionNode;
12
- documentVariableName: string;
13
- operationType: string;
14
- operationResultType: string;
15
- operationVariablesTypes: string;
16
- }
17
- export interface ComposeQueryHandlerConfig {
18
- autogenKey: SWRPluginConfig['autogenSWRKey'];
19
- infinite: boolean;
20
- rawRequest: SWRPluginConfig['rawRequest'];
21
- typesPrefix: ParsedConfig['typesPrefix'];
22
- typesSuffix: ParsedConfig['typesSuffix'];
23
- }
24
- export declare class SWRVisitor extends ClientSideBaseVisitor<RawSWRPluginConfig, SWRPluginConfig> {
25
- private _operationsToInclude;
26
- private _enabledInfinite;
27
- constructor(schema: GraphQLSchema, fragments: LoadedFragment[], rawConfig: RawSWRPluginConfig);
28
- protected buildOperation(node: OperationDefinitionNode, documentVariableName: string, operationType: string, operationResultType: string, operationVariablesTypes: string): string;
29
- get sdkContent(): string;
30
- }
@@ -1,160 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SWRVisitor = void 0;
7
- const visitor_plugin_common_1 = require("@graphql-codegen/visitor-plugin-common");
8
- const graphql_1 = require("graphql");
9
- const micromatch_1 = __importDefault(require("micromatch"));
10
- const pascal_case_1 = require("pascal-case");
11
- const composeQueryHandler = (operation, config) => {
12
- const codes = [];
13
- const { node } = operation;
14
- const optionalVariables = !node.variableDefinitions ||
15
- node.variableDefinitions.length === 0 ||
16
- node.variableDefinitions.every((v) => v.type.kind !== graphql_1.Kind.NON_NULL_TYPE || v.defaultValue)
17
- ? '?'
18
- : '';
19
- const name = node.name.value;
20
- const pascalName = (0, pascal_case_1.pascalCase)(node.name.value);
21
- const responseType = config.rawRequest
22
- ? `SWRRawResponse<${operation.operationResultType}>`
23
- : operation.operationResultType;
24
- const variablesType = operation.operationVariablesTypes;
25
- codes.push(`use${pascalName}(${config.autogenKey ? '' : 'key: SWRKeyInterface, '}variables${optionalVariables}: ${variablesType}, config?: SWRConfigInterface<${responseType}, ClientError>) {
26
- return useSWR<${responseType}, ClientError>(${config.autogenKey
27
- ? `genKey<${variablesType}>('${pascalName}', variables)`
28
- : 'key'}, () => sdk.${name}(variables), config);
29
- }`);
30
- if (config.infinite) {
31
- codes.push(`use${pascalName}Infinite(${config.autogenKey ? '' : 'id: string, '}getKey: ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<${responseType}, ${variablesType}>, variables${optionalVariables}: ${variablesType}, config?: SWRInfiniteConfiguration<${responseType}, ClientError>) {
32
- return useSWRInfinite<${responseType}, ClientError>(
33
- utilsForInfinite.generateGetKey<${responseType}, ${variablesType}>(${config.autogenKey
34
- ? `genKey<${variablesType}>('${pascalName}', variables)`
35
- : 'id'}, getKey),
36
- utilsForInfinite.generateFetcher<${responseType}, ${variablesType}>(sdk.${name}, variables),
37
- config);
38
- }`);
39
- }
40
- return codes;
41
- };
42
- class SWRVisitor extends visitor_plugin_common_1.ClientSideBaseVisitor {
43
- constructor(schema, fragments, rawConfig) {
44
- super(schema, fragments, rawConfig, {
45
- excludeQueries: rawConfig.excludeQueries || null,
46
- useSWRInfinite: rawConfig.useSWRInfinite || null,
47
- autogenSWRKey: rawConfig.autogenSWRKey || false,
48
- });
49
- this._operationsToInclude = [];
50
- this._enabledInfinite = false;
51
- this._enabledInfinite =
52
- (this.config.useSWRInfinite &&
53
- typeof this.config.useSWRInfinite === 'string') ||
54
- (Array.isArray(this.config.useSWRInfinite) &&
55
- this.config.useSWRInfinite.length > 0);
56
- const typeImport = this.config.useTypeImports ? 'import type' : 'import';
57
- this._additionalImports.push(`${typeImport} { ClientError } from 'graphql-request/dist/types';`);
58
- if (this.config.useTypeImports) {
59
- if (this._enabledInfinite) {
60
- this._additionalImports.push(`import type { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
61
- this._additionalImports.push(`import type { SWRInfiniteConfiguration } from 'swr/infinite';`);
62
- this._additionalImports.push(`import useSWR from 'swr';`);
63
- this._additionalImports.push(`import useSWRInfinite from 'swr/infinite';`);
64
- }
65
- else {
66
- this._additionalImports.push(`import type { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
67
- this._additionalImports.push(`import useSWR from 'swr';`);
68
- }
69
- }
70
- else if (this._enabledInfinite) {
71
- this._additionalImports.push(`import useSWR, { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
72
- this._additionalImports.push(`import useSWRInfinite, { SWRInfiniteConfiguration } from 'swr/infinite';`);
73
- }
74
- else {
75
- this._additionalImports.push(`import useSWR, { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
76
- }
77
- }
78
- buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {
79
- this._operationsToInclude.push({
80
- node,
81
- documentVariableName,
82
- operationType,
83
- operationResultType,
84
- operationVariablesTypes,
85
- });
86
- return null;
87
- }
88
- get sdkContent() {
89
- const codes = [];
90
- const { config } = this;
91
- const disabledexcludeQueries = !config.excludeQueries ||
92
- (Array.isArray(config.excludeQueries) && !config.excludeQueries.length);
93
- const allPossibleActions = this._operationsToInclude
94
- .filter((o) => {
95
- if (o.operationType !== 'Query') {
96
- return false;
97
- }
98
- if (disabledexcludeQueries) {
99
- return true;
100
- }
101
- return !micromatch_1.default.isMatch(o.node.name.value, config.excludeQueries);
102
- })
103
- .map((o) => composeQueryHandler(o, {
104
- autogenKey: config.autogenSWRKey,
105
- infinite: this._enabledInfinite &&
106
- micromatch_1.default.isMatch(o.node.name.value, config.useSWRInfinite),
107
- rawRequest: config.rawRequest,
108
- typesPrefix: config.typesPrefix,
109
- typesSuffix: config.typesSuffix,
110
- }))
111
- .reduce((p, c) => p.concat(c), [])
112
- .map((s) => (0, visitor_plugin_common_1.indentMultiline)(s, 2));
113
- // Add type of SWRRawResponse
114
- if (config.rawRequest) {
115
- codes.push(`type SWRRawResponse<Data = any> = { data?: Data | undefined; extensions?: any; headers: Headers; status: number; errors?: GraphQLError[] | undefined; };`);
116
- }
117
- // Add type of SWRInfiniteKeyLoader
118
- if (this._enabledInfinite) {
119
- codes.push(`export type ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<Data = unknown, Variables = unknown> = (
120
- index: number,
121
- previousPageData: Data | null
122
- ) => [keyof Variables, Variables[keyof Variables] | null] | null;`);
123
- }
124
- // Add getSdkWithHooks function
125
- codes.push(`export function getSdkWithHooks(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {
126
- const sdk = getSdk(client, withWrapper);`);
127
- // Add the utility for useSWRInfinite
128
- if (this._enabledInfinite) {
129
- codes.push(` const utilsForInfinite = {
130
- generateGetKey: <Data = unknown, Variables = unknown>(
131
- id: string,
132
- getKey: ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<Data, Variables>
133
- ) => (pageIndex: number, previousData: Data | null) => {
134
- const key = getKey(pageIndex, previousData)
135
- return key ? [id, ...key] : null
136
- },
137
- generateFetcher: <Query = unknown, Variables = unknown>(query: (variables: Variables) => Promise<Query>, variables?: Variables) => (
138
- id: string,
139
- fieldName: keyof Variables,
140
- fieldValue: Variables[typeof fieldName]
141
- ) => query({ ...variables, [fieldName]: fieldValue } as Variables)
142
- }`);
143
- }
144
- // Add the function for auto-generation key for SWR
145
- if (config.autogenSWRKey) {
146
- codes.push(` const genKey = <V extends Record<string, unknown> = Record<string, unknown>>(name: string, object: V = {} as V): SWRKeyInterface => [name, ...Object.keys(object).sort().map(key => object[key])];`);
147
- }
148
- // Add return statement for getSdkWithHooks function and close the function
149
- codes.push(` return {
150
- ...sdk,
151
- ${allPossibleActions.join(',\n')}
152
- };
153
- }`);
154
- // Add type of Sdk
155
- codes.push(`export type ${config.typesPrefix}SdkWithHooks${config.typesSuffix} = ReturnType<typeof getSdkWithHooks>;`);
156
- return codes.join('\n');
157
- }
158
- }
159
- exports.SWRVisitor = SWRVisitor;
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtGQU0rQztBQUMvQyxxQ0FBc0U7QUFDdEUsNERBQTZCO0FBQzdCLDZDQUF3QztBQTJCeEMsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixTQUFvQixFQUNwQixNQUFpQyxFQUN2QixFQUFFO0lBQ1osTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFBO0lBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUE7SUFDMUIsTUFBTSxpQkFBaUIsR0FDckIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUM1RDtRQUNDLENBQUMsQ0FBQyxHQUFHO1FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQzVCLE1BQU0sVUFBVSxHQUFHLElBQUEsd0JBQVUsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVO1FBQ3BDLENBQUMsQ0FBQyxrQkFBa0IsU0FBUyxDQUFDLG1CQUFtQixHQUFHO1FBQ3BELENBQUMsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUE7SUFDakMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLHVCQUF1QixDQUFBO0lBRXZELEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxVQUFVLElBQ3pCLE1BQU0sQ0FBQyxV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
@@ -1,27 +0,0 @@
1
- import { RawClientSideBasePluginConfig } from '@graphql-codegen/visitor-plugin-common';
2
- /**
3
- * @description This plugin generates [`graphql-request`](https://www.npmjs.com/package/graphql-request) ready-to-use SDK, which is fully-typed.
4
- */
5
- export interface RawSWRPluginConfig extends RawClientSideBasePluginConfig {
6
- /**
7
- * @description By default the `request` method return the `data` or `errors` key from the response. If you need to access the `extensions` key you can use the `rawRequest` method.
8
- * @default false
9
- *
10
- * @exampleMarkdown
11
- * ```yml
12
- * generates:
13
- * path/to/file.ts:
14
- * plugins:
15
- * - typescript
16
- * - typescript-operations
17
- * - typescript-graphql-request
18
- * - graphql-codegen-plugin-typescript-swr
19
- * config:
20
- * rawRequest: true
21
- * ```
22
- */
23
- rawRequest?: boolean;
24
- excludeQueries?: string | string[];
25
- useSWRInfinite?: string | string[];
26
- autogenSWRKey?: boolean;
27
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,6 +0,0 @@
1
- import { PluginValidateFn, PluginFunction } from '@graphql-codegen/plugin-helpers';
2
- import { RawSWRPluginConfig } from './config';
3
- import { SWRVisitor } from './visitor';
4
- export declare const plugin: PluginFunction<RawSWRPluginConfig>;
5
- export declare const validate: PluginValidateFn<any>;
6
- export { SWRVisitor };
@@ -1,30 +0,0 @@
1
- import { extname } from 'path';
2
- import { oldVisit, } from '@graphql-codegen/plugin-helpers';
3
- import { concatAST, Kind } from 'graphql';
4
- import { SWRVisitor } from './visitor';
5
- export const plugin = (schema, documents, config) => {
6
- const allAst = concatAST(documents.map((v) => v.document));
7
- const allFragments = [
8
- // prettier-ignore
9
- ...allAst.definitions.filter((d) => d.kind === Kind.FRAGMENT_DEFINITION).map((fragmentDef) => ({
10
- node: fragmentDef,
11
- name: fragmentDef.name.value,
12
- onType: fragmentDef.typeCondition.name.value,
13
- isExternal: false,
14
- })),
15
- ...(config.externalFragments || []),
16
- ];
17
- const visitor = new SWRVisitor(schema, allFragments, config);
18
- oldVisit(allAst, { leave: visitor });
19
- return {
20
- prepend: visitor.getImports(),
21
- content: visitor.sdkContent,
22
- };
23
- };
24
- export const validate = async (_schema, _documents, _config, outputFile) => {
25
- if (extname(outputFile) !== '.ts') {
26
- throw new Error(`Plugin "typescript-swr" requires extension to be ".ts"!`);
27
- }
28
- };
29
- export { SWRVisitor };
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUU5QixPQUFPLEVBSUwsUUFBUSxHQUNULE1BQU0saUNBQWlDLENBQUE7QUFFeEMsT0FBTyxFQUFpQixTQUFTLEVBQUUsSUFBSSxFQUEwQixNQUFNLFNBQVMsQ0FBQTtBQUdoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBdUMsQ0FDeEQsTUFBcUIsRUFDckIsU0FBK0IsRUFDL0IsTUFBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUUxRCxNQUFNLFlBQVksR0FBcUI7UUFDckMsa0JBQWtCO1FBQ2xCLEdBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQzNCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxtQkFBbUIsQ0FDZCxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxJQUFJLEVBQUUsV0FBVztZQUNqQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQzVCLE1BQU0sRUFBRSxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQzVDLFVBQVUsRUFBRSxLQUFLO1NBQ2xCLENBQUMsQ0FBQztRQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO0tBQ3BDLENBQUE7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzVELFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNwQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVO0tBQzVCLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQTBCLEtBQUssRUFDbEQsT0FBc0IsRUFDdEIsVUFBZ0MsRUFDaEMsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsRUFBRTtJQUNGLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUE7S0FDM0U7QUFDSCxDQUFDLENBQUE7QUFFRCxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUEifQ==
@@ -1,30 +0,0 @@
1
- import { ClientSideBasePluginConfig, ClientSideBaseVisitor, LoadedFragment, ParsedConfig } from '@graphql-codegen/visitor-plugin-common';
2
- import { GraphQLSchema, OperationDefinitionNode } from 'graphql';
3
- import { RawSWRPluginConfig } from './config';
4
- export interface SWRPluginConfig extends ClientSideBasePluginConfig {
5
- rawRequest: boolean;
6
- excludeQueries: string | string[];
7
- useSWRInfinite: string | string[];
8
- autogenSWRKey: boolean;
9
- }
10
- export interface Operation {
11
- node: OperationDefinitionNode;
12
- documentVariableName: string;
13
- operationType: string;
14
- operationResultType: string;
15
- operationVariablesTypes: string;
16
- }
17
- export interface ComposeQueryHandlerConfig {
18
- autogenKey: SWRPluginConfig['autogenSWRKey'];
19
- infinite: boolean;
20
- rawRequest: SWRPluginConfig['rawRequest'];
21
- typesPrefix: ParsedConfig['typesPrefix'];
22
- typesSuffix: ParsedConfig['typesSuffix'];
23
- }
24
- export declare class SWRVisitor extends ClientSideBaseVisitor<RawSWRPluginConfig, SWRPluginConfig> {
25
- private _operationsToInclude;
26
- private _enabledInfinite;
27
- constructor(schema: GraphQLSchema, fragments: LoadedFragment[], rawConfig: RawSWRPluginConfig);
28
- protected buildOperation(node: OperationDefinitionNode, documentVariableName: string, operationType: string, operationResultType: string, operationVariablesTypes: string): string;
29
- get sdkContent(): string;
30
- }
@@ -1,153 +0,0 @@
1
- import { ClientSideBaseVisitor, indentMultiline, } from '@graphql-codegen/visitor-plugin-common';
2
- import { Kind } from 'graphql';
3
- import glob from 'micromatch';
4
- import { pascalCase } from 'pascal-case';
5
- const composeQueryHandler = (operation, config) => {
6
- const codes = [];
7
- const { node } = operation;
8
- const optionalVariables = !node.variableDefinitions ||
9
- node.variableDefinitions.length === 0 ||
10
- node.variableDefinitions.every((v) => v.type.kind !== Kind.NON_NULL_TYPE || v.defaultValue)
11
- ? '?'
12
- : '';
13
- const name = node.name.value;
14
- const pascalName = pascalCase(node.name.value);
15
- const responseType = config.rawRequest
16
- ? `SWRRawResponse<${operation.operationResultType}>`
17
- : operation.operationResultType;
18
- const variablesType = operation.operationVariablesTypes;
19
- codes.push(`use${pascalName}(${config.autogenKey ? '' : 'key: SWRKeyInterface, '}variables${optionalVariables}: ${variablesType}, config?: SWRConfigInterface<${responseType}, ClientError>) {
20
- return useSWR<${responseType}, ClientError>(${config.autogenKey
21
- ? `genKey<${variablesType}>('${pascalName}', variables)`
22
- : 'key'}, () => sdk.${name}(variables), config);
23
- }`);
24
- if (config.infinite) {
25
- codes.push(`use${pascalName}Infinite(${config.autogenKey ? '' : 'id: string, '}getKey: ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<${responseType}, ${variablesType}>, variables${optionalVariables}: ${variablesType}, config?: SWRInfiniteConfiguration<${responseType}, ClientError>) {
26
- return useSWRInfinite<${responseType}, ClientError>(
27
- utilsForInfinite.generateGetKey<${responseType}, ${variablesType}>(${config.autogenKey
28
- ? `genKey<${variablesType}>('${pascalName}', variables)`
29
- : 'id'}, getKey),
30
- utilsForInfinite.generateFetcher<${responseType}, ${variablesType}>(sdk.${name}, variables),
31
- config);
32
- }`);
33
- }
34
- return codes;
35
- };
36
- export class SWRVisitor extends ClientSideBaseVisitor {
37
- _operationsToInclude = [];
38
- _enabledInfinite = false;
39
- constructor(schema, fragments, rawConfig) {
40
- super(schema, fragments, rawConfig, {
41
- excludeQueries: rawConfig.excludeQueries || null,
42
- useSWRInfinite: rawConfig.useSWRInfinite || null,
43
- autogenSWRKey: rawConfig.autogenSWRKey || false,
44
- });
45
- this._enabledInfinite =
46
- (this.config.useSWRInfinite &&
47
- typeof this.config.useSWRInfinite === 'string') ||
48
- (Array.isArray(this.config.useSWRInfinite) &&
49
- this.config.useSWRInfinite.length > 0);
50
- const typeImport = this.config.useTypeImports ? 'import type' : 'import';
51
- this._additionalImports.push(`${typeImport} { ClientError } from 'graphql-request/dist/types';`);
52
- if (this.config.useTypeImports) {
53
- if (this._enabledInfinite) {
54
- this._additionalImports.push(`import type { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
55
- this._additionalImports.push(`import type { SWRInfiniteConfiguration } from 'swr/infinite';`);
56
- this._additionalImports.push(`import useSWR from 'swr';`);
57
- this._additionalImports.push(`import useSWRInfinite from 'swr/infinite';`);
58
- }
59
- else {
60
- this._additionalImports.push(`import type { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
61
- this._additionalImports.push(`import useSWR from 'swr';`);
62
- }
63
- }
64
- else if (this._enabledInfinite) {
65
- this._additionalImports.push(`import useSWR, { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
66
- this._additionalImports.push(`import useSWRInfinite, { SWRInfiniteConfiguration } from 'swr/infinite';`);
67
- }
68
- else {
69
- this._additionalImports.push(`import useSWR, { SWRConfiguration as SWRConfigInterface, Key as SWRKeyInterface } from 'swr';`);
70
- }
71
- }
72
- buildOperation(node, documentVariableName, operationType, operationResultType, operationVariablesTypes) {
73
- this._operationsToInclude.push({
74
- node,
75
- documentVariableName,
76
- operationType,
77
- operationResultType,
78
- operationVariablesTypes,
79
- });
80
- return null;
81
- }
82
- get sdkContent() {
83
- const codes = [];
84
- const { config } = this;
85
- const disabledexcludeQueries = !config.excludeQueries ||
86
- (Array.isArray(config.excludeQueries) && !config.excludeQueries.length);
87
- const allPossibleActions = this._operationsToInclude
88
- .filter((o) => {
89
- if (o.operationType !== 'Query') {
90
- return false;
91
- }
92
- if (disabledexcludeQueries) {
93
- return true;
94
- }
95
- return !glob.isMatch(o.node.name.value, config.excludeQueries);
96
- })
97
- .map((o) => composeQueryHandler(o, {
98
- autogenKey: config.autogenSWRKey,
99
- infinite: this._enabledInfinite &&
100
- glob.isMatch(o.node.name.value, config.useSWRInfinite),
101
- rawRequest: config.rawRequest,
102
- typesPrefix: config.typesPrefix,
103
- typesSuffix: config.typesSuffix,
104
- }))
105
- .reduce((p, c) => p.concat(c), [])
106
- .map((s) => indentMultiline(s, 2));
107
- // Add type of SWRRawResponse
108
- if (config.rawRequest) {
109
- codes.push(`type SWRRawResponse<Data = any> = { data?: Data | undefined; extensions?: any; headers: Headers; status: number; errors?: GraphQLError[] | undefined; };`);
110
- }
111
- // Add type of SWRInfiniteKeyLoader
112
- if (this._enabledInfinite) {
113
- codes.push(`export type ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<Data = unknown, Variables = unknown> = (
114
- index: number,
115
- previousPageData: Data | null
116
- ) => [keyof Variables, Variables[keyof Variables] | null] | null;`);
117
- }
118
- // Add getSdkWithHooks function
119
- codes.push(`export function getSdkWithHooks(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {
120
- const sdk = getSdk(client, withWrapper);`);
121
- // Add the utility for useSWRInfinite
122
- if (this._enabledInfinite) {
123
- codes.push(` const utilsForInfinite = {
124
- generateGetKey: <Data = unknown, Variables = unknown>(
125
- id: string,
126
- getKey: ${config.typesPrefix}SWRInfiniteKeyLoader${config.typesSuffix}<Data, Variables>
127
- ) => (pageIndex: number, previousData: Data | null) => {
128
- const key = getKey(pageIndex, previousData)
129
- return key ? [id, ...key] : null
130
- },
131
- generateFetcher: <Query = unknown, Variables = unknown>(query: (variables: Variables) => Promise<Query>, variables?: Variables) => (
132
- id: string,
133
- fieldName: keyof Variables,
134
- fieldValue: Variables[typeof fieldName]
135
- ) => query({ ...variables, [fieldName]: fieldValue } as Variables)
136
- }`);
137
- }
138
- // Add the function for auto-generation key for SWR
139
- if (config.autogenSWRKey) {
140
- codes.push(` const genKey = <V extends Record<string, unknown> = Record<string, unknown>>(name: string, object: V = {} as V): SWRKeyInterface => [name, ...Object.keys(object).sort().map(key => object[key])];`);
141
- }
142
- // Add return statement for getSdkWithHooks function and close the function
143
- codes.push(` return {
144
- ...sdk,
145
- ${allPossibleActions.join(',\n')}
146
- };
147
- }`);
148
- // Add type of Sdk
149
- codes.push(`export type ${config.typesPrefix}SdkWithHooks${config.typesSuffix} = ReturnType<typeof getSdkWithHooks>;`);
150
- return codes.join('\n');
151
- }
152
- }
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92aXNpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsZUFBZSxHQUdoQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBaUIsSUFBSSxFQUEyQixNQUFNLFNBQVMsQ0FBQTtBQUN0RSxPQUFPLElBQUksTUFBTSxZQUFZLENBQUE7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQTJCeEMsTUFBTSxtQkFBbUIsR0FBRyxDQUMxQixTQUFvQixFQUNwQixNQUFpQyxFQUN2QixFQUFFO0lBQ1osTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFBO0lBQzFCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxTQUFTLENBQUE7SUFDMUIsTUFBTSxpQkFBaUIsR0FDckIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUM1RDtRQUNDLENBQUMsQ0FBQyxHQUFHO1FBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBQzVCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVO1FBQ3BDLENBQUMsQ0FBQyxrQkFBa0IsU0FBUyxDQUFDLG1CQUFtQixHQUFHO1FBQ3BELENBQUMsQ0FBQyxTQUFTLENBQUMs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