@netlify/content-engine
Version:
46 lines • 1.64 kB
JavaScript
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
;