Fixed some types not being found and some errors Identified by typescript

This commit is contained in:
Thaum Rystra
2024-03-26 16:37:03 +02:00
parent a3ea5e1408
commit 1614e655c5
12 changed files with 2054 additions and 605 deletions

View File

@@ -7,7 +7,7 @@ import CreatureVariables from '/imports/api/creature/creatures/CreatureVariables
import computeCreature from '/imports/api/engine/computeCreature';
import { loadCreature } from '/imports/api/engine/loadCreatures';
import EngineActions, { EngineAction } from '/imports/api/engine/action/EngineActions';
import { applyAction } from '/imports/api/engine/action/functions/applyAction';
import applyAction from '/imports/api/engine/action/functions/applyAction';
import { LogContent, Removal, Update } from '/imports/api/engine/action/tasks/TaskResult';
import inputProvider from '/imports/api/engine/action/functions/inputProviderForTests.testFn';

View File

@@ -6,7 +6,7 @@ import CreatureVariables from '/imports/api/creature/creatures/CreatureVariables
import computeCreature from '/imports/api/engine/computeCreature';
import { loadCreature } from '/imports/api/engine/loadCreatures';
import EngineActions, { EngineAction } from '/imports/api/engine/action/EngineActions';
import { applyAction } from '/imports/api/engine/action/functions/applyAction';
import applyAction from '/imports/api/engine/action/functions/applyAction';
import { LogContent, Mutation, Removal, Update } from '/imports/api/engine/action/tasks/TaskResult';
import inputProvider from '/imports/api/engine/action/functions/inputProviderForTests.testFn';
/**

View File

@@ -1,7 +1,6 @@
import EngineActions, { EngineAction, ActionSchema } from '/imports/api/engine/action/EngineActions';
import { EngineAction } from '/imports/api/engine/action/EngineActions';
import { getSingleProperty } from '/imports/api/engine/loadCreatures';
import applyTask from '/imports/api/engine/action/tasks/applyTask'
import { isEmpty } from 'lodash';
import InputProvider from '/imports/api/engine/action/functions/InputProvider';
// TODO create a function to get the effective value of a property,
@@ -11,7 +10,7 @@ import InputProvider from '/imports/api/engine/action/functions/InputProvider';
// This is run once as a simulation on the client awaiting all the various inputs or step through
// clicks from the user, then it is run as part of the runAction method, where it is expected to
// complete instantly on the client, and sent to the server as a method call
export async function applyAction(action: EngineAction, userInput: InputProvider, options?: {
export default async function applyAction(action: EngineAction, userInput: InputProvider, options?: {
simulate?: boolean, stepThrough?: boolean
}) {
const { simulate, stepThrough } = options || {};
@@ -29,15 +28,3 @@ export async function applyAction(action: EngineAction, userInput: InputProvider
}, userInput);
return { action, userInput };
}
function writeChangedAction(original: EngineAction, changed: EngineAction) {
const $set = {};
for (const key of ActionSchema.objectKeys()) {
if (!EJSON.equals(original[key], changed[key])) {
$set[key] = changed[key];
}
}
if (!isEmpty($set) && original._id) {
return EngineActions.updateAsync(original._id, { $set });
}
}

View File

@@ -1,5 +1,14 @@
import { EngineAction } from '/imports/api/engine/action/EngineActions';
import { isEmpty } from 'lodash'
import EngineActions, { EngineAction, ActionSchema } from '/imports/api/engine/action/EngineActions';
export async function writeChangedAction(originalAction: EngineAction, action: EngineAction) {
console.warn('writeChangedAction not implemented.');
export default async function writeChangedAction(original: EngineAction, changed: EngineAction) {
const $set = {};
for (const key of ActionSchema.objectKeys()) {
if (!EJSON.equals(original[key], changed[key])) {
$set[key] = changed[key];
}
}
if (!isEmpty($set) && original._id) {
return EngineActions.updateAsync(original._id, { $set });
}
}

View File

@@ -3,9 +3,8 @@ import SimpleSchema from 'simpl-schema';
import EngineActions from '/imports/api/engine/action/EngineActions';
import { assertEditPermission } from '/imports/api/sharing/sharingPermissions';
import { getCreature } from '/imports/api/engine/loadCreatures';
import { EJSON } from 'meteor/ejson';
import { applyAction } from '/imports/api/engine/action/functions/applyAction';
import { writeChangedAction } from '../functions/writeChangedAction';
import applyAction from '/imports/api/engine/action/functions/applyAction';
import writeChangedAction from '../functions/writeChangedAction';
export const runAction = new ValidatedMethod({
name: 'actions.runAction',