Progress on action choices
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { EngineAction } from '/imports/api/engine/action/EngineActions';
|
||||
import InputProvider from '/imports/api/engine/action/functions/userInput/InputProvider';
|
||||
|
||||
/**
|
||||
* Create a new version of the user input function, that saves the user's choices to an array
|
||||
* before returning them
|
||||
*/
|
||||
export default function saveInputChoices(action: EngineAction, userInput: InputProvider): InputProvider {
|
||||
const newInputProvider: Partial<InputProvider> = {};
|
||||
|
||||
if (!action._choices) {
|
||||
action._choices = [];
|
||||
}
|
||||
|
||||
// For every function in the given input provider
|
||||
for (const key in userInput) {
|
||||
const oldFn = userInput[key];
|
||||
// Make a new function that does the same thing, but saves the result to action._choices
|
||||
const newFn = (...args) => {
|
||||
const result = oldFn(...args);
|
||||
action._choices.push(result);
|
||||
return result;
|
||||
}
|
||||
newInputProvider[key] = newFn;
|
||||
}
|
||||
|
||||
return newInputProvider as InputProvider;
|
||||
}
|
||||
Reference in New Issue
Block a user