From bd077756e843615e704ca061dff2cc58ea1963b8 Mon Sep 17 00:00:00 2001 From: davidfant Date: Thu, 6 Aug 2020 02:26:41 +0200 Subject: [PATCH] Emit TS type declarations, and type NativefierOptions (#1016) This PR adds better Typescript support when using the Node module directly: 1. Generate type declarations when running `tsc` 2. Created the `NativefierOptions` type for the `buildNativefierApp` function instead of using `any` --- src/build/buildNativefierApp.ts | 6 ++++-- src/options/model.ts | 4 ++++ tsconfig.json | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/build/buildNativefierApp.ts b/src/build/buildNativefierApp.ts index 2f42a2c..d29138b 100644 --- a/src/build/buildNativefierApp.ts +++ b/src/build/buildNativefierApp.ts @@ -9,7 +9,7 @@ import { isWindows, getTempDir, copyFileOrDir } from '../helpers/helpers'; import { getOptions } from '../options/optionsMain'; import { prepareElectronApp } from './prepareElectronApp'; import { convertIconIfNecessary } from './buildIcon'; -import { AppOptions } from '../options/model'; +import { AppOptions, NativefierOptions } from '../options/model'; const OPTIONS_REQUIRING_WINDOWS_FOR_WINDOWS_BUILD = [ 'icon', @@ -99,7 +99,9 @@ function trimUnprocessableOptions(options: AppOptions): void { } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types -export async function buildNativefierApp(rawOptions: any): Promise { +export async function buildNativefierApp( + rawOptions: NativefierOptions, +): Promise { log.info('Processing options...'); const options = await getOptions(rawOptions); diff --git a/src/options/model.ts b/src/options/model.ts index fe866b7..dc480ae 100644 --- a/src/options/model.ts +++ b/src/options/model.ts @@ -56,3 +56,7 @@ export interface AppOptions { zoom: number; }; } + +export type NativefierOptions = Partial< + AppOptions['packager'] & AppOptions['nativefier'] +>; diff --git a/tsconfig.json b/tsconfig.json index 2f93f01..a2ad6d3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "allowJs": false, - "declaration": false, + "declaration": true, "incremental": true, "module": "commonjs", "moduleResolution": "node",