@netlify/content-engine
Version:
99 lines • 4.91 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.publicUrlResolver = exports.resizeResolver = exports.gatsbyImageResolver = exports.getRemoteFileEnums = exports.addImageRoutes = exports.polyfillImageServiceDevRoutes = void 0;
exports.getRemoteFileFields = getRemoteFileFields;
exports.addRemoteFilePolyfillInterface = addRemoteFilePolyfillInterface;
exports.isImageCdnEnabled = isImageCdnEnabled;
const path_1 = __importDefault(require("path"));
const graphql_compose_1 = require("graphql-compose");
const get_remote_file_enums_1 = require("./graphql/get-remote-file-enums");
Object.defineProperty(exports, "getRemoteFileEnums", { enumerable: true, get: function () { return get_remote_file_enums_1.getRemoteFileEnums; } });
const get_gatsby_version_1 = require("./utils/get-gatsby-version");
const has_feature_1 = require("../has-feature");
const public_url_resolver_1 = require("./graphql/public-url-resolver");
Object.defineProperty(exports, "publicUrlResolver", { enumerable: true, get: function () { return public_url_resolver_1.publicUrlResolver; } });
const resize_resolver_1 = require("./graphql/resize-resolver");
Object.defineProperty(exports, "resizeResolver", { enumerable: true, get: function () { return resize_resolver_1.resizeResolver; } });
const gatsby_image_resolver_1 = require("./graphql/gatsby-image-resolver");
Object.defineProperty(exports, "gatsbyImageResolver", { enumerable: true, get: function () { return gatsby_image_resolver_1.gatsbyImageResolver; } });
let enums;
function getRemoteFileFields(enums, actions, store) {
return {
id: `ID!`,
mimeType: `String!`,
filename: `String!`,
filesize: `Int`,
width: `Int`,
height: `Int`,
publicUrl: (0, public_url_resolver_1.generatePublicUrlFieldConfig)(actions, store),
resize: (0, resize_resolver_1.generateResizeFieldConfig)(enums, actions, store),
gatsbyImage: (0, gatsby_image_resolver_1.generateGatsbyImageFieldConfig)(enums, actions, store),
};
}
function addRemoteFilePolyfillInterface(type, { schema, actions, store, }) {
// When the image-cdn is part of Gatsby we will only add the RemoteFile interface if necessary
if ((0, has_feature_1.hasFeature)(`image-cdn`)) {
// @ts-ignore - wrong typing by typecomposer
if (!type.config.interfaces.includes(`RemoteFile`)) {
// @ts-ignore - wrong typing by typecomposer
type.config.interfaces.push(`RemoteFile`);
}
return type;
}
if (!enums) {
// We only want to create the enums and interface once
const composer = new graphql_compose_1.SchemaComposer();
enums = (0, get_remote_file_enums_1.getRemoteFileEnums)(composer.createEnumTC.bind(composer));
const types = [];
for (const key in enums) {
if (enums[key]) {
types.push(schema.buildEnumType({
name: enums[key].getTypeName(),
values: enums[key].getFields(),
}));
}
}
types.push(schema.buildObjectType({
name: `RemoteFileResize`,
fields: {
width: `Int`,
height: `Int`,
src: `String`,
},
}), schema.buildInterfaceType({
name: `RemoteFile`,
fields: getRemoteFileFields(enums, actions, store),
}));
actions.createTypes(types, {
name: `gatsby`,
// @ts-ignore - version is allowed
version: (0, get_gatsby_version_1.getGatsbyVersion)(),
resolve: path_1.default.join(__dirname, `../`),
});
}
// @ts-ignore - wrong typing by typecomposer
type.config.interfaces = type.config.interfaces || [];
// @ts-ignore - wrong typing by typecomposer
if (!type.config.interfaces.includes(`RemoteFile`)) {
// @ts-ignore - wrong typing by typecomposer
type.config.interfaces.push(`RemoteFile`);
}
// @ts-ignore - wrong typing by typecomposer
type.config.fields = {
// @ts-ignore - wrong typing by typecomposer
...type.config.fields,
...getRemoteFileFields(enums, actions, store),
};
return type;
}
function isImageCdnEnabled() {
return (process.env.GATSBY_CLOUD_IMAGE_CDN === `1` ||
process.env.GATSBY_CLOUD_IMAGE_CDN === `true`);
}
var http_routes_1 = require("./http-routes");
Object.defineProperty(exports, "polyfillImageServiceDevRoutes", { enumerable: true, get: function () { return http_routes_1.polyfillImageServiceDevRoutes; } });
Object.defineProperty(exports, "addImageRoutes", { enumerable: true, get: function () { return http_routes_1.addImageRoutes; } });
//# sourceMappingURL=index.js.map
;