UNPKG

@netlify/content-engine

Version:
46 lines 1.64 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FILE_CDN = FILE_CDN; exports.IMAGE_CDN = IMAGE_CDN; const path_1 = __importDefault(require("path")); const fetch_remote_file_1 = require("../../../core-utils/fetch-remote-file"); const cpu_core_count_1 = require("../../../core-utils/cpu-core-count"); const fastq_1 = __importDefault(require("fastq")); const transform_images_1 = require("../transform-images"); const queue = (0, fastq_1.default)(async function transform(task, cb) { try { cb(null, await (0, transform_images_1.transformImage)(task)); } catch (e) { cb(e); } }, // When inside query workers, we only want to use the current core process.env.GATSBY_WORKER_POOL_WORKER ? 1 : Math.max(1, (0, cpu_core_count_1.cpuCoreCount)() - 1)); async function FILE_CDN({ outputDir, args: { url, filename, contentDigest, httpHeaders }, }) { const ext = path_1.default.extname(filename); await (0, fetch_remote_file_1.fetchRemoteFile)({ directory: outputDir, url, name: path_1.default.basename(filename, ext), ext, cacheKey: contentDigest, excludeDigest: true, httpHeaders, }); } async function IMAGE_CDN(args) { return new Promise((resolve, reject) => { queue.push(args, (err) => { if (err) { reject(err); return; } resolve(); }); }); } //# sourceMappingURL=gatsby-worker.js.map