Skip to content

Commit 6a4e1fa

Browse files
author
Loïc Mangeonjean
committed
fix: automatically detect mime types
1 parent 2ce3e71 commit 6a4e1fa

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

package-lock.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@
147147
"fast-glob": "^3.3.1",
148148
"js-cleanup": "^1.2.0",
149149
"jschardet": "^3.0.0",
150+
"mime-types": "^2.1.35",
150151
"patch-package": "^7.0.2",
151152
"recast": "^0.23.3",
152153
"rollup": "^3.26.3",

src/extension-tools.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { addExtension } from '@rollup/pluginutils'
1111
import { IUserFriendlyViewsContainerDescriptor } from 'vs/workbench/api/browser/viewsExtensionPoint'
1212
// @ts-ignore
1313
import parseCssUrl from 'css-url-parser'
14+
import * as mime from 'mime-types'
1415
import * as path from 'path'
1516

1617
export interface ExtensionResource {
@@ -170,7 +171,7 @@ async function extractResourcesFromExtensionManifestContribute (contribute: Real
170171
}
171172

172173
export async function extractResourcesFromExtensionManifest (manifest: IExtensionManifest, getFileContent: (path: string) => Promise<Buffer>): Promise<ExtensionResource[]> {
173-
const resources: ExtensionResource[] = []
174+
let resources: ExtensionResource[] = []
174175

175176
if (manifest.contributes != null) {
176177
resources.push(...await extractResourcesFromExtensionManifestContribute(manifest.contributes as RealContribute, getFileContent))
@@ -181,6 +182,19 @@ export async function extractResourcesFromExtensionManifest (manifest: IExtensio
181182
resources.push(...(await extractResources(jsPath, getFileContent)))
182183
}
183184

185+
resources = resources.map(r => {
186+
if (r.mimeType == null) {
187+
const detectedType = mime.lookup(r.path)
188+
if (detectedType !== false) {
189+
return {
190+
...r,
191+
mimeType: detectedType
192+
}
193+
}
194+
}
195+
return r
196+
})
197+
184198
// remove duplicates
185199
return Object.values(Object.fromEntries(resources.map(r => [r.path, r])))
186200
}

0 commit comments

Comments
 (0)