diff --git a/src/core/FlowControl.js b/src/core/FlowControl.js index 54541f74a..4977eaaf4 100755 --- a/src/core/FlowControl.js +++ b/src/core/FlowControl.js @@ -193,6 +193,20 @@ const FlowControl = { return state; }, + + /** + * Comment operation. + * + * @param {Object} state - The current state of the recipe. + * @param {number} state.progress - The current position in the recipe. + * @param {Dish} state.dish - The Dish being operated on. + * @param {Operation[]} state.opList - The list of operations in the recipe. + * @returns {Object} The updated state of the recipe. + */ + runComment: function(state) { + return state; + }, + }; export default FlowControl; diff --git a/src/core/config/Categories.js b/src/core/config/Categories.js index 1de8ba50e..c95a0905c 100755 --- a/src/core/config/Categories.js +++ b/src/core/config/Categories.js @@ -295,6 +295,7 @@ const Categories = [ "Jump", "Conditional Jump", "Return", + "Comment" ] }, ]; diff --git a/src/core/config/OperationConfig.js b/src/core/config/OperationConfig.js index c4276465f..3c07dcb87 100755 --- a/src/core/config/OperationConfig.js +++ b/src/core/config/OperationConfig.js @@ -162,6 +162,20 @@ const OperationConfig = { flowControl: true, args: [] }, + "Comment": { + description: "Provides a place to write comments within the flow of the recipe. This operation has no computational effect.", + run: FlowControl.runComment, + inputType: "string", + outputType: "string", + flowControl: true, + args: [ + { + name: "", + type: "text", + value: "" + } + ] + }, "From Base64": { description: "Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.

This operation decodes data from an ASCII Base64 string back into its raw format.

e.g. aGVsbG8= becomes hello", run: Base64.runFrom, diff --git a/test/tests/operations/FlowControl.js b/test/tests/operations/FlowControl.js index 96ae2e80c..a48b8bf3d 100644 --- a/test/tests/operations/FlowControl.js +++ b/test/tests/operations/FlowControl.js @@ -111,4 +111,34 @@ TestRegister.addTests([ }, ], }, + { + name: "Comment: nothing", + input: "", + expectedOutput: "", + recipeConfig: [ + { + "op": "Comment", + "args": [""] + } + ] + }, + { + name: "Fork, Comment, Base64", + input: "cat\nsat\nmat", + expectedOutput: "Y2F0\nc2F0\nbWF0\n", + recipeConfig: [ + { + "op": "Fork", + "args": ["\\n", "\\n", false] + }, + { + "op": "Comment", + "args": ["Testing 123"] + }, + { + "op": "To Base64", + "args": ["A-Za-z0-9+/="] + } + ] + }, ]);