DefinitelyTyped/types/flat/flat-tests.ts
Oz Weiss affb171262
add missing option transformKey in flat (#42613)
* transformKey + fix tests

* update version
2020-03-02 09:44:26 -08:00

68 lines
1.3 KiB
TypeScript

import { flatten, unflatten } from "flat";
namespace TestFlatten {
type Target = {
a: {
b: number;
},
c: boolean[][];
};
let target: Target;
type Result = {
'a.b': number;
'c.0.0': boolean;
};
let result: Result;
result = flatten<Target, Result>(target);
result = flatten<Target, Result>(target, {});
result = flatten<Target, Result>(target, {
delimiter: '_',
});
result = flatten<Target, Result>(target, {
maxDepth: 3,
});
result = flatten<Target, Result>(target, {
safe: true,
});
result = flatten<Target, Result>(target, {
transformKey: (key: string) => key,
});
}
namespace TestUnflatten {
type Target = {
'a.b': number;
'c.0.0': boolean;
};
let target: Target;
type Result = {
a: {
b: number;
},
c: boolean[][];
};
let result: Result;
result = unflatten<Target, Result>(target);
result = unflatten<Target, Result>(target, {});
result = unflatten<Target, Result>(target, {
delimiter: '_',
});
result = unflatten<Target, Result>(target, {
object: true,
});
result = unflatten<Target, Result>(target, {
overwrite: true,
});
result = unflatten<Target, Result>(target, {
transformKey: (key: string) => key,
});
}