gatsby-source-prismic
Version:
Gatsby source plugin for building websites using Prismic as a data source
42 lines (41 loc) • 1.96 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const camelCase = require("camel-case");
const parameters_json = require("imgix-url-params/dist/parameters.json");
const buildImgixURLParamsInputObjectType = (config) => {
const fields = {};
for (const paramKey in parameters_json.parameters) {
const paramSpec = parameters_json.parameters[paramKey];
const normalizedName = camelCase.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.camelCase(alias)] = {
...fieldDefinition,
description: `Alias for \`${normalizedName}\`.`
};
}
}
}
return config.schema.buildInputObjectType({
name: "PrismicImgixURLParams",
fields
});
};
exports.buildImgixURLParamsInputObjectType = buildImgixURLParamsInputObjectType;
//# sourceMappingURL=buildImgixURLParamsInputObjectType.cjs.map
;