From 7bf31e59b73c1eb3e610f6bdcf9fafba782bb1ff Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Fri, 18 Mar 2016 11:41:42 +0000 Subject: [PATCH] add preview flag fixes #82 --- resources/extension.vsixmanifest | 2 +- src/manifest.ts | 1 + src/package.ts | 7 +++++++ src/test/package.test.ts | 16 ++++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/resources/extension.vsixmanifest b/resources/extension.vsixmanifest index e1fd31b..9b4ae83 100644 --- a/resources/extension.vsixmanifest +++ b/resources/extension.vsixmanifest @@ -6,7 +6,7 @@ <%- description %> <%- tags %> <%- categories %> - Public + <%- flags %> <% if (links.repository) { %> diff --git a/src/manifest.ts b/src/manifest.ts index 99fa206..ca672db 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -17,6 +17,7 @@ export interface Manifest { activationEvents?: string[]; extensionDependencies?: string[]; galleryBanner?: { color?: string; theme?: string; }; + preview?: boolean; _bundling?: { [name: string]: string; }[]; _testing?: string; diff --git a/src/package.ts b/src/package.ts index 5bb19d6..ca4f4be 100644 --- a/src/package.ts +++ b/src/package.ts @@ -94,6 +94,12 @@ class MainProcessor extends BaseProcessor { constructor(manifest: Manifest) { super(manifest); + const flags = ['Public']; + + if (manifest.preview) { + flags.push('Preview'); + } + _.assign(this.vsix, { id: manifest.name, displayName: manifest.displayName || manifest.name, @@ -102,6 +108,7 @@ class MainProcessor extends BaseProcessor { description: manifest.description || '', tags: (manifest.keywords || []).concat('vscode').join(','), categories: (manifest.categories || []).join(','), + flags: flags.join(' '), links: { repository: getUrl(manifest.repository), bugs: getUrl(manifest.bugs), diff --git a/src/test/package.test.ts b/src/test/package.test.ts index c1da238..9194b3b 100644 --- a/src/test/package.test.ts +++ b/src/test/package.test.ts @@ -411,6 +411,22 @@ describe('toVsixManifest', () => { assert.ok(categories.some(c => c === 'world')); }); }); + + it('should respect preview flag', () => { + const manifest = { + name: 'test', + publisher: 'mocha', + version: '0.0.1', + engines: Object.create(null), + preview: true + }; + + return _toVsixManifest(manifest, []) + .then(xml => parseXml(xml)) + .then(result => { + assert.deepEqual(result.PackageManifest.Metadata[0].GalleryFlags, ['Public Preview']); + }); + }); }); describe('toContentTypes', () => {