UNPKG

liferay-npm-bundler-preset-reactjs

Version:

liferay npm bundler preset react

75 lines (59 loc) 1.75 kB
/** * SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com> * SPDX-License-Identifier: LGPL-3.0-or-later */ import Manifest from '../manifest'; import PkgDesc from '../pkg-desc'; import PluginLogger from '../plugin-logger'; /** * The IPC object passed to all babel plugins through the `babelIpc` mechanism * (see `liferay-npm-build-tools-common/lib/babel-ipc` module). */ export interface BabelIpcObject { globalConfig: object; log: PluginLogger; manifest: Manifest; rootPkgJson: object; } /** * A bundler plugin entry point. * * @remarks * Note that the signature for every type of plugin is the same, but the second * argument `state` is different for each plugin type. * * @see BundlerCopyPluginState * @see BundlerTransformPluginState */ export interface BundlerPluginEntryPoint<T> { (params: BundlerPluginParams, state: T): void; } /** * Parameters passed as first argument to bundler plugins. */ export interface BundlerPluginParams { /** Config for plugin */ config: object; /** Global configuration (`config` section of `.npmbundlerrc`) */ globalConfig: object; /** A logger object to write messages to the report file */ log: PluginLogger; /** Destination package descriptor */ pkg: PkgDesc; /** Contents of project's package.json file */ rootPkgJson: object; source: { /** Source package descriptor */ pkg: PkgDesc; }; } /** State parameter type for copy plugins */ export interface BundlerCopyPluginState { /** File paths (relative to package directory) */ files: string[]; } /** State parameter type for transformation plugins */ export interface BundlerTransformPluginState { /** The contents of the package.json file for the transformed package */ pkgJson: object; }