From cc01c413067bad19e88baa105f1a052f45bb8d8b Mon Sep 17 00:00:00 2001 From: "guo.xu" Date: Fri, 5 Mar 2021 22:30:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B7=B1=E5=BA=A6=E5=8F=AF=E9=80=89conf?= =?UTF-8?q?ig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/exports/create.ts | 14 ++++++++++---- packages/plugin-build-lib/src/plugin/config.ts | 6 ++++-- packages/plugin-build-lib/src/plugin/types.ts | 1 + packages/plugin-cmd-lib/src/plugin.ts | 2 +- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/cli/src/exports/create.ts b/packages/cli/src/exports/create.ts index 62ce9d5..bf25c44 100644 --- a/packages/cli/src/exports/create.ts +++ b/packages/cli/src/exports/create.ts @@ -9,9 +9,15 @@ import type { IPluginAPI } from './pluginAPI' export interface IConfig extends IProjectConfig { libBuild: ILibBuildConfig - lint: Partial - changelog: Partial - release: Partial + lint: ILintConfig + changelog: IChangelogConfig + release: IReleaseConfig +} + +type IDeepPartial = { + [K in keyof T]?: + | (T[K] extends Record ? IDeepPartial : T[K]) + | undefined } export type IPlugin = IPluginBase<(api: IPluginAPI) => void> @@ -23,4 +29,4 @@ export interface IPreset { export const createPlugin = (plugin: IPlugin) => plugin export const createPreset = (preset: IPreset) => preset -export const defineConfig = (config: Partial) => config +export const defineConfig = (config: IDeepPartial) => config diff --git a/packages/plugin-build-lib/src/plugin/config.ts b/packages/plugin-build-lib/src/plugin/config.ts index bb3f337..44347cf 100644 --- a/packages/plugin-build-lib/src/plugin/config.ts +++ b/packages/plugin-build-lib/src/plugin/config.ts @@ -6,12 +6,14 @@ export const libBuildSchema = createSchema((joi) => targets: joi.array(), pointPkgs: joi.array(), pkgOrder: joi.array(), - rollupChain: joi.function() + rollupChain: joi.function(), + rollTypes: joi.boolean() }) ) export const defaultLibBuildConfig: () => ILibBuildConfig = () => { return { - targets: [] + targets: [], + rollTypes: false } } diff --git a/packages/plugin-build-lib/src/plugin/types.ts b/packages/plugin-build-lib/src/plugin/types.ts index 1af19db..d401896 100644 --- a/packages/plugin-build-lib/src/plugin/types.ts +++ b/packages/plugin-build-lib/src/plugin/types.ts @@ -74,4 +74,5 @@ export interface ILibBuildConfig { * shared should be roll before core */ pkgOrder?: string[] + rollTypes?: boolean } diff --git a/packages/plugin-cmd-lib/src/plugin.ts b/packages/plugin-cmd-lib/src/plugin.ts index 891e2ee..c3a21d2 100644 --- a/packages/plugin-cmd-lib/src/plugin.ts +++ b/packages/plugin-cmd-lib/src/plugin.ts @@ -39,7 +39,7 @@ export default createPlugin({ DefaultTargets.includes(target) ) as ILibBuildTargets[] } - if (args?.rollTypes) { + if (args?.rollTypes || config?.rollTypes) { targets.push('rollTypes') }