gatsby-source-prismic
Version:
Gatsby source plugin for building websites using Prismic as a data source
61 lines (60 loc) • 2.17 kB
JavaScript
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const prismic = require("@prismicio/client");
const imgixUrlBuilder = require("imgix-url-builder");
const constants = require("../constants.cjs");
const buildGatsbyImageDataFieldConfig = require("./buildGatsbyImageDataFieldConfig.cjs");
const pascalCase = require("./pascalCase.cjs");
const buildImageObjectType = (config) => {
return config.schema.buildObjectType({
name: pascalCase.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 (prismic.isFilled.imageThumbnail(source)) {
return imgixUrlBuilder.buildURL(source.url, {
...constants.DEFAULT_IMGIX_PARAMS,
...config.pluginOptions.imageImgixParams,
...args.imgixParams
});
} else {
return null;
}
}
},
gatsbyImageData: buildGatsbyImageDataFieldConfig.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"]
});
};
exports.buildImageObjectType = buildImageObjectType;
//# sourceMappingURL=buildImageObjectType.cjs.map