UNPKG

@netlify/content-engine

Version:
99 lines 4.91 kB
"use strict"; 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