return (
object_server_target_after.apply_job(object_job) &&
(object_job.float_server_target_security_after =
object_server_target_after.security_current),
object_job
);
};
// returns a schedule with jobs near the end that prevent it from achieving minimum security removed so the target server has minimum security when the schedule finishes. if no jobs achieve minimum security, return the original schedule.
const array_get_schedule_corrected = function (
ns,
array_schedule
) {
const
array_schedule_edited = array_get_clone(array_schedule),
float_server_target_security_minimum = ns.getServerMinSecurityLevel(
array_schedule_edited[0].string_server_target
);
let boolean_have_seen_job_with_security_minimum = !1;
for (
;
!boolean_have_seen_job_with_security_minimum &&
array_schedule_edited.length > 0;
)
for (
let integer_index_job = array_schedule_edited.length - 1;
integer_index_job >= 0 && !boolean_have_seen_job_with_security_minimum;
--integer_index_job
) {
const object_job = array_schedule_edited[integer_index_job];
if (
object_job.float_server_target_security_after ===
float_server_target_security_minimum
) {
boolean_have_seen_job_with_security_minimum = !0;
break;
}
array_schedule_edited.splice(integer_index_job, 1);
}
return boolean_have_seen_job_with_security_minimum &&
0 !== array_schedule_edited.length
? array_schedule_edited
: array_schedule;