diff --git a/package-lock.json b/package-lock.json index a352f3e0..f7ba8cf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6840,9 +6840,9 @@ } }, "js-yaml": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", - "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", diff --git a/src/core/Recipe.mjs b/src/core/Recipe.mjs index bed6845c..15e51529 100755 --- a/src/core/Recipe.mjs +++ b/src/core/Recipe.mjs @@ -9,6 +9,7 @@ import OperationError from "./errors/OperationError"; import Operation from "./Operation"; import DishError from "./errors/DishError"; import log from "loglevel"; +import { isWorkerEnvironment } from "./Utils"; // Cache container for modules let modules = null; @@ -202,7 +203,7 @@ class Recipe { input = await dish.get(op.inputType); log.debug(`Executing operation '${op.name}'`); - if (ENVIRONMENT_IS_WORKER()) { + if (isWorkerEnvironment()) { self.sendStatusMessage(`Baking... (${i+1}/${this.opList.length})`); self.sendProgressMessage(i + 1, this.opList.length); } diff --git a/src/core/Utils.mjs b/src/core/Utils.mjs index 994bdc53..34e3dd18 100755 --- a/src/core/Utils.mjs +++ b/src/core/Utils.mjs @@ -1154,17 +1154,24 @@ class Utils { /** * Check whether the code is running in a Node.js environment + * @returns {boolean} */ export function isNodeEnvironment() { return typeof process !== "undefined" && process.versions != null && process.versions.node != null; } -/** */ +/** + * Check whether the code is running in a web environment + * @returns {boolean} +*/ export function isWebEnvironment() { return typeof window === "object"; } -/** */ +/** + * Check whether the code is running in a worker + * @returns {boolean} +*/ export function isWorkerEnvironment() { return typeof importScripts === "function"; } diff --git a/src/core/operations/AddTextToImage.mjs b/src/core/operations/AddTextToImage.mjs index 97b2f799..430ce552 100644 --- a/src/core/operations/AddTextToImage.mjs +++ b/src/core/operations/AddTextToImage.mjs @@ -8,6 +8,7 @@ import Operation from "../Operation"; import OperationError from "../errors/OperationError"; import { isImage } from "../lib/FileType"; import { toBase64 } from "../lib/Base64"; +import { isWorkerEnvironment } from "../Utils"; import jimp from "jimp"; /** @@ -131,7 +132,7 @@ class AddTextToImage extends Operation { throw new OperationError(`Error loading image. (${err})`); } try { - if (ENVIRONMENT_IS_WORKER()) + if (isWorkerEnvironment()) self.sendStatusMessage("Adding text to image..."); const fontsMap = {}; diff --git a/src/core/operations/Bzip2Compress.mjs b/src/core/operations/Bzip2Compress.mjs index ea92107f..84ac6783 100644 --- a/src/core/operations/Bzip2Compress.mjs +++ b/src/core/operations/Bzip2Compress.mjs @@ -7,6 +7,7 @@ import Operation from "../Operation"; import OperationError from "../errors/OperationError"; import Bzip2 from "libbzip2-wasm"; +import { isWorkerEnvironment } from "../Utils"; /** * Bzip2 Compress operation @@ -51,10 +52,10 @@ class Bzip2Compress extends Operation { if (input.byteLength <= 0) { throw new OperationError("Please provide an input."); } - if (ENVIRONMENT_IS_WORKER()) self.sendStatusMessage("Loading Bzip2..."); + if (isWorkerEnvironment()) self.sendStatusMessage("Loading Bzip2..."); return new Promise((resolve, reject) => { Bzip2().then(bzip2 => { - if (ENVIRONMENT_IS_WORKER()) self.sendStatusMessage("Compressing data..."); + if (isWorkerEnvironment()) self.sendStatusMessage("Compressing data..."); const inpArray = new Uint8Array(input); const bzip2cc = bzip2.compressBZ2(inpArray, blockSize, workFactor); if (bzip2cc.error !== 0) { diff --git a/src/core/operations/Bzip2Decompress.mjs b/src/core/operations/Bzip2Decompress.mjs index 08a1f3d7..fcd35883 100644 --- a/src/core/operations/Bzip2Decompress.mjs +++ b/src/core/operations/Bzip2Decompress.mjs @@ -7,6 +7,7 @@ import Operation from "../Operation"; import OperationError from "../errors/OperationError"; import Bzip2 from "libbzip2-wasm"; +import { isWorkerEnvironment } from "../Utils"; /** * Bzip2 Decompress operation @@ -51,10 +52,10 @@ class Bzip2Decompress extends Operation { if (input.byteLength <= 0) { throw new OperationError("Please provide an input."); } - if (ENVIRONMENT_IS_WORKER()) self.sendStatusMessage("Loading Bzip2..."); + if (isWorkerEnvironment()) self.sendStatusMessage("Loading Bzip2..."); return new Promise((resolve, reject) => { Bzip2().then(bzip2 => { - if (ENVIRONMENT_IS_WORKER()) self.sendStatusMessage("Decompressing data..."); + if (isWorkerEnvironment()) self.sendStatusMessage("Decompressing data..."); const inpArray = new Uint8Array(input); const bzip2cc = bzip2.decompressBZ2(inpArray, small ? 1 : 0); if (bzip2cc.error !== 0) { diff --git a/src/core/operations/SharpenImage.mjs b/src/core/operations/SharpenImage.mjs index d7a17357..ea408ecb 100644 --- a/src/core/operations/SharpenImage.mjs +++ b/src/core/operations/SharpenImage.mjs @@ -9,6 +9,7 @@ import OperationError from "../errors/OperationError"; import { isImage } from "../lib/FileType"; import { toBase64 } from "../lib/Base64"; import { gaussianBlur } from "../lib/ImageManipulation"; +import { isWorkerEnvironment } from "../Utils"; import jimp from "jimp"; /** @@ -73,16 +74,16 @@ class SharpenImage extends Operation { } try { - if (ENVIRONMENT_IS_WORKER()) + if (isWorkerEnvironment()) self.sendStatusMessage("Sharpening image... (Cloning image)"); const blurMask = image.clone(); - if (ENVIRONMENT_IS_WORKER()) + if (isWorkerEnvironment()) self.sendStatusMessage("Sharpening image... (Blurring cloned image)"); const blurImage = gaussianBlur(image.clone(), radius, 3); - if (ENVIRONMENT_IS_WORKER()) + if (isWorkerEnvironment()) self.sendStatusMessage("Sharpening image... (Creating unsharp mask)"); blurMask.scan(0, 0, blurMask.bitmap.width, blurMask.bitmap.height, function(x, y, idx) { const blurRed = blurImage.bitmap.data[idx]; @@ -99,7 +100,7 @@ class SharpenImage extends Operation { this.bitmap.data[idx + 2] = (normalBlue > blurBlue) ? normalBlue - blurBlue : 0; }); - if (ENVIRONMENT_IS_WORKER()) + if (isWorkerEnvironment()) self.sendStatusMessage("Sharpening image... (Merging with unsharp mask)"); image.scan(0, 0, image.bitmap.width, image.bitmap.height, function(x, y, idx) { let maskRed = blurMask.bitmap.data[idx]; diff --git a/tests/node/tests/operations.mjs b/tests/node/tests/operations.mjs index 56cd7c38..f283240d 100644 --- a/tests/node/tests/operations.mjs +++ b/tests/node/tests/operations.mjs @@ -215,8 +215,8 @@ Full hash: $2a$10$ODeP1.6fMsb.ENk2ngPUCO7qTGVPyHA9TqDVcyupyed8FjsiF65L6`; }`); }), - it("Bzip2 Decompress", () => { - const result = chef.bzip2Decompress(chef.fromBase64("QlpoOTFBWSZTWUdQlt0AAAIVgEAAAQAmJAwAIAAxBkxA0A2pTL6U2CozxdyRThQkEdQlt0A=")); + it("Bzip2 Decompress", async () => { + const result = await chef.bzip2Decompress(chef.fromBase64("QlpoOTFBWSZTWUdQlt0AAAIVgEAAAQAmJAwAIAAxBkxA0A2pTL6U2CozxdyRThQkEdQlt0A=")); assert.strictEqual(result.toString(), "Fit as a Fiddle"); }), diff --git a/tests/operations/tests/IndexOfCoincidence.mjs b/tests/operations/tests/IndexOfCoincidence.mjs index 3dc4cd35..c3485c5b 100644 --- a/tests/operations/tests/IndexOfCoincidence.mjs +++ b/tests/operations/tests/IndexOfCoincidence.mjs @@ -5,7 +5,7 @@ * @copyright Crown Copyright 2019 * @license Apache-2.0 */ -import TestRegister from "../TestRegister"; +import TestRegister from "../../lib/TestRegister"; TestRegister.addTests([ { diff --git a/tests/operations/tests/JSONtoCSV.mjs b/tests/operations/tests/JSONtoCSV.mjs index 67d46e64..3d66bb41 100644 --- a/tests/operations/tests/JSONtoCSV.mjs +++ b/tests/operations/tests/JSONtoCSV.mjs @@ -6,7 +6,7 @@ * @copyright Crown Copyright 2019 * @license Apache-2.0 */ -import TestRegister from "../TestRegister"; +import TestRegister from "../../lib/TestRegister"; const EXPECTED_CSV_SINGLE = "a,b,c\r\n1,2,3\r\n"; const EXPECTED_CSV_MULTIPLE = "a,b,c\r\n1,2,3\r\n1,2,3\r\n";