diff --git a/types/favicons-webpack-plugin/favicons-webpack-plugin-tests.ts b/types/favicons-webpack-plugin/favicons-webpack-plugin-tests.ts new file mode 100644 index 0000000000..1e8498d5f1 --- /dev/null +++ b/types/favicons-webpack-plugin/favicons-webpack-plugin-tests.ts @@ -0,0 +1,51 @@ +import FaviconsWebpackPlugin = require('favicons-webpack-plugin'); + +new FaviconsWebpackPlugin(); + +new FaviconsWebpackPlugin('/path/to/logo.png'); + +const optionsArray: FaviconsWebpackPlugin.Options[] = [ + // Default parameters + { + logo: '/path/to/logo.png', + cache: true, + inject: true, + favicons: {}, + prefix: 'assets/', + }, + // "Advanced Usage" example from documentation + { + logo: '/path/to/logo.png', + cache: true, + publicPath: '/static', + outputPath: '/public/static', + prefix: 'assets/', + inject: true, + favicons: {}, + }, + // "Basic" example from documentation + { + logo: '/path/to/logo.png', + mode: 'webapp', + devMode: 'webapp', + favicons: { + appName: 'my-app', + appDescription: 'My awesome App', + developerName: 'Me', + developerURL: null, + background: '#ddd', + theme_color: '#333', + icons: { + coast: false, + yandex: false, + }, + }, + }, + // "Handling Multiple HTML Files" example from documentation + { + logo: 'logo.svg', + inject: htmlPlugin => htmlPlugin.options.filename === 'a.html', + }, +]; + +const plugins: FaviconsWebpackPlugin[] = optionsArray.map(options => new FaviconsWebpackPlugin(options)); diff --git a/types/favicons-webpack-plugin/index.d.ts b/types/favicons-webpack-plugin/index.d.ts new file mode 100644 index 0000000000..ab680f1bf1 --- /dev/null +++ b/types/favicons-webpack-plugin/index.d.ts @@ -0,0 +1,31 @@ +// Type definitions for favicons-webpack-plugin 1.0 +// Project: https://github.com/jantimon/favicons-webpack-plugin +// Definitions by: Paweł Meller +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +import { Plugin } from 'webpack'; +import { Configuration as FaviconsConfiguration } from 'favicons'; +import HtmlWebpackPlugin = require('html-webpack-plugin'); + +export = FaviconsWebpackPlugin; + +declare class FaviconsWebpackPlugin extends Plugin { + constructor(options?: string | FaviconsWebpackPlugin.Options); +} + +declare namespace FaviconsWebpackPlugin { + type Mode = 'webapp' | 'light'; + + interface Options { + logo: string; + mode?: Mode; + devMode?: Mode; + cache?: boolean; + publicPath?: string; + outputPath?: string; + prefix?: string; + inject?: boolean | ((htmlPlugin: HtmlWebpackPlugin & { options: HtmlWebpackPlugin.Options }) => boolean); + favicons?: Partial; + } +} diff --git a/types/favicons-webpack-plugin/tsconfig.json b/types/favicons-webpack-plugin/tsconfig.json new file mode 100644 index 0000000000..464f854cc3 --- /dev/null +++ b/types/favicons-webpack-plugin/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "favicons-webpack-plugin-tests.ts" + ] +} diff --git a/types/favicons-webpack-plugin/tslint.json b/types/favicons-webpack-plugin/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/favicons-webpack-plugin/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }