@robinbobin/mimetype-constants
Version:
Extensible MIME constants with typescript support
18 lines (17 loc) • 654 B
JavaScript
import { omit } from 'radashi';
import { mimeTypes } from './mimeTypes';
export function extend(typeGroups) {
const extendedMimeTypes = {
...mimeTypes
};
for (const [type, subtypes] of Object.entries(typeGroups)) {
const existingSubtypes = Object.keys(extendedMimeTypes[type] ?? {});
const subtypeKeysToOmit = Object.keys(subtypes).filter(subtypeKey => existingSubtypes.includes(subtypeKey));
const filteredSubtypes = omit(subtypes, subtypeKeysToOmit);
extendedMimeTypes[type] = {
...extendedMimeTypes[type],
...filteredSubtypes
};
}
return extendedMimeTypes;
}