@sanity/pkg-utils 1.0.1 → 1.3.0

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.
@@ -6,7 +6,9 @@ var require$$1 = require('fs');
6
6
  var require$$2 = require('module');
7
7
  var require$$3 = require('esbuild');
8
8
  var require$$4 = require('process');
9
+ var findConfig = require('find-config');
9
10
  var pkgUp = require('pkg-up');
11
+ var browserslist = require('browserslist');
10
12
  var util = require('util');
11
13
  var rimrafCallback = require('rimraf');
12
14
  var ts = require('typescript');
@@ -30,7 +32,9 @@ var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
30
32
  var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
31
33
  var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3);
32
34
  var require$$4__default = /*#__PURE__*/_interopDefaultLegacy(require$$4);
35
+ var findConfig__default = /*#__PURE__*/_interopDefaultLegacy(findConfig);
33
36
  var pkgUp__default = /*#__PURE__*/_interopDefaultLegacy(pkgUp);
37
+ var browserslist__default = /*#__PURE__*/_interopDefaultLegacy(browserslist);
34
38
  var rimrafCallback__default = /*#__PURE__*/_interopDefaultLegacy(rimrafCallback);
35
39
  var ts__default = /*#__PURE__*/_interopDefaultLegacy(ts);
36
40
  var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
@@ -39,6 +43,15 @@ var commonjs__default = /*#__PURE__*/_interopDefaultLegacy(commonjs);
39
43
  var json__default = /*#__PURE__*/_interopDefaultLegacy(json);
40
44
  var esbuild__default = /*#__PURE__*/_interopDefaultLegacy(esbuild);
41
45
 
46
+ const _DEFAULTS = {
47
+ browserslist: [
48
+ "> 0.2% and supports es6-module and supports es6-module-dynamic-import",
49
+ "not dead",
50
+ "not IE 11",
51
+ "maintained node versions"
52
+ ]
53
+ };
54
+
42
55
  function _isRecord(value) {
43
56
  return Boolean(value) && !Array.isArray(value) && typeof value === "object";
44
57
  }
@@ -4913,17 +4926,32 @@ async function _loadConfig(options) {
4913
4926
  if (!pkgPath)
4914
4927
  return void 0;
4915
4928
  const root = path__default["default"].dirname(pkgPath);
4929
+ const configFile = _findConfigFile(root);
4930
+ if (!configFile) {
4931
+ return void 0;
4932
+ }
4916
4933
  try {
4917
- const { unregister } = node.register({ extensions: [".js", ".ts"] });
4918
- const mod = require(path__default["default"].resolve(root, "package.config.ts"));
4934
+ const { unregister } = configFile.transform ? node.register({ extensions: [".js", ".ts"] }) : { unregister: () => void 0 };
4935
+ const mod = require(configFile.path);
4919
4936
  unregister();
4920
- return mod.default;
4937
+ return (mod == null ? void 0 : mod.default) || mod || void 0;
4921
4938
  } catch (_) {
4922
4939
  return void 0;
4923
4940
  }
4924
4941
  }
4942
+ function _findConfigFile(cwd) {
4943
+ const ts = findConfig__default["default"]("package.config.ts", { cwd });
4944
+ if (ts)
4945
+ return { path: ts, transform: true };
4946
+ const cjs = findConfig__default["default"]("package.config.cjs", { cwd });
4947
+ if (cjs)
4948
+ return { path: cjs, transform: false };
4949
+ return null;
4950
+ }
4925
4951
 
4926
4952
  function _resolveConfigProperty(prop, initialValue) {
4953
+ if (!prop)
4954
+ return initialValue;
4927
4955
  if (typeof prop === "function") {
4928
4956
  return prop(initialValue);
4929
4957
  }
@@ -4939,7 +4967,7 @@ async function _loadPkg(options) {
4939
4967
  function _parseExports(pkg) {
4940
4968
  const rootExport = {
4941
4969
  path: ".",
4942
- runtime: "web",
4970
+ runtime: void 0,
4943
4971
  source: pkg.source || "index.js",
4944
4972
  require: pkg.main,
4945
4973
  default: pkg.module,
@@ -4954,7 +4982,6 @@ function _parseExports(pkg) {
4954
4982
  } else {
4955
4983
  extraExports.push({
4956
4984
  path: exportPath,
4957
- runtime: "web",
4958
4985
  source: exportEntry.source,
4959
4986
  ...exportEntry
4960
4987
  });
@@ -4967,8 +4994,58 @@ function _parseExports(pkg) {
4967
4994
  return [rootExport, ...extraExports];
4968
4995
  }
4969
4996
 
4997
+ function _sortAsNumber(a, b) {
4998
+ const aVersion = Number(a);
4999
+ const bVersion = Number(b);
5000
+ return aVersion - bVersion;
5001
+ }
5002
+ function _parseBrowserslistVersions(query) {
5003
+ const result = browserslist__default["default"](query);
5004
+ const entries = result.map((key) => {
5005
+ const [name, version] = key.split(" ");
5006
+ return { name, version: version.split("-")[0].split(".")[0] };
5007
+ });
5008
+ const andChr = entries.filter((b) => b.name === "and_chr");
5009
+ const andFf = entries.filter((b) => b.name === "and_ff");
5010
+ const chrome = entries.filter((b) => b.name === "chrome");
5011
+ const edge = entries.filter((b) => b.name === "edge");
5012
+ const ff = entries.filter((b) => b.name === "firefox");
5013
+ const iosSaf = entries.filter((b) => b.name === "ios_saf");
5014
+ const saf = entries.filter((b) => b.name === "safari");
5015
+ const opera = entries.filter((b) => b.name === "opera");
5016
+ const node = entries.filter((b) => b.name === "node");
5017
+ const versions = {
5018
+ chrome: andChr.concat(chrome).map((b) => b.version),
5019
+ ff: andFf.concat(ff).map((b) => b.version),
5020
+ edge: edge.map((b) => b.version),
5021
+ iosSaf: iosSaf.map((b) => b.version),
5022
+ saf: saf.map((b) => b.version),
5023
+ opera: opera.map((b) => b.version),
5024
+ node: node.map((b) => b.version)
5025
+ };
5026
+ versions.chrome.sort(_sortAsNumber);
5027
+ versions.ff.sort(_sortAsNumber);
5028
+ versions.edge.sort(_sortAsNumber);
5029
+ versions.iosSaf.sort(_sortAsNumber);
5030
+ versions.saf.sort(_sortAsNumber);
5031
+ versions.opera.sort(_sortAsNumber);
5032
+ versions.node.sort(_sortAsNumber);
5033
+ return versions;
5034
+ }
5035
+
5036
+ function _parseNodeTarget(versions) {
5037
+ const target = [];
5038
+ if (versions.node.length) {
5039
+ target.push(`node${versions.node[0]}`);
5040
+ }
5041
+ if (target.length === 0) {
5042
+ return void 0;
5043
+ }
5044
+ return target;
5045
+ }
5046
+
4970
5047
  function _parseTasks(ctx) {
4971
- const { pkg } = ctx;
5048
+ const { config, pkg } = ctx;
4972
5049
  const entries = Object.entries(ctx.exports || {}).map(
4973
5050
  ([path2, entry]) => ({ path: path2, ...entry })
4974
5051
  );
@@ -4989,6 +5066,7 @@ function _parseTasks(ctx) {
4989
5066
  }
4990
5067
  }
4991
5068
  for (const entry of entries) {
5069
+ const runtime = entry.runtime || (config == null ? void 0 : config.runtime) || "web";
4992
5070
  const format = [];
4993
5071
  const target = [];
4994
5072
  if (entry.require) {
@@ -4997,20 +5075,20 @@ function _parseTasks(ctx) {
4997
5075
  if (entry.default) {
4998
5076
  format.push("esm");
4999
5077
  }
5000
- if (entry.runtime === "node") {
5001
- target.push("node12");
5078
+ if (runtime === "node") {
5079
+ target.push(...ctx.target.node);
5002
5080
  }
5003
- if (entry.runtime === "web") {
5004
- target.push("chrome104");
5081
+ if (runtime === "web") {
5082
+ target.push(...ctx.target.web);
5005
5083
  }
5006
5084
  for (const f of format) {
5007
- const buildId = `${entry.runtime}:${f}:${target.join(",")}`;
5085
+ const buildId = `${runtime}:${f}:${target.join(",")}`;
5008
5086
  if (!rollupTasks[buildId]) {
5009
5087
  rollupTasks[buildId] = {
5010
5088
  type: "rollup",
5011
5089
  buildId,
5012
5090
  entries: [entry],
5013
- runtime: entry.runtime,
5091
+ runtime,
5014
5092
  format: f,
5015
5093
  target
5016
5094
  };
@@ -5029,6 +5107,32 @@ function _parseTasks(ctx) {
5029
5107
  return tasks;
5030
5108
  }
5031
5109
 
5110
+ function _parseWebTarget(versions) {
5111
+ const target = [];
5112
+ if (versions.chrome.length) {
5113
+ target.push(`chrome${versions.chrome[0]}`);
5114
+ }
5115
+ if (versions.ff.length) {
5116
+ target.push(`firefox${versions.ff[0]}`);
5117
+ }
5118
+ if (versions.edge.length) {
5119
+ target.push(`edge${versions.edge[0]}`);
5120
+ }
5121
+ if (versions.iosSaf.length) {
5122
+ target.push(`ios${versions.iosSaf[0]}`);
5123
+ }
5124
+ if (versions.saf.length) {
5125
+ target.push(`safari${versions.saf[0]}`);
5126
+ }
5127
+ if (versions.opera.length) {
5128
+ target.push(`opera${versions.opera[0]}`);
5129
+ }
5130
+ if (target.length === 0) {
5131
+ return void 0;
5132
+ }
5133
+ return target;
5134
+ }
5135
+
5032
5136
  async function _loadTSConfig(options) {
5033
5137
  const { cwd, tsconfigPath } = options;
5034
5138
  const configPath = ts__default["default"].findConfigFile(cwd, ts__default["default"].sys.fileExists, tsconfigPath);
@@ -5218,13 +5322,14 @@ const rimraf = util.promisify(rimrafCallback__default["default"]);
5218
5322
  async function _dtsTask(ctx, task) {
5219
5323
  const { cwd, dist, files, tsconfig } = ctx;
5220
5324
  const exportPath = task.exportPath === "." ? "./index" : task.exportPath;
5325
+ const distPath = path__default["default"].resolve(cwd, dist);
5326
+ const tmpPath = path__default["default"].resolve(cwd, dist, "tmp");
5327
+ const tsconfigPath = path__default["default"].resolve(cwd, tsconfig || "tsconfig.json");
5221
5328
  console.log("=================================================================================");
5222
5329
  console.log(chalk__default["default"].gray("task "), "d.ts");
5223
5330
  console.log(chalk__default["default"].gray("source "), path__default["default"].join("", task.source));
5224
5331
  console.log(chalk__default["default"].gray("export "), path__default["default"].join(dist, `${exportPath}.d.ts`));
5225
- const distPath = path__default["default"].resolve(cwd, dist);
5226
- const tmpPath = path__default["default"].resolve(cwd, dist, "tmp");
5227
- const tsconfigPath = path__default["default"].resolve(cwd, tsconfig || "tsconfig.json");
5332
+ console.log(chalk__default["default"].gray("tsconfig "), path__default["default"].relative(cwd, tsconfigPath));
5228
5333
  const types = await _buildTypes({
5229
5334
  cwd,
5230
5335
  outDir: tmpPath,
@@ -5382,12 +5487,13 @@ async function build(options) {
5382
5487
  const { path: exportPath, ...exportEntry } = x;
5383
5488
  return { ...acc, [exportPath]: exportEntry };
5384
5489
  }, {});
5385
- const exports = (config == null ? void 0 : config.exports) ? _resolveConfigProperty(config.exports, parsedExports) : parsedExports;
5386
- const initialExternal = [
5490
+ const exports = _resolveConfigProperty(config == null ? void 0 : config.exports, parsedExports);
5491
+ const parsedExternal = [
5387
5492
  ...pkg.dependencies ? Object.keys(pkg.dependencies) : [],
5388
5493
  ...pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []
5389
5494
  ];
5390
- const external = (config == null ? void 0 : config.external) ? _resolveConfigProperty(config.external, initialExternal) : initialExternal;
5495
+ const external = _resolveConfigProperty(config == null ? void 0 : config.external, parsedExternal);
5496
+ const targetVersions = _parseBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist);
5391
5497
  const srcPath = path__default["default"].resolve(cwd, (config == null ? void 0 : config.src) || "src");
5392
5498
  const distPath = path__default["default"].resolve(cwd, (config == null ? void 0 : config.dist) || "dist");
5393
5499
  const context = {
@@ -5400,6 +5506,10 @@ async function build(options) {
5400
5506
  dist: path__default["default"].relative(cwd, distPath),
5401
5507
  pkg,
5402
5508
  src: path__default["default"].relative(cwd, srcPath),
5509
+ target: {
5510
+ node: _parseNodeTarget(targetVersions) || _DEFAULTS.target.node,
5511
+ web: _parseWebTarget(targetVersions) || _DEFAULTS.target.web
5512
+ },
5403
5513
  tsconfig
5404
5514
  };
5405
5515
  console.log(chalk__default["default"].gray("cwd "), context.cwd);
@@ -5424,10 +5534,11 @@ async function build(options) {
5424
5534
  }
5425
5535
  }
5426
5536
 
5537
+ exports._DEFAULTS = _DEFAULTS;
5427
5538
  exports._isRecord = _isRecord;
5428
5539
  exports._loadConfig = _loadConfig;
5429
5540
  exports._loadPkg = _loadPkg;
5430
5541
  exports._parseExports = _parseExports;
5431
5542
  exports._resolveConfigProperty = _resolveConfigProperty;
5432
5543
  exports.build = build;
5433
- //# sourceMappingURL=_build-98ad789a.cjs.map
5544
+ //# sourceMappingURL=_build-f08e1020.cjs.map