@netlify/content-engine
Version:
60 lines • 2.04 kB
TypeScript
import type { Node, GatsbyNode, NodeInput } from "../../types";
interface IRemoteFileNodeFields {
url: string;
mimeType: string;
filename: string;
filesize?: number;
}
export interface IRemoteFileNode extends IRemoteFileNodeFields, Node {
}
export interface IRemoteFileNodeInput extends IRemoteFileNodeFields, NodeInput {
}
interface IRemoteImageNodeFields {
width: number;
height: number;
placeholderUrl?: string;
}
export interface IRemoteImageNode extends IRemoteImageNodeFields, IRemoteFileNode {
}
export interface IRemoteImageNodeInput extends IRemoteImageNodeFields, IRemoteFileNodeInput {
}
type GraphqlType<T> = T extends number ? "Int" | "Float" : T extends boolean ? "Boolean" : string;
export interface IGraphQLFieldConfigDefinition<TSource, R, TArgs = Record<string, unknown>> {
type: string;
description?: string;
args?: {
[Property in keyof TArgs]: GraphqlType<TArgs[Property]> | {
type: GraphqlType<TArgs[Property]>;
description?: string;
defaultValue?: TArgs[Property];
};
};
resolve(source: TSource, args: TArgs): R;
}
export type SchemaBuilder = Parameters<NonNullable<GatsbyNode["createSchemaCustomization"]>>[0]["schema"];
export type ImageFit = any;
export type ImageFormat = "jpg" | "png" | "webp" | "avif" | "auto";
export type ImageLayout = "fixed" | "constrained" | "fullWidth";
export type ImageCropFocus = "center" | "top" | "right" | "bottom" | "left" | "entropy" | "edges" | "faces";
export type WidthOrHeight = {
width: number;
height: number;
} | {
width: number;
height?: never;
} | {
width?: never;
height: number;
};
export type CalculateImageSizesArgs = {
fit: ImageFit;
layout: ImageLayout;
outputPixelDensities: Array<number>;
breakpoints?: Array<number>;
aspectRatio?: number;
} & WidthOrHeight;
export declare function isImage(node: {
mimeType: IRemoteFileNode["mimeType"];
}): node is IRemoteImageNode;
export {};
//# sourceMappingURL=types.d.ts.map