Преглед на файлове

refactor(BuildConfig): refactor version strings of WinConfig

Evshiron Magicka преди 8 години
родител
ревизия
117ce89548
променени са 5 файла, в които са добавени 56 реда и са изтрити 23 реда
  1. 3 5
      assets/project/package.json
  2. 6 2
      docs/Options.md
  3. 20 14
      src/lib/Builder.ts
  4. 23 2
      src/lib/config/BuildConfig.ts
  5. 4 0
      src/lib/config/WinConfig.ts

+ 3 - 5
assets/project/package.json

@@ -22,11 +22,9 @@
     ],
     "outputPattern": "${NAME} ${VERSION} ${PLATFORM} ${ARCH}",
     "win": {
-      "versionStrings": {
-        "ProductName": "Project",
-        "CompanyName": "nwjs-builder-phoenix",
-        "LegalCopyright": "copyright"
-      },
+      "productName": "Project",
+      "companyName": "nwjs-builder-phoenix",
+      "copyright": "copyright",
       "icon": "./assets/pd.ico"
     },
     "mac": {

+ 6 - 2
docs/Options.md

@@ -23,9 +23,13 @@ strippedProperties | string[] | Properties to be stripped from `package.json`. D
 
 Name | Type | Description
 --- | --- | ---
+productName | string | Product name. Defaults to `${ name }`.
+companyName | string | Company name. Defaults to `${ productName }`.
+fileDescription | string | File description. Defaults to `${ description }`.
+copyright | string | Copyright. Defaults to `''`.
 productVersion | string | Product version. Defaults to `${ version }`.
 fileVersion | string | File version. Defaults to `${ productVersion }`
-versionStrings | { [key: string]: string } | `rcedit` version strings. Defaults to `{ ProductName: "${ name }", FileDescription: "${ description }" }`.
+versionStrings | { [key: string]: string } | `rcedit` version strings. Defaults to `{}`.
 icon | string | .ico icon file relative to the project root. Defaults to `undefined`.
 
 ## build.mac <- [MacConfig](../src/lib/config/MacConfig.ts)
@@ -36,7 +40,7 @@ name | string | Name in `Info.plist`. Defaults to `${ name }`.
 displayName | string | DisplayName in `Info.plist`. Defaults to `${ name }`.
 version | string | Version in `Info.plist`. Defaults to `${ version }`.
 description | string | Description in `InfoPlist.strings`. Defaults to `${ description }`.
-copyright | string | Copyright in `InfoPlist.strings`. Defaults to `""`.
+copyright | string | Copyright in `InfoPlist.strings`. Defaults to `''`.
 icon | string | .icns icon file relative to the project root. Defaults to `undefined`.
 plistStrings | { [key: string]: string } | `plist` strings. Defaults to `{}`.
 

+ 20 - 14
src/lib/Builder.ts

@@ -235,7 +235,13 @@ export class Builder {
             const rc = {
                 'product-version': fixWindowsVersion(config.win.productVersion),
                 'file-version': fixWindowsVersion(config.win.fileVersion),
-                'version-string': config.win.versionStrings,
+                'version-string': {
+                    ProductName: config.win.productName,
+                    CompanyName: config.win.companyName,
+                    FileDescription: config.win.fileDescription,
+                    LegalCopyright: config.win.copyright,
+                    ...config.win.versionStrings,
+                },
                 'icon': config.win.icon ? pathResolve(this.dir, config.win.icon) : undefined,
             };
 
@@ -247,7 +253,7 @@ export class Builder {
     protected renameWinApp(targetDir: string, appRoot: string, pkg: any, config: BuildConfig) {
 
         const src = resolve(targetDir, 'nw.exe');
-        const dest = resolve(targetDir, `${ config.win.versionStrings.ProductName }.exe`);
+        const dest = resolve(targetDir, `${ config.win.productName }.exe`);
 
         return rename(src, dest);
 
@@ -500,11 +506,11 @@ export class Builder {
         const data = await (new NsisDiffer(fromDir, toDir, {
 
             // Basic.
-            appName: config.win.versionStrings.ProductName,
-            companyName: config.win.versionStrings.CompanyName,
-            description: config.win.versionStrings.FileDescription,
+            appName: config.win.productName,
+            companyName: config.win.companyName,
+            description: config.win.fileDescription,
             version: fixWindowsVersion(config.win.productVersion),
-            copyright: config.win.versionStrings.LegalCopyright,
+            copyright: config.win.copyright,
 
             icon: config.nsis.icon ? resolve(this.dir, config.nsis.icon) : undefined,
             unIcon: config.nsis.unIcon ? resolve(this.dir, config.nsis.unIcon) : undefined,
@@ -630,11 +636,11 @@ export class Builder {
         const data = await (new NsisComposer({
 
             // Basic.
-            appName: config.win.versionStrings.ProductName,
-            companyName: config.win.versionStrings.CompanyName,
-            description: config.win.versionStrings.FileDescription,
+            appName: config.win.productName,
+            companyName: config.win.companyName,
+            description: config.win.fileDescription,
             version: fixWindowsVersion(config.win.productVersion),
-            copyright: config.win.versionStrings.LegalCopyright,
+            copyright: config.win.copyright,
 
             icon: config.nsis.icon ? resolve(this.dir, config.nsis.icon) : undefined,
             unIcon: config.nsis.unIcon ? resolve(this.dir, config.nsis.unIcon) : undefined,
@@ -695,11 +701,11 @@ export class Builder {
         const data = await (new Nsis7Zipper(sourceArchive, {
 
             // Basic.
-            appName: config.win.versionStrings.ProductName,
-            companyName: config.win.versionStrings.CompanyName,
-            description: config.win.versionStrings.FileDescription,
+            appName: config.win.productName,
+            companyName: config.win.companyName,
+            description: config.win.fileDescription,
             version: fixWindowsVersion(config.win.productVersion),
-            copyright: config.win.versionStrings.LegalCopyright,
+            copyright: config.win.copyright,
 
             icon: config.nsis.icon ? resolve(this.dir, config.nsis.icon) : undefined,
             unIcon: config.nsis.unIcon ? resolve(this.dir, config.nsis.unIcon) : undefined,

+ 23 - 2
src/lib/config/BuildConfig.ts

@@ -57,8 +57,29 @@ export class BuildConfig {
 
         this.appId = this.appId ? this.appId : `io.github.nwjs.${ pkg.name }`;
 
-        this.win.versionStrings.ProductName = this.win.versionStrings.ProductName ? this.win.versionStrings.ProductName : pkg.name;
-        this.win.versionStrings.FileDescription = this.win.versionStrings.FileDescription ? this.win.versionStrings.FileDescription : pkg.description;
+        if(this.win.versionStrings.ProductName && !this.win.productName) {
+            console.warn('DEPRECATED: build.win.versionStrings.ProductName is deprecated, use build.win.productName instead.');
+            this.win.productName = this.win.versionStrings.ProductName;
+        }
+
+        if(this.win.versionStrings.CompanyName && !this.win.companyName) {
+            console.warn('DEPRECATED: build.win.versionStrings.CompanyName is deprecated, use build.win.companyName instead.');
+            this.win.companyName = this.win.versionStrings.CompanyName;
+        }
+
+        if(this.win.versionStrings.FileDescription && !this.win.fileDescription) {
+            console.warn('DEPRECATED: build.win.versionStrings.FileDescription is deprecated, use build.win.fileDescription instead.');
+            this.win.fileDescription = this.win.versionStrings.FileDescription;
+        }
+
+        if(this.win.versionStrings.LegalCopyright && !this.win.copyright) {
+            console.warn('DEPRECATED: build.win.versionStrings.LegalCopyright is deprecated, use build.win.copyright instead.');
+            this.win.copyright = this.win.versionStrings.LegalCopyright;
+        }
+
+        this.win.productName = this.win.productName ? this.win.productName : pkg.name;
+        this.win.companyName = this.win.companyName ? this.win.companyName : this.win.productName;
+        this.win.fileDescription = this.win.fileDescription ? this.win.fileDescription : pkg.description;
         this.win.productVersion = this.win.productVersion ? this.win.productVersion : pkg.version;
         this.win.fileVersion = this.win.fileVersion ? this.win.fileVersion : this.win.productVersion;
 

+ 4 - 0
src/lib/config/WinConfig.ts

@@ -1,8 +1,12 @@
 
 export class WinConfig {
 
+    public productName: string = '';
+    public companyName: string = '';
+    public fileDescription: string = '';
     public productVersion: string = '';
     public fileVersion: string = '';
+    public copyright: string = '';
     public versionStrings: {
         ProductName?: undefined,
         CompanyName?: undefined,