UNPKG

gatsby-source-prismic

Version:

Gatsby source plugin for building websites using Prismic as a data source

42 lines (41 loc) 1.78 kB
import { camelCase } from "camel-case"; import { parameters } from "imgix-url-params/dist/parameters.json"; const buildImgixURLParamsInputObjectType = (config) => { const fields = {}; for (const paramKey in parameters) { const paramSpec = parameters[paramKey]; const normalizedName = camelCase(paramKey); const expects = paramSpec.expects; const expectsTypes = Array.from(new Set(expects.map((expect) => expect.type))); const type = expectsTypes.every((type2) => type2 === "integer" || type2 === "unit_scalar") ? "Int" : expectsTypes.every((type2) => type2 === "integer" || type2 === "unit_scalar" || type2 === "number") ? "Float" : expectsTypes.every((type2) => type2 === "boolean") ? "Boolean" : "String"; const description = "short_description" in paramSpec ? paramSpec.short_description + // Ensure the description ends with a period. (paramSpec.short_description.slice(-1) === "." ? "" : ".") : void 0; const fieldDefinition = { type, description }; if ("default" in paramSpec) { fieldDefinition.description = fieldDefinition.description + ` Default: \`${paramSpec.default}\`.`; } if ("url" in paramSpec) { fieldDefinition.description = fieldDefinition.description + ` [See docs](${paramSpec.url}).`; } fields[normalizedName] = fieldDefinition; if ("aliases" in paramSpec) { for (const alias of paramSpec.aliases) { fields[camelCase(alias)] = { ...fieldDefinition, description: `Alias for \`${normalizedName}\`.` }; } } } return config.schema.buildInputObjectType({ name: "PrismicImgixURLParams", fields }); }; export { buildImgixURLParamsInputObjectType }; //# sourceMappingURL=buildImgixURLParamsInputObjectType.js.map