Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
exports.solver = functions.runWith(runtimeOpts).https.onRequest((req, res) => {
res.set('Access-Control-Allow-Methods', 'POST');
res.set('Access-Control-Allow-Origin', '*');
res.set('Access-Control-Allow-Headers', '*');
res.set('Access-Control-Max-Age', '3600');
if (req.method === 'OPTIONS') {
// Send response to OPTIONS requests
res.status(204).send('');
} else {
const stats = new CrafterStats(
req.body.stats.jobId,
req.body.stats.craftsmanship,
req.body.stats.control,
req.body.stats.cp,
req.body.stats.specialist,
req.body.stats.level,
req.body.stats.levels
);
const solver = new Solver(req.body.recipe, stats, req.body.configuration);
const seed = req.body.seed ? CraftingActionsRegistry.deserializeRotation(req.body.seed) : undefined;
return res.json(CraftingActionsRegistry.serializeRotation(solver.run(seed)));
}
});
map(([rotation, gearSets, stats]) => {
const food = this.foods.find(f => this.rotation.food && f.itemId === this.rotation.food.id && f.hq === this.rotation.food.hq);
const medicine = this.medicines.find(f => this.rotation.medicine && f.itemId === this.rotation.medicine.id && f.hq === this.rotation.medicine.hq);
const fcActions = this.freeCompanyActions.filter(action => this.rotation.freeCompanyActions.indexOf(action.actionId) > -1);
const crafterStats = new CrafterStats(
stats.jobId,
stats.craftsmanship + this.getBonusValue('Craftsmanship', stats.craftsmanship, food, medicine, fcActions),
stats.control + this.getBonusValue('Control', stats.craftsmanship, food, medicine, fcActions),
stats.cp + this.getBonusValue('CP', stats.craftsmanship, food, medicine, fcActions),
stats.specialist,
stats.level,
gearSets.length > 0 ? gearSets.map(set => set.level) as [number, number, number, number, number, number, number, number] : [70, 70, 70, 70, 70, 70, 70, 70]);
return new Simulation(rotation.recipe as Craft, CraftingActionsRegistry.deserializeRotation(rotation.rotation), crafterStats).run(true);
})
);