Skip to content

Commit

Permalink
feat(associative): add renameKeysMap
Browse files Browse the repository at this point in the history
  • Loading branch information
postspectacular committed Apr 13, 2018
1 parent 1f8af6c commit bfabe80
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion packages/associative/src/rename-keys.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,22 @@
import { IObjectOf } from "@thi.ng/api/api";

import { empty } from "./utils";

export function renameKeysMap<T>(src: Map<any, T>, km: IObjectOf<T>): Map<any, T> {
const dest = empty(src, Map);
for (let p of src) {
const k = p[0];
const kk = km[k];
dest.set(kk !== undefined ? kk : k, p[1]);
}
return dest;
}

export function renameKeysObj(src: any, km: IObjectOf<PropertyKey>) {
const dest = {};
for (let k in src) {
const kk = km[k];
dest[kk !== undefined ? kk : k] = src[k];
dest[kk != null ? kk : k] = src[k];
}
return dest;
}

0 comments on commit bfabe80

Please sign in to comment.