Merge branch 'ts-ext' into 'main'

Treat .ts links in statuses as application/typescript

Closes #241

See merge request soapbox-pub/ditto!529
This commit is contained in:
Alex Gleason 2024-10-03 18:07:00 +00:00
commit cb78799997
2 changed files with 15 additions and 1 deletions

View file

@ -7,6 +7,10 @@ Deno.test('getUrlMediaType', () => {
assertEquals(getUrlMediaType('https://example.com/index.html'), 'text/html');
assertEquals(getUrlMediaType('https://example.com/yolo'), undefined);
assertEquals(getUrlMediaType('https://example.com/'), undefined);
assertEquals(
getUrlMediaType('https://gitlab.com/soapbox-pub/nostrify/-/blob/main/packages/policies/WoTPolicy.ts'),
'application/typescript',
);
});
Deno.test('isPermittedMediaType', () => {

View file

@ -1,4 +1,4 @@
import { typeByExtension } from '@std/media-types';
import { typeByExtension as _typeByExtension } from '@std/media-types';
/** Get media type of the filename in the URL by its extension, if any. */
export function getUrlMediaType(url: string): string | undefined {
@ -22,3 +22,13 @@ export function isPermittedMediaType(mediaType: string, permitted: string[]): bo
const [baseType, _subType] = mediaType.split('/');
return permitted.includes(baseType);
}
/** Custom type-by-extension with overrides. */
function typeByExtension(ext: string): string | undefined {
switch (ext) {
case 'ts':
return 'application/typescript';
default:
return _typeByExtension(ext);
}
}