gatsby-source-prismic
Version:
Gatsby source plugin for building websites using Prismic as a data source
61 lines (60 loc) • 1.99 kB
JavaScript
import { isFilled } from "@prismicio/client";
import { buildURL } from "imgix-url-builder";
import { DEFAULT_IMGIX_PARAMS } from "../constants.js";
import { buildGatsbyImageDataFieldConfig } from "./buildGatsbyImageDataFieldConfig.js";
import { pascalCase } from "./pascalCase.js";
const buildImageObjectType = (config) => {
return config.schema.buildObjectType({
name: pascalCase("Prismic", config.pluginOptions.typePrefix, "ImageField"),
description: "An Image field.",
fields: {
alt: {
type: "String",
description: "An alternative text for the image."
},
copyright: {
type: "String",
description: "Copyright information for the image."
},
dimensions: {
type: "PrismicImageFieldDimensions",
description: "The image's width and height."
},
url: {
type: "String",
description: "The image's URL.",
args: {
imgixParams: {
type: "PrismicImgixURLParams",
description: "Parameters to modify the image output using Imgix's URL API. To learn more, see: https://docs.imgix.com/apis/rendering"
}
},
resolve: (source, args) => {
if (isFilled.imageThumbnail(source)) {
return buildURL(source.url, {
...DEFAULT_IMGIX_PARAMS,
...config.pluginOptions.imageImgixParams,
...args.imgixParams
});
} else {
return null;
}
}
},
gatsbyImageData: buildGatsbyImageDataFieldConfig({
cache: config.cache,
pluginOptions: config.pluginOptions
}),
localFile: {
type: "File",
description: "The locally download image file if the field is configured to download locally.",
extensions: { link: {} }
}
},
interfaces: ["PrismicImageFieldBase"]
});
};
export {
buildImageObjectType
};
//# sourceMappingURL=buildImageObjectType.js.map