(level)
| 391 | } |
| 392 | |
| 393 | var tasksForLevel = function (level) { |
| 394 | let left, oldTask, task |
| 395 | const tasks = [] |
| 396 | const inappropriateTasks = {} |
| 397 | for (task of Array.from(defaultTasks)) { |
| 398 | var needle |
| 399 | if (utils.isCodeCombat && (task.name === 'Create two sample projects') && (level.get('shareable') !== 'project')) { |
| 400 | inappropriateTasks[task.name] = task |
| 401 | } else if (task.types && (((needle = level.get('realType') || level.get('type', true)), !Array.from(task.types).includes(needle)))) { |
| 402 | inappropriateTasks[task.name] = task |
| 403 | } else { |
| 404 | tasks.push(task) |
| 405 | } |
| 406 | } |
| 407 | const oldTasks = ((left = level.get('tasks')) != null ? left : []).slice() |
| 408 | const newTasks = [] |
| 409 | for (task of Array.from(tasks)) { |
| 410 | var complete |
| 411 | const oldName = renamedTaskNames[task.name] || task.name |
| 412 | if (oldTask = (_.find(oldTasks, { name: oldName }) || _.find(oldTasks, { name: task.name }))) { |
| 413 | complete = oldTask.complete || Boolean(typeof task.complete === 'function' ? task.complete(level) : undefined) |
| 414 | _.remove(oldTasks, { name: oldTask.name }) |
| 415 | } else { |
| 416 | complete = Boolean(typeof task.complete === 'function' ? task.complete(level) : undefined) |
| 417 | if (!complete && task.optional) { continue } |
| 418 | } |
| 419 | newTasks.push({ name: task.name, complete }) |
| 420 | } |
| 421 | for (oldTask of Array.from(oldTasks)) { |
| 422 | if (!Array.from(deprecatedTaskNames).includes(oldTask.name) && !inappropriateTasks[oldTask.name]) { |
| 423 | newTasks.push(oldTask) |
| 424 | } |
| 425 | } |
| 426 | return newTasks |
| 427 | } |
| 428 | |
| 429 | function __guard__ (value, transform) { |
| 430 | return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined |
no test coverage detected