diff --git a/__tests__/files/index.test.ts b/__tests__/files/index.test.ts new file mode 100644 index 0000000..fa45152 --- /dev/null +++ b/__tests__/files/index.test.ts @@ -0,0 +1,11 @@ +import { getExtensionFromMimeType } from '../../src/files' + +describe('Files', () => { + it('Should correct file extension from mimeType', () => { + expect(getExtensionFromMimeType('video/mp4')).toEqual('mp4') + }) + + it('Should return null as mimeType is unkown', () => { + expect(getExtensionFromMimeType('log/banana')).toBeNull() + }) +}) diff --git a/package-lock.json b/package-lock.json index 163e5ce..04e6b3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "adapcon-utils-js", - "version": "0.16.6", + "version": "0.16.7", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2b658b4..63cacdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "adapcon-utils-js", - "version": "0.16.6", + "version": "0.16.7", "description": "Utils library for Javascript", "keywords": [], "author": { diff --git a/src/files/extensions.ts b/src/files/extensions.ts new file mode 100644 index 0000000..9023aca --- /dev/null +++ b/src/files/extensions.ts @@ -0,0 +1,28 @@ +export enum FILE_EXTENSIONS { + 'video/mp4' = 'mp4', + 'audio/ogg; codecs=opus' = 'ogg', + 'image/gif' = 'gif', + 'image/jpeg' = 'jpg', + 'image/svg+xml' = 'svg', + 'image/tiff' = 'tiff', + 'image/png' = 'png', + 'image/bmp' = 'bmp', + 'text/html' = 'html', + 'text/csv' = 'csv', + 'text/css' = 'css', + 'text/plain' = 'txt', + 'text/xml' = 'xml', + 'text/tab-separated-values' = 'tsv', + 'application/pdf' = 'pdf', + 'application/xml' = 'xml', + 'application/zip' = 'zip', + 'application/x-compressed-zip' = 'zip', + 'application/vnd.ms-excel' = 'xls', + 'application/x-bzip2' = 'bz2', + 'application/msword' = 'doc', + 'application/x-gzip' = 'gz', + 'application/java-archive' = 'jar', + 'application/x-javascript' = 'js', + 'application/vnd.ms-powerpoint' = 'ppt', + 'application/x-tar' = 'tar.gz' +} diff --git a/src/files/index.ts b/src/files/index.ts new file mode 100644 index 0000000..6dc00d1 --- /dev/null +++ b/src/files/index.ts @@ -0,0 +1,2 @@ +export * from './extensions' +export * from './utils' diff --git a/src/files/utils.ts b/src/files/utils.ts new file mode 100644 index 0000000..7f15d2e --- /dev/null +++ b/src/files/utils.ts @@ -0,0 +1,5 @@ +import { FILE_EXTENSIONS } from '.' + +export function getExtensionFromMimeType (mimeType: string): string | null { + return FILE_EXTENSIONS[mimeType] || null +} diff --git a/src/index.ts b/src/index.ts index 9fea3da..93ffb34 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,6 +4,7 @@ export * from './date' export * from './dynamoose' export * from './email' export * from './error' +export * from './files' export * from './http' export * from './image' export * from './invoice'