jiek 0.4.7-alpha.3 → 0.4.7-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,31 +1,35 @@
1
- import fs from 'node:fs';
2
- import path, { resolve, relative, dirname } from 'node:path';
3
- import { resolveEntrypoints, filterLeafs, DEFAULT_SKIP_VALUES, entrypoints2Exports, getAllLeafs } from '@jiek/pkger/entrypoints';
4
- import { dts } from '@jiek/rollup-plugin-dts';
5
- import { isWorkspaceDir, getWorkspaceDir } from '@jiek/utils/getWorkspaceDir';
6
- import json from '@rollup/plugin-json';
7
- import { nodeResolve } from '@rollup/plugin-node-resolve';
8
- import terser from '@rollup/plugin-terser';
9
- import { sendMessage } from 'execa';
10
- import { parse } from 'jsonc-parser';
11
- import { isMatch } from 'micromatch';
12
- import esbuild from 'rollup-plugin-esbuild';
13
- import ts from 'typescript';
14
- import { program } from 'commander';
15
- import { load } from 'js-yaml';
16
- import '@pnpm/filter-workspace-packages';
1
+ 'use strict';
2
+
3
+ var fs = require('node:fs');
4
+ var path = require('node:path');
5
+ var entrypoints = require('@jiek/pkger/entrypoints');
6
+ var rollupPluginDts = require('@jiek/rollup-plugin-dts');
7
+ var getWorkspaceDir = require('@jiek/utils/getWorkspaceDir');
8
+ var json = require('@rollup/plugin-json');
9
+ var pluginNodeResolve = require('@rollup/plugin-node-resolve');
10
+ var terser = require('@rollup/plugin-terser');
11
+ var execa = require('execa');
12
+ var jsoncParser = require('jsonc-parser');
13
+ var micromatch = require('micromatch');
14
+ var esbuild = require('rollup-plugin-esbuild');
15
+ var ts = require('typescript');
16
+ var commander = require('commander');
17
+ var jsYaml = require('js-yaml');
18
+ require('@pnpm/filter-workspace-packages');
17
19
 
18
20
  const intersection = (a, b) => new Set([...a].filter((i) => b.has(i)));
19
21
  function getExports({
20
- entrypoints,
22
+ entrypoints: entrypoints$1,
21
23
  pkgIsModule,
22
24
  entries,
23
25
  config,
24
26
  dir,
25
- noFilter
27
+ noFilter,
28
+ withSource,
29
+ withSuffix
26
30
  }) {
27
- const dirResolve = (...paths) => resolve(dir ?? process.cwd(), ...paths);
28
- const dirRelative = (path) => relative(dir ?? process.cwd(), path);
31
+ const dirResolve = (...paths) => path.resolve(dir ?? process.cwd(), ...paths);
32
+ const dirRelative = (path$1) => path.relative(dir ?? process.cwd(), path$1);
29
33
  const { build = {} } = config ?? {};
30
34
  const {
31
35
  crossModuleConvertor = true
@@ -33,21 +37,21 @@ function getExports({
33
37
  const jsOutdir = `./${dirRelative(dirResolve(
34
38
  (typeof build?.output?.dir === "object" ? build.output.dir.js : build?.output?.dir) ?? "dist"
35
39
  ))}`;
36
- const [, resolvedEntrypoints] = resolveEntrypoints(entrypoints);
40
+ const [, resolvedEntrypoints] = entrypoints.resolveEntrypoints(entrypoints$1);
37
41
  if (entries) {
38
42
  Object.entries(resolvedEntrypoints).forEach(([key]) => {
39
- if (!entries.some((e) => isMatch(key, e, { matchBase: true }))) {
43
+ if (!entries.some((e) => micromatch.isMatch(key, e, { matchBase: true }))) {
40
44
  delete resolvedEntrypoints[key];
41
45
  }
42
46
  });
43
47
  }
44
- const filteredResolvedEntrypoints = noFilter ? resolvedEntrypoints : filterLeafs(
48
+ const filteredResolvedEntrypoints = noFilter ? resolvedEntrypoints : entrypoints.filterLeafs(
45
49
  resolvedEntrypoints,
46
50
  {
47
51
  skipValue: [
48
52
  // ignore values that filename starts with `.jk-noentry`
49
53
  /(^|\/)\.jk-noentry/,
50
- ...DEFAULT_SKIP_VALUES
54
+ ...entrypoints.DEFAULT_SKIP_VALUES
51
55
  ]
52
56
  }
53
57
  );
@@ -63,8 +67,10 @@ function getExports({
63
67
  } : {};
64
68
  return [
65
69
  filteredResolvedEntrypoints,
66
- entrypoints2Exports(filteredResolvedEntrypoints, {
70
+ entrypoints.entrypoints2Exports(filteredResolvedEntrypoints, {
67
71
  outdir: jsOutdir,
72
+ withSource,
73
+ withSuffix,
68
74
  withConditional: {
69
75
  ...crossModuleWithConditional
70
76
  }
@@ -76,7 +82,7 @@ let root;
76
82
  function getRoot() {
77
83
  if (root)
78
84
  return root;
79
- const rootOption = program.getOptionValue("root");
85
+ const rootOption = commander.program.getOptionValue("root");
80
86
  root = rootOption ? path.isAbsolute(rootOption) ? rootOption : path.resolve(process.cwd(), rootOption) : void 0;
81
87
  return root;
82
88
  }
@@ -88,7 +94,7 @@ try {
88
94
  } catch {
89
95
  }
90
96
  if (type !== "") {
91
- program.option("-f, --filter <filter>", "filter packages");
97
+ commander.program.option("-f, --filter <filter>", "filter packages");
92
98
  }
93
99
 
94
100
  let wd;
@@ -98,13 +104,13 @@ function getWD() {
98
104
  return { wd, notWorkspace };
99
105
  const root = getRoot();
100
106
  if (root !== void 0) {
101
- const isWorkspace = isWorkspaceDir(root, type);
107
+ const isWorkspace = getWorkspaceDir.isWorkspaceDir(root, type);
102
108
  notWorkspace = !isWorkspace;
103
109
  wd = root;
104
110
  return { wd, notWorkspace };
105
111
  }
106
112
  try {
107
- wd = getWorkspaceDir(type);
113
+ wd = getWorkspaceDir.getWorkspaceDir(type);
108
114
  } catch (e) {
109
115
  if ("message" in e && e.message === "workspace root not found") {
110
116
  wd = root;
@@ -171,7 +177,7 @@ function getConfigPath(root, dir) {
171
177
  }
172
178
  function loadConfig(dir) {
173
179
  const { wd: root } = getWD();
174
- let configPath = program.getOptionValue("configPath");
180
+ let configPath = commander.program.getOptionValue("configPath");
175
181
  if (!configPath) {
176
182
  configPath = getConfigPath(root, dir);
177
183
  } else {
@@ -191,7 +197,7 @@ function loadConfig(dir) {
191
197
  case ".json":
192
198
  return require(configPath);
193
199
  case ".yaml":
194
- return load(fs.readFileSync(configPath, "utf-8"));
200
+ return jsYaml.load(fs.readFileSync(configPath, "utf-8"));
195
201
  case ".ts":
196
202
  if (tsRegisterName) {
197
203
  require(tsRegisterName);
@@ -260,21 +266,21 @@ const {
260
266
  JIEK_ROOT,
261
267
  JIEK_ENTRIES
262
268
  } = process.env;
263
- const WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir();
269
+ const WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir.getWorkspaceDir();
264
270
  const COMMON_OPTIONS = {};
265
271
  const COMMON_PLUGINS = [
266
272
  json()
267
273
  ];
268
274
  const config = loadConfig() ?? {};
269
275
  const { build = {} } = config;
270
- const jsOutdir = `./${relative(
276
+ const jsOutdir = `./${path.relative(
271
277
  process.cwd(),
272
- resolve(
278
+ path.resolve(
273
279
  (typeof build?.output?.dir === "object" ? build.output.dir.js : build?.output?.dir) ?? "dist"
274
280
  )
275
281
  )}`;
276
282
  const STYLE_REGEXP = /\.(css|s[ac]ss|less|styl)$/;
277
- const resolveWorkspacePath = (p) => resolve(WORKSPACE_ROOT, p);
283
+ const resolveWorkspacePath = (p) => path.resolve(WORKSPACE_ROOT, p);
278
284
  const pascalCase = (str) => str.replace(/[@|/-](\w)/g, (_, $1) => $1.toUpperCase()).replace(/(?:^|-)(\w)/g, (_, $1) => $1.toUpperCase());
279
285
  const reveal = (obj, keys) => keys.reduce((acc, key) => {
280
286
  if (typeof acc === "string")
@@ -303,12 +309,12 @@ const withMinify = (output, minify = build?.output?.minify) => minify === false
303
309
  ]
304
310
  }
305
311
  ];
306
- const getTSConfig = (p) => !fs.existsSync(p) || !fs.statSync(p).isFile() ? {} : parse(fs.readFileSync(p, "utf-8"), [], { allowTrailingComma: true, allowEmptyContent: true });
312
+ const getTSConfig = (p) => !fs.existsSync(p) || !fs.statSync(p).isFile() ? {} : jsoncParser.parse(fs.readFileSync(p, "utf-8"), [], { allowTrailingComma: true, allowEmptyContent: true });
307
313
  const getExtendTSConfig = (tsconfigPath) => {
308
- tsconfigPath = resolve(tsconfigPath);
309
- const tsconfigPathDirname = dirname(tsconfigPath);
314
+ tsconfigPath = path.resolve(tsconfigPath);
315
+ const tsconfigPathDirname = path.dirname(tsconfigPath);
310
316
  const { extends: exts, ...tsconfig } = getTSConfig(tsconfigPath);
311
- const resolvePaths = (paths) => paths?.map((p) => resolve(tsconfigPathDirname, p)) ?? [];
317
+ const resolvePaths = (paths) => paths?.map((p) => path.resolve(tsconfigPathDirname, p)) ?? [];
312
318
  const extendsPaths = resolvePaths(
313
319
  exts ? Array.isArray(exts) ? exts : [exts] : []
314
320
  );
@@ -324,11 +330,11 @@ const getExtendTSConfig = (tsconfigPath) => {
324
330
  }), tsconfig);
325
331
  };
326
332
  const getCompilerOptionsByFilePath = (tsconfigPath, filePath) => {
327
- tsconfigPath = resolve(tsconfigPath);
328
- filePath = resolve(filePath);
329
- const tsconfigPathDirname = dirname(tsconfigPath);
333
+ tsconfigPath = path.resolve(tsconfigPath);
334
+ filePath = path.resolve(filePath);
335
+ const tsconfigPathDirname = path.dirname(tsconfigPath);
330
336
  const tsconfig = getExtendTSConfig(tsconfigPath);
331
- const resolvePaths = (paths) => paths?.map((p) => resolve(tsconfigPathDirname, p)) ?? [];
337
+ const resolvePaths = (paths) => paths?.map((p) => path.resolve(tsconfigPathDirname, p)) ?? [];
332
338
  const [
333
339
  references,
334
340
  files,
@@ -340,13 +346,13 @@ const getCompilerOptionsByFilePath = (tsconfigPath, filePath) => {
340
346
  tsconfig.include,
341
347
  tsconfig.exclude
342
348
  ].map(resolvePaths);
343
- if (exclude.length > 0 && exclude.some((i) => isMatch(filePath, i)))
349
+ if (exclude.length > 0 && exclude.some((i) => micromatch.isMatch(filePath, i)))
344
350
  return;
345
351
  if (tsconfig.files?.length === 0 && tsconfig.include?.length === 0)
346
352
  return;
347
353
  let isInclude = false;
348
354
  isInclude || (isInclude = files.length > 0 && files.includes(filePath));
349
- isInclude || (isInclude = include.length > 0 && include.some((i) => isMatch(filePath, i)));
355
+ isInclude || (isInclude = include.length > 0 && include.some((i) => micromatch.isMatch(filePath, i)));
350
356
  if (isInclude) {
351
357
  return tsconfig.compilerOptions ?? {};
352
358
  } else {
@@ -362,7 +368,7 @@ const getCompilerOptionsByFilePath = (tsconfigPath, filePath) => {
362
368
  return tsconfig.compilerOptions;
363
369
  };
364
370
  const generateConfigs = ({
365
- path,
371
+ path: path$1,
366
372
  name,
367
373
  input,
368
374
  output,
@@ -385,10 +391,10 @@ const generateConfigs = ({
385
391
  });
386
392
  let compilerOptions = {};
387
393
  if (dtsTSConfigPath) {
388
- const jsonCompilerOptions = getCompilerOptionsByFilePath(dtsTSConfigPath, resolve(input));
394
+ const jsonCompilerOptions = getCompilerOptionsByFilePath(dtsTSConfigPath, path.resolve(input));
389
395
  const { options: options2, errors } = ts.convertCompilerOptionsFromJson(
390
396
  jsonCompilerOptions,
391
- dirname(dtsTSConfigPath)
397
+ path.dirname(dtsTSConfigPath)
392
398
  );
393
399
  if (errors.length > 0) {
394
400
  throw new Error(errors.map((e) => e.messageText).join("\n"));
@@ -398,7 +404,7 @@ const generateConfigs = ({
398
404
  const exportConditions = [...conditionals, ...compilerOptions.customConditions ?? []];
399
405
  const throughEventProps = {
400
406
  type: "progress",
401
- data: { name, path, exportConditions, input }
407
+ data: { name, path: path$1, exportConditions, input }
402
408
  };
403
409
  const outdir = options?.output?.dir;
404
410
  return [
@@ -415,16 +421,16 @@ const generateConfigs = ({
415
421
  })
416
422
  ],
417
423
  plugins: [
418
- nodeResolve({ exportConditions }),
424
+ pluginNodeResolve.nodeResolve({ exportConditions }),
419
425
  import('rollup-plugin-postcss').then(
420
426
  ({ default: postcss }) => postcss({
421
- extract: resolve(output.replace(/\.[cm]?js$/, ".css")),
427
+ extract: path.resolve(output.replace(/\.[cm]?js$/, ".css")),
422
428
  minimize: true
423
429
  })
424
430
  ).catch(() => void 0),
425
431
  esbuild(),
426
432
  progress({
427
- onEvent: (event, message) => sendMessage(
433
+ onEvent: (event, message) => execa.sendMessage(
428
434
  {
429
435
  ...throughEventProps,
430
436
  data: { ...throughEventProps.data, event, message, tags: ["js"] }
@@ -438,21 +444,21 @@ const generateConfigs = ({
438
444
  external,
439
445
  output: [
440
446
  {
441
- dir: resolve((typeof outdir === "object" ? outdir.dts : outdir) ?? "dist"),
447
+ dir: path.resolve((typeof outdir === "object" ? outdir.dts : outdir) ?? "dist"),
442
448
  sourcemap: typeof options?.output?.sourcemap === "object" ? options.output.sourcemap.dts : options?.output?.sourcemap,
443
449
  entryFileNames: () => output.replace(`${jsOutdir}/`, "").replace(/(\.[cm]?)js$/, ".d$1ts"),
444
450
  strict: typeof options?.output?.strict === "object" ? options.output.strict.dts : options?.output?.strict
445
451
  }
446
452
  ],
447
453
  plugins: [
448
- nodeResolve({ exportConditions }),
454
+ pluginNodeResolve.nodeResolve({ exportConditions }),
449
455
  skip({ patterns: [STYLE_REGEXP] }),
450
- dts({
456
+ rollupPluginDts.dts({
451
457
  respectExternal: true,
452
458
  compilerOptions
453
459
  }),
454
460
  progress({
455
- onEvent: (event, message) => sendMessage(
461
+ onEvent: (event, message) => execa.sendMessage(
456
462
  {
457
463
  ...throughEventProps,
458
464
  data: { ...throughEventProps.data, event, message, tags: ["dts"] }
@@ -464,11 +470,11 @@ const generateConfigs = ({
464
470
  ];
465
471
  };
466
472
  function template(packageJSON) {
467
- const { name, type, exports: entrypoints } = packageJSON;
473
+ const { name, type, exports: entrypoints$1 } = packageJSON;
468
474
  const pkgIsModule = type === "module";
469
475
  if (!name)
470
476
  throw new Error("package.json name is required");
471
- if (!entrypoints)
477
+ if (!entrypoints$1)
472
478
  throw new Error("package.json exports is required");
473
479
  const entries = JIEK_ENTRIES?.split(",").map((e) => e.trim()).map((e) => ({
474
480
  "index": "."
@@ -476,13 +482,13 @@ function template(packageJSON) {
476
482
  const packageName = pascalCase(name);
477
483
  const external = externalResolver(packageJSON);
478
484
  const [filteredResolvedEntrypoints, exports] = getExports({
479
- entrypoints,
485
+ entrypoints: entrypoints$1,
480
486
  pkgIsModule,
481
487
  entries,
482
488
  config
483
489
  });
484
490
  const leafMap = /* @__PURE__ */ new Map();
485
- getAllLeafs(filteredResolvedEntrypoints, ({ keys, value }) => {
491
+ entrypoints.getAllLeafs(filteredResolvedEntrypoints, ({ keys, value }) => {
486
492
  if (typeof value === "string") {
487
493
  const keysArr = leafMap.get(value) ?? [];
488
494
  leafMap.set(value, keysArr);
@@ -513,7 +519,7 @@ function template(packageJSON) {
513
519
  break;
514
520
  }
515
521
  case "object": {
516
- getAllLeafs(keyExports, ({ keys: nextKeys, value }) => {
522
+ entrypoints.getAllLeafs(keyExports, ({ keys: nextKeys, value }) => {
517
523
  const allConditionals = [.../* @__PURE__ */ new Set([...conditionals, ...nextKeys])];
518
524
  if (typeof value === "string") {
519
525
  configs.push(...generateConfigs({
@@ -529,7 +535,7 @@ function template(packageJSON) {
529
535
  }
530
536
  })
531
537
  );
532
- sendMessage(
538
+ execa.sendMessage(
533
539
  {
534
540
  type: "init",
535
541
  data: {
@@ -548,4 +554,4 @@ function template(packageJSON) {
548
554
  }));
549
555
  }
550
556
 
551
- export { template };
557
+ exports.template = template;