diff --git a/lib/parse.ts b/lib/parse.ts index da17039..eb5aef3 100644 --- a/lib/parse.ts +++ b/lib/parse.ts @@ -2,6 +2,8 @@ import { readFile } from 'fs-extra'; import { tableFile, aliasesFile, asciiFile, charactersFile } from './build'; +const mime = import('mime'); + const buster = require.main?.require('./src/meta').config['cache-buster']; const winston = require.main?.require('winston'); @@ -302,14 +304,6 @@ export async function email( return data; } -let mimeModule: typeof import('mime') | null = null; -async function importMime(): Promise { - if (!mimeModule) { - mimeModule = await import('mime'); - } - return mimeModule.default; -} - export async function activitypubNote(data: { object: { source: { content: string }, @@ -327,7 +321,7 @@ export async function activitypubNote(data: { }, post: unknown }): Promise { - const mime = await importMime(); + const getType = (await mime).default.getType; const emojiContext = { toot: 'http://joinmastodon.org/ns#', @@ -353,15 +347,15 @@ export async function activitypubNote(data: { return; } - const route = `${options.baseUrl}/plugins/nodebb-plugin-emoji/emoji/${emoji.pack}`; + const url = `${options.baseUrl}/plugins/nodebb-plugin-emoji/emoji/${emoji.pack}/${emoji.image}?${buster}`; data.object.tag.push({ - id: emoji.name, + id: url, type: 'Emoji', name: whole, icon: { type: 'Image', - mediaType: mime.getType(emoji.image) || '', - url: `${route}/${emoji.image}?${buster}`, + mediaType: getType(emoji.image) || '', + url, }, }); }); diff --git a/package.json b/package.json index 4a56abe..b4c95d2 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "5.1.15", "description": "Adds extensible emoji functionality to NodeBB", "main": "build/lib", + "type": "commonjs", "author": "Peter Jaszkowiak (https://github.com/pitaj)", "license": "MIT", "homepage": "https://github.com/NodeBB/nodebb-plugin-emoji", diff --git a/plugin.json b/plugin.json index 616ddc1..7ae4568 100644 --- a/plugin.json +++ b/plugin.json @@ -1,5 +1,5 @@ { - "library": "build/lib", + "library": ".", "scss": [ "public/style.scss" ], diff --git a/tsconfig.json b/tsconfig.json index 00010f5..4d604c5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,13 +7,14 @@ "outDir": "build/lib", "lib": ["es2019"], "target": "es2019", - "module": "commonjs", - "moduleResolution": "node", + "module": "node16", + "moduleResolution": "node16", "esModuleInterop": true, "noImplicitAny": true, "alwaysStrict": true, "strictNullChecks": true, - "sourceMap": true + "sourceMap": true, + "skipLibCheck": true }, "typeAcquisition": { "enable": false