x-types
TypeScript model types, guards, and jest schemas to use across the X project.
How to install
npm install @empathyco/x-types --save
How to use
The package export several model types that can be used to safely create objects that match the
expectations of X packages.
import { RelatedTag } from '@empathyco/x-types';
const relatedTag: RelatedTag = {
query: 'lego',
tag: 'city',
selected: false,
previous: 'lego'
};
Additionally it also exposes some type guards to check between different types.
import { Filter, isHierarchicalFilter } from '@empathyco/x-types';
const filter: Filter = {
modelName: 'HierarchicalFilter',
id: 'color:red',
facetId: 'color',
label: 'red',
selected: false,
children: []
};
if (isHierarchicalFilter(filter)) {
console.log('Children:', filter.children);
}
Finally, there are some jest
schemas helpers that you could use to validate your objects.
import { HierarchicalFilterSchema } from '@empathyco/x-types/schemas';
import { Filter, isHierarchicalFilter } from '@empathyco/x-types';
it('is a hierarchical filter', () => {
const filter: Filter = {
modelName: 'HierarchicalFilter',
id: 'color:red',
facetId: 'color',
label: 'red',
selected: false,
children: []
};
expect(filter).toEqual(HierarchicalFilterSchema);
});
How to update the version
You can check if a new version has been published running
npm outdated:
npm outdated @empathyco/x-types
And update it using npm update:
npm update --save @empathyco/x-types