Odoo GraphQL Subscription using Node, Express JS for Sample
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

50 lines
2.3 KiB

import type { DocumentNode } from "graphql";
export type DocumentTransformCacheKey = ReadonlyArray<unknown>;
type TransformFn = (document: DocumentNode) => DocumentNode;
interface DocumentTransformOptions {
/**
* Determines whether to cache the transformed GraphQL document. Caching can speed up repeated calls to the document transform for the same input document. Set to `false` to completely disable caching for the document transform. When disabled, this option takes precedence over the [`getCacheKey`](#getcachekey) option.
*
* The default value is `true`.
*/
cache?: boolean;
/**
* Defines a custom cache key for a GraphQL document that will determine whether to re-run the document transform when given the same input GraphQL document. Returns an array that defines the cache key. Return `undefined` to disable caching for that GraphQL document.
*
* > **Note:** The items in the array may be any type, but also need to be referentially stable to guarantee a stable cache key.
*
* The default implementation of this function returns the `document` as the cache key.
*/
getCacheKey?: (document: DocumentNode) => DocumentTransformCacheKey | undefined;
}
export declare class DocumentTransform {
private readonly transform;
private cached;
private readonly resultCache;
private getCacheKey;
static identity(): DocumentTransform;
static split(predicate: (document: DocumentNode) => boolean, left: DocumentTransform, right?: DocumentTransform): DocumentTransform & {
left: DocumentTransform;
right: DocumentTransform;
};
constructor(transform: TransformFn, options?: DocumentTransformOptions);
/**
* Resets the internal cache of this transform, if it has one.
*/
resetCache(): void;
private performWork;
transformDocument(document: DocumentNode): DocumentNode;
concat(otherTransform: DocumentTransform): DocumentTransform;
/**
* @internal
* Used to iterate through all transforms that are concatenations or `split` links.
*/
readonly left?: DocumentTransform;
/**
* @internal
* Used to iterate through all transforms that are concatenations or `split` links.
*/
readonly right?: DocumentTransform;
}
export {};
//# sourceMappingURL=DocumentTransform.d.ts.map