open-vault/ui/app/helpers/remove-from-array.js

26 lines
604 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { helper as buildHelper } from '@ember/component/helper';
import { assert } from '@ember/debug';
function dedupe(items) {
return items.filter((v, i) => items.indexOf(v) === i);
}
export function removeFromArray([array, string]) {
if (!Array.isArray(array)) {
assert(`Value provided is not an array`, false);
}
const newArray = [...array];
const idx = newArray.indexOf(string);
if (idx >= 0) {
newArray.splice(idx, 1);
}
return dedupe(newArray);
}
export default buildHelper(removeFromArray);