gatsby-plugin-utils
Version:
Gatsby utils that help creating plugins
96 lines (95 loc) • 4.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.dispatchLocalFileServiceJob = dispatchLocalFileServiceJob;
exports.dispatchLocalImageServiceJob = dispatchLocalImageServiceJob;
exports.shouldDispatchLocalFileServiceJob = shouldDispatchLocalFileServiceJob;
exports.shouldDispatchLocalImageServiceJob = shouldDispatchLocalImageServiceJob;
var _path = _interopRequireDefault(require("path"));
var _getGatsbyVersion = require("../utils/get-gatsby-version");
var _urlGenerator = require("../utils/url-generator");
var _getRequestHeadersForUrl = require("../utils/get-request-headers-for-url");
function shouldDispatchLocalFileServiceJob() {
var _global$__GATSBY;
return !((_global$__GATSBY = global.__GATSBY) !== null && _global$__GATSBY !== void 0 && _global$__GATSBY.fileCDNUrlGeneratorModulePath || process.env.GATSBY_CLOUD_IMAGE_CDN === `1` || process.env.GATSBY_CLOUD_IMAGE_CDN === `true`) && process.env.NODE_ENV === `production`;
}
function shouldDispatchLocalImageServiceJob() {
var _global$__GATSBY2;
return !((_global$__GATSBY2 = global.__GATSBY) !== null && _global$__GATSBY2 !== void 0 && _global$__GATSBY2.imageCDNUrlGeneratorModulePath || process.env.GATSBY_CLOUD_IMAGE_CDN === `1` || process.env.GATSBY_CLOUD_IMAGE_CDN === `true`) && process.env.NODE_ENV === `production`;
}
function dispatchLocalFileServiceJob({
url,
filename,
mimeType,
contentDigest
}, actions, store) {
var _publicUrl$pop, _publicUrl$pop$split, _global$__GATSBY3;
const GATSBY_VERSION = (0, _getGatsbyVersion.getGatsbyVersion)();
const publicUrl = (0, _urlGenerator.generateFileUrl)({
url,
mimeType,
filename,
internal: {
contentDigest
}
}, store).split(`/`);
publicUrl.unshift(`public`);
// get filename and remove querystring
const outputFilename = decodeURI((_publicUrl$pop = publicUrl.pop()) === null || _publicUrl$pop === void 0 ? void 0 : (_publicUrl$pop$split = _publicUrl$pop.split(`?`)) === null || _publicUrl$pop$split === void 0 ? void 0 : _publicUrl$pop$split[0]);
const httpHeaders = (0, _getRequestHeadersForUrl.getRequestHeadersForUrl)(url, store);
actions.createJobV2({
name: `FILE_CDN`,
inputPaths: [],
// we know it's an image so we just mimic an image
outputDir: _path.default.join(((_global$__GATSBY3 = global.__GATSBY) === null || _global$__GATSBY3 === void 0 ? void 0 : _global$__GATSBY3.root) || process.cwd(), ...publicUrl.filter(Boolean)),
args: {
url,
filename: outputFilename,
contentDigest,
httpHeaders
}
}, {
name: `gatsby`,
// @ts-ignore - version is allowed
version: GATSBY_VERSION,
resolve: __dirname
});
}
function dispatchLocalImageServiceJob({
url,
filename,
mimeType,
contentDigest
}, imageArgs, actions, store) {
var _publicUrl$pop2, _publicUrl$pop2$split, _global$__GATSBY4;
const GATSBY_VERSION = (0, _getGatsbyVersion.getGatsbyVersion)();
const publicUrl = (0, _urlGenerator.generateImageUrl)({
url,
mimeType,
filename,
internal: {
contentDigest
}
}, imageArgs, store).split(`/`);
publicUrl.unshift(`public`);
// get filename and remove querystring
const outputFilename = decodeURI((_publicUrl$pop2 = publicUrl.pop()) === null || _publicUrl$pop2 === void 0 ? void 0 : (_publicUrl$pop2$split = _publicUrl$pop2.split(`?`)) === null || _publicUrl$pop2$split === void 0 ? void 0 : _publicUrl$pop2$split[0]);
const httpHeaders = (0, _getRequestHeadersForUrl.getRequestHeadersForUrl)(url, store);
actions.createJobV2({
name: `IMAGE_CDN`,
inputPaths: [],
outputDir: _path.default.join(((_global$__GATSBY4 = global.__GATSBY) === null || _global$__GATSBY4 === void 0 ? void 0 : _global$__GATSBY4.root) || process.cwd(), ...publicUrl.filter(Boolean)),
args: {
url,
filename: outputFilename,
contentDigest,
httpHeaders,
...imageArgs
}
}, {
name: `gatsby`,
// @ts-ignore - version is allowed
version: GATSBY_VERSION,
resolve: __dirname
});
}