From b3391633adc16a524787b24963110da76c3293c7 Mon Sep 17 00:00:00 2001 From: Marco Solazzi Date: Thu, 27 Oct 2022 18:52:38 +0900 Subject: [PATCH] feat: support multiple glob patterns (#41) --- README.md | 2 +- src/cli.ts | 2 +- src/make.ts | 2 +- test/index.test.ts | 10 ++++++++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index aa60015..1b3201f 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ While there are tools like [tsc](https://www.typescriptlang.org/docs/handbook/co ## 🚀 Usage ```bash -npx mkdist [rootDir] [--src=src] [--dist=dist] [--pattern=glob] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts] +npx mkdist [rootDir] [--src=src] [--dist=dist] [--pattern=glob [--pattern=more-glob]] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts] ``` ## License diff --git a/src/cli.ts b/src/cli.ts index 4a34bd7..716ab11 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -7,7 +7,7 @@ async function main () { if (args.help) { // eslint-disable-next-line no-console - console.log('Usage: npx mkdist [rootDir] [--src=src] [--dist=dist] [--pattern=glob] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts]') + console.log('Usage: npx mkdist [rootDir] [--src=src] [--dist=dist] [--pattern=glob [--pattern=more-glob]] [--format=cjs|esm] [-d|--declaration] [--ext=mjs|js|ts]') process.exit(0) } diff --git a/src/make.ts b/src/make.ts index 41cd810..9d4341b 100644 --- a/src/make.ts +++ b/src/make.ts @@ -7,7 +7,7 @@ import { getDeclarations } from './utils/dts' export interface MkdistOptions extends LoaderOptions { rootDir?: string srcDir?: string - pattern?: string + pattern?: string | string[] distDir?: string cleanDist?: boolean } diff --git a/test/index.test.ts b/test/index.test.ts index d5b8bc0..cc7d989 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -35,6 +35,16 @@ describe('mkdist', () => { ].map(f => resolve(rootDir, f)).sort()) }) + it('mkdist (multiple glob patterns)', async () => { + const rootDir = resolve(__dirname, 'fixture') + const { writtenFiles } = await mkdist({ rootDir, pattern: ['components/**', '!components/js.vue'] }) + expect(writtenFiles.sort()).toEqual([ + 'dist/components/blank.vue', + 'dist/components/script-setup-ts.vue', + 'dist/components/ts.vue' + ].map(f => resolve(rootDir, f)).sort()) + }) + it('mkdist (emit types)', async () => { const rootDir = resolve(__dirname, 'fixture') const { writtenFiles } = await mkdist({ rootDir, declaration: true })