UNPKG

@baseplate-dev/react-generators

Version:

React Generators for Baseplate

193 lines 10.1 kB
import type { TsCodeFragment, TsImportDeclaration } from '@baseplate-dev/core-generators'; /** * Argument for the createApolloClient function with various * hooks to get the appropriate values * * @example * ```ts * // In app/AppApolloProvider.tsx * function AppApolloProvider() { * REACT_RENDER_BODY; * * const client = useMemo( * () => createApolloClient({ NAME }), * [NAME], * ); * } * * // In services/apollo/index.ts * * function createApolloClient({ NAME }: { NAME: TYPE }) { * ... * } * ``` */ export interface ApolloCreateArgument { /** * Name of the argument */ name: string; /** * Type of the argument */ type: TsCodeFragment | string; /** * Fragment to add to the React render function for the Apollo Provider * * This should add the name of the argument to the scope to be used in the * createApolloClient function. */ reactRenderBody: TsCodeFragment; } declare const APOLLO_LINK_PRIORITY: { error: number; auth: number; network: number; }; type ApolloLinkPriority = keyof typeof APOLLO_LINK_PRIORITY; /** * Link for the ApolloClient */ export interface ApolloLink { /** * Name of the link */ name: string; /** * Import of the link if not declared in the bodyFragment */ nameImport?: TsImportDeclaration; /** * Priority of the link */ priority: ApolloLinkPriority; /** * Fragment to add the body of the createApolloClient function. * * This should add the name of the link to the function scope. */ bodyFragment?: TsCodeFragment; /** * The name of any links this link depends on. */ dependencies?: string[]; /** * Which network transport this link applies to. * * @default 'all' */ transport?: 'http' | 'ws' | 'all'; } declare const reactApolloConfigProvider: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ createApolloClientArguments: import("@baseplate-dev/utils").NamedArrayFieldContainer<ApolloCreateArgument>; apolloLinks: import("@baseplate-dev/utils").NamedArrayFieldContainer<ApolloLink>; websocketOptions: import("@baseplate-dev/utils").MapContainer<string, string | TsCodeFragment>; }>, "getValues">>; export { reactApolloConfigProvider }; export interface ReactApolloProvider { /** * Get the path to the generated graphql file * * @returns The path to the generated graphql file */ getGeneratedFilePath(): string; } export declare const reactApolloProvider: import("@baseplate-dev/sync").ProviderType<ReactApolloProvider>; export declare const reactApolloGenerator: import("@baseplate-dev/sync").GeneratorBundleCreator<{ devApiEndpoint: string; schemaLocation: string; enableSubscriptions?: boolean | undefined; }, { paths: import("@baseplate-dev/sync").GeneratorTask<{ apolloReactApolloPaths: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-paths.js").ApolloReactApolloPaths>; }, { packageInfo: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").PackageInfoProvider>; }, undefined>; imports: import("@baseplate-dev/sync").GeneratorTask<{ generatedGraphqlImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{ '*': {}; }>>; reactApolloImports: import("@baseplate-dev/sync").ProviderExport<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{ config: {}; createApolloCache: {}; createApolloClient: {}; }>>; }, { paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").ApolloReactApolloPaths>; }, undefined>; renderers: import("@baseplate-dev/sync").GeneratorTask<{ apolloReactApolloRenderers: import("@baseplate-dev/sync").ProviderExport<import("./generated/template-renderers.js").ApolloReactApolloRenderers>; }, { paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").ApolloReactApolloPaths>; typescriptFile: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").TypescriptFileProvider>; }, undefined>; setup: import("@baseplate-dev/sync").GeneratorTask<import("@baseplate-dev/sync").ProviderExportMap<Record<string, import("@baseplate-dev/sync").Provider>> | undefined, import("@baseplate-dev/sync").ProviderDependencyMap<Record<string, import("@baseplate-dev/sync").Provider>>, import("@baseplate-dev/sync").ProviderExportMap<Record<string, import("@baseplate-dev/sync").Provider>> | undefined>; nodePackages: import("@baseplate-dev/sync").AnyGeneratorTask; codegen: import("@baseplate-dev/sync").AnyGeneratorTask; reactTypescript: import("@baseplate-dev/sync").GeneratorTask<undefined, { provider: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ReactTypescriptProvider>; }, undefined>; websocketPackages: import("@baseplate-dev/sync").AnyGeneratorTask | undefined; eslintConfig: import("@baseplate-dev/sync").GeneratorTask<undefined, { provider: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ react: import("@baseplate-dev/utils").ScalarContainer<boolean | undefined>; eslintIgnore: import("@baseplate-dev/utils").ArrayContainer<string>; devDependencies: import("@baseplate-dev/utils").ArrayContainer<string>; disableVitest: import("@baseplate-dev/utils").ScalarContainer<boolean | undefined>; tsDefaultProjectFiles: import("@baseplate-dev/utils").ArrayContainer<string>; }>, "getValues">>; }, undefined>; prettier: import("@baseplate-dev/sync").GeneratorTask<undefined, { provider: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").PrettierProvider>; }, undefined>; reactProxy: import("@baseplate-dev/sync").GeneratorTask<undefined, { provider: import("@baseplate-dev/sync").ProviderType<import("#src/generators/core/index.js").ReactProxyProvider>; }, undefined>; reactConfig: import("@baseplate-dev/sync").GeneratorTask<undefined, { provider: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ configEntries: import("@baseplate-dev/utils").MapContainer<string, import("#src/generators/core/index.js").ReactConfigEntry>; additionalDevEnvVars: import("@baseplate-dev/utils").MapContainer<string, string>; }>, "getValues">>; }, undefined>; reactAppConfig: import("@baseplate-dev/sync").GeneratorTask<any, { paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").ApolloReactApolloPaths>; reactAppConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ errorBoundary: import("@baseplate-dev/utils").ScalarContainer<((contents: TsCodeFragment) => TsCodeFragment) | undefined>; renderWrappers: import("@baseplate-dev/utils").MapContainer<string, import("#src/generators/core/index.js").RenderWrapper>; renderSiblings: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; renderRoot: import("@baseplate-dev/utils").ScalarContainer<TsCodeFragment | undefined>; }>, "getValues">>; }, any>; routerContext: import("@baseplate-dev/sync").GeneratorTask<any, { reactRouterConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ routerSetupFragments: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; routerBodyFragments: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; rootLayoutComponent: import("@baseplate-dev/utils").ScalarContainer<TsCodeFragment | undefined>; rootContextFields: import("@baseplate-dev/utils").NamedArrayFieldContainer<import("#src/generators/core/index.js").RootRouteContextField>; errorComponentHeaderFragments: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; errorComponentBodyFragments: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; }>, "getValues">>; }, any>; main: import("@baseplate-dev/sync").GeneratorTask<{ reactApollo: import("@baseplate-dev/sync").ProviderExport<ReactApolloProvider>; }, { reactConfigImports: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/core-generators").InferTsImportMapFromSchema<{ config: {}; }>>; reactApolloConfigValues: import("@baseplate-dev/sync").ProviderType<import("@baseplate-dev/utils").FieldMapValues<{ createApolloClientArguments: import("@baseplate-dev/utils").NamedArrayFieldContainer<ApolloCreateArgument>; apolloLinks: import("@baseplate-dev/utils").NamedArrayFieldContainer<ApolloLink>; websocketOptions: import("@baseplate-dev/utils").MapContainer<string, string | TsCodeFragment>; }>>; paths: import("@baseplate-dev/sync").ProviderType<import("./generated/template-paths.js").ApolloReactApolloPaths>; renderers: import("@baseplate-dev/sync").ProviderType<import("./generated/template-renderers.js").ApolloReactApolloRenderers>; }, any>; graphqlErrorContext: import("@baseplate-dev/sync").GeneratorTask<any, { reactErrorConfig: import("@baseplate-dev/sync").ProviderType<Omit<import("@baseplate-dev/utils").FieldMap<{ contextActions: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; errorReporters: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; errorFormatters: import("@baseplate-dev/utils").MapContainer<string, TsCodeFragment>; }>, "getValues">>; }, any>; }>; //# sourceMappingURL=react-apollo.generator.d.ts.map