parent
709539ad51
commit
d825e41203
3 changed files with 16 additions and 14 deletions
|
@ -1,6 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
||||
<Default Extension=".vsixmanifest" ContentType="text/xml"/>
|
||||
<Default Extension=".json" ContentType="application/json"/>
|
||||
<% _.forEach(contentTypes, function (e) { %><Default Extension="${ e.extension }" ContentType="${ e.contentType }"/><% }); %>
|
||||
</Types>
|
|
@ -274,13 +274,21 @@ export function toVsixManifest(assets: IAsset[], vsix: any, options: IPackageOpt
|
|||
.then(vsixManifestTemplate => vsixManifestTemplate(vsix));
|
||||
}
|
||||
|
||||
export function toContentTypes(files: IFile[]): Promise<string> {
|
||||
const extensions = Object.keys(_.indexBy(files, f => path.extname(f.path)))
|
||||
.map(e => e.toLowerCase())
|
||||
.filter(e => e && !_.contains(['.json', '.vsixmanifest'], e));
|
||||
const defaultExtensions = {
|
||||
'.json': 'application/json',
|
||||
'.vsixmanifest': 'text/xml'
|
||||
};
|
||||
|
||||
const contentTypes = extensions
|
||||
.map(extension => ({ extension, contentType: mime.lookup(extension) }));
|
||||
export function toContentTypes(files: IFile[]): Promise<string> {
|
||||
const extensions = Object.keys(_.indexBy(files, f => path.extname(f.path).toLowerCase()))
|
||||
.filter(e => !!e)
|
||||
.reduce((r, e) => _.assign(r, { [e]: mime.lookup(e) }), {});
|
||||
|
||||
const allExtensions = _.assign({}, extensions, defaultExtensions);
|
||||
const contentTypes = Object.keys(allExtensions).map(extension => ({
|
||||
extension,
|
||||
contentType: allExtensions[extension]
|
||||
}));
|
||||
|
||||
return readFile(contentTypesTemplatePath, 'utf8')
|
||||
.then(contentTypesTemplateStr => _.template(contentTypesTemplateStr))
|
||||
|
|
|
@ -354,12 +354,8 @@ describe('toContentTypes', () => {
|
|||
assert.ok(result.Types);
|
||||
assert.ok(result.Types.Default);
|
||||
assert.equal(result.Types.Default.length, 2);
|
||||
assert.ok(result.Types.Default[0].$);
|
||||
assert.equal(result.Types.Default[0].$.Extension, '.vsixmanifest');
|
||||
assert.equal(result.Types.Default[0].$.ContentType, 'text/xml');
|
||||
assert.ok(result.Types.Default[1].$);
|
||||
assert.equal(result.Types.Default[1].$.Extension, '.json');
|
||||
assert.equal(result.Types.Default[1].$.ContentType, 'application/json');
|
||||
assert.ok(result.Types.Default.some(d => d.$.Extension === '.vsixmanifest' && d.$.ContentType === 'text/xml'));
|
||||
assert.ok(result.Types.Default.some(d => d.$.Extension === '.json' && d.$.ContentType === 'application/json'));
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue