fix(build): format top-level key for nsis-web (#158)

diff --git a/lib/build.js b/lib/build.js
index 00a0fba..9195285 100644
--- a/lib/build.js
+++ b/lib/build.js
@@ -29,6 +29,10 @@
     win: 'win32'
 };
 
+const TARGET_TOP_LEVEL_KEY_MAPPING = {
+    'nsis-web': 'nsisWeb'
+};
+
 class ElectronBuilder {
     constructor (buildOptions, api) {
         this.api = api;
@@ -120,7 +124,9 @@
 
                 if (typeof target === 'object' && Object.keys(target).length !== 0) {
                     const targetKey = Object.keys(target)[0];
-                    userBuildSettings.config[targetKey] = target[targetKey];
+                    const rootKey = TARGET_TOP_LEVEL_KEY_MAPPING[targetKey] || targetKey;
+
+                    userBuildSettings.config[rootKey] = target[targetKey];
                     target = targetKey;
                 }
 
diff --git a/tests/spec/unit/lib/build.spec.js b/tests/spec/unit/lib/build.spec.js
index 372d18d..a07d14a 100644
--- a/tests/spec/unit/lib/build.spec.js
+++ b/tests/spec/unit/lib/build.spec.js
@@ -1261,6 +1261,33 @@
             expect(buildOptions.buildConfig.electron.mac.signing.store.requirements).toBe(undefined);
         });
 
+        it('should format nsis-web taget with nsisWeb top-level configs in __formatAppendUserSettings.', () => {
+            // Sample target configuration option
+            const appPackageUrl = 'https://foo.bar/apps/win/web';
+            // The settings which will be populated by `__formatAppendUserSettings`
+            const userBuildSettings = {};
+            // platform config partial from `build.json`
+            const platformConfig = {
+                package: [
+                    { 'nsis-web': { appPackageUrl } }
+                ]
+            };
+            // the mock `build.json`
+            const buildConfig = { electron: { windows: platformConfig } };
+            // the build options which is passed from CLI/Lib to Platform Build
+            const buildOptions = { argv: [], buildConfig };
+
+            // // create spies
+            existsSyncSpy = jasmine.createSpy('existsSync').and.returnValue(false);
+            build.__set__('fs', { existsSync: existsSyncSpy });
+
+            electronBuilder = new ElectronBuilder(buildOptions, api)
+                .__formatAppendUserSettings('win', platformConfig, userBuildSettings);
+
+            expect(existsSyncSpy).toHaveBeenCalled();
+            expect(userBuildSettings.config.nsisWeb.appPackageUrl).toBe(appPackageUrl);
+        });
+
         it('should append user singing for windows', () => {
             // mock platformConfig, buildConfig and buildOptions Objects
             const platformConfig = {