jiek 1.0.10 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,5 @@
1
- import './base'
2
-
3
1
  import fs from 'node:fs'
4
- import { dirname, relative, resolve } from 'node:path'
2
+ import { dirname, extname, relative, resolve } from 'node:path'
5
3
 
6
4
  import type { RecursiveRecord } from '@jiek/pkger/entrypoints'
7
5
  import { getAllLeafs } from '@jiek/pkger/entrypoints'
@@ -12,6 +10,7 @@ import json from '@rollup/plugin-json'
12
10
  import { nodeResolve } from '@rollup/plugin-node-resolve'
13
11
  import terser from '@rollup/plugin-terser'
14
12
  import { sendMessage } from 'execa'
13
+ import { isMatch } from 'micromatch'
15
14
  import type { InputPluginOption, OutputOptions, OutputPlugin, RollupOptions } from 'rollup'
16
15
  import esbuild from 'rollup-plugin-esbuild'
17
16
  import ts from 'typescript'
@@ -195,9 +194,22 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
195
194
  ? input
196
195
  : recusiveListFiles(process.cwd())
197
196
  .filter(p => /(?<!\.d)\.[cm]?tsx?$/.test(p))
197
+ .map(p => relative(process.cwd(), p))
198
+ .filter(p => isMatch(p, input.slice(2)))
198
199
  const globCommonDir = input.includes('*')
199
- ? input.split('*')[0]
200
+ ? input.split('*')[0].replace('./', '')
201
+ : ''
202
+ const pathCommonDir = path.includes('*')
203
+ ? path.split('*')[0].replace('./', '')
200
204
  : ''
205
+ if (
206
+ (globCommonDir.length > 0 && pathCommonDir.length === 0)
207
+ || (globCommonDir.length === 0 && pathCommonDir.length > 0)
208
+ ) {
209
+ throw new Error('input and path should both include "*" or not include "*"')
210
+ }
211
+ const jsOutputSuffix = extname(output)
212
+ const tsOutputSuffix = jsOutputSuffix.replace(/(\.[cm]?)js$/, '.d$1ts')
201
213
  return [
202
214
  {
203
215
  input: inputObj,
@@ -209,9 +221,9 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
209
221
  interop: 'auto',
210
222
  entryFileNames: (chunkInfo) => (
211
223
  Array.isArray(inputObj)
212
- ? chunkInfo.facadeModuleId!.replace(`${process.cwd()}/`, './')
213
- .replace(globCommonDir, '')
214
- .replace(/(\.[cm]?)ts$/, '$1js')
224
+ ? chunkInfo.facadeModuleId!.replace(`${process.cwd()}/`, '')
225
+ .replace(globCommonDir, pathCommonDir)
226
+ .replace(/(\.[cm]?)ts$/, jsOutputSuffix)
215
227
  : output.replace(`${jsOutdir}/`, '')
216
228
  ),
217
229
  sourcemap: typeof options?.output?.sourcemap === 'object'
@@ -266,12 +278,12 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
266
278
  : options?.output?.sourcemap,
267
279
  entryFileNames: (chunkInfo) => (
268
280
  Array.isArray(inputObj)
269
- ? chunkInfo.facadeModuleId!.replace(`${process.cwd()}/`, './')
270
- .replace(globCommonDir, '')
271
- .replace(/(\.[cm]?)ts$/, '.d$1ts')
281
+ ? chunkInfo.facadeModuleId!.replace(`${process.cwd()}/`, '')
282
+ .replace(globCommonDir, pathCommonDir)
283
+ .replace(/(\.[cm]?)ts$/, tsOutputSuffix)
272
284
  : output
273
285
  .replace(`${jsOutdir}/`, '')
274
- .replace(/(\.[cm]?)js$/, '.d$1ts')
286
+ .replace(/(\.[cm]?)js$/, tsOutputSuffix)
275
287
  ),
276
288
  strict: typeof options?.output?.strict === 'object'
277
289
  ? options.output.strict.dts
@@ -1,4 +1,5 @@
1
1
  import fs from 'node:fs'
2
+ import { createRequire } from 'node:module'
2
3
  import path from 'node:path'
3
4
 
4
5
  import { program } from 'commander'
@@ -8,6 +9,8 @@ import { load } from 'js-yaml'
8
9
  import { getWD } from './getWD'
9
10
  import { tsRegisterName } from './tsRegister'
10
11
 
12
+ const require = createRequire(import.meta.url)
13
+
11
14
  let configName = 'jiek.config'
12
15
 
13
16
  function getConfigPath(root: string, dir?: string) {