@sanity/pkg-utils 1.1.0 → 1.3.1
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.
- package/dist/{_build-f5ddd6ac.cjs → _build-5bf997de.cjs} +131 -16
- package/dist/_build-5bf997de.cjs.map +1 -0
- package/dist/cli.cjs +3 -1
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs +4 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -2
- package/dist/index.js +128 -16
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/src/build/_parseBrowserslistVersions.ts +60 -0
- package/src/build/_parseNodeTarget.ts +15 -0
- package/src/build/_parseTasks.ts +10 -8
- package/src/build/_parseWebTarget.ts +35 -0
- package/src/build/_types.ts +1 -0
- package/src/build/build.ts +28 -14
- package/src/core/_defaults.ts +11 -0
- package/src/core/config/_loadConfig.ts +28 -3
- package/src/core/config/_resolveConfigProperty.ts +3 -1
- package/src/core/config/types.ts +5 -1
- package/src/core/index.ts +1 -0
- package/src/core/pkg/_parseExports.ts +1 -2
- package/src/core/pkg/_types.ts +1 -0
- package/dist/_build-f5ddd6ac.cjs.map +0 -1
|
@@ -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(
|
|
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:
|
|
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 (
|
|
5001
|
-
target.push(
|
|
5078
|
+
if (runtime === "node") {
|
|
5079
|
+
target.push(...ctx.target.node);
|
|
5002
5080
|
}
|
|
5003
|
-
if (
|
|
5004
|
-
target.push(
|
|
5081
|
+
if (runtime === "web") {
|
|
5082
|
+
target.push(...ctx.target.web);
|
|
5005
5083
|
}
|
|
5006
5084
|
for (const f of format) {
|
|
5007
|
-
const buildId = `${
|
|
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
|
|
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);
|
|
@@ -5383,14 +5487,23 @@ async function build(options) {
|
|
|
5383
5487
|
const { path: exportPath, ...exportEntry } = x;
|
|
5384
5488
|
return { ...acc, [exportPath]: exportEntry };
|
|
5385
5489
|
}, {});
|
|
5386
|
-
const exports = (config == null ? void 0 : config.exports
|
|
5387
|
-
const
|
|
5490
|
+
const exports = _resolveConfigProperty(config == null ? void 0 : config.exports, parsedExports);
|
|
5491
|
+
const parsedExternal = [
|
|
5388
5492
|
...pkg.dependencies ? Object.keys(pkg.dependencies) : [],
|
|
5389
5493
|
...pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : []
|
|
5390
5494
|
];
|
|
5391
|
-
const external = (config == null ? void 0 : config.external
|
|
5495
|
+
const external = _resolveConfigProperty(config == null ? void 0 : config.external, parsedExternal);
|
|
5496
|
+
const targetVersions = _parseBrowserslistVersions(pkg.browserslist || _DEFAULTS.browserslist);
|
|
5392
5497
|
const srcPath = path__default["default"].resolve(cwd, (config == null ? void 0 : config.src) || "src");
|
|
5393
5498
|
const distPath = path__default["default"].resolve(cwd, (config == null ? void 0 : config.dist) || "dist");
|
|
5499
|
+
const nodeTarget = _parseNodeTarget(targetVersions);
|
|
5500
|
+
const webTarget = _parseWebTarget(targetVersions);
|
|
5501
|
+
if (!nodeTarget) {
|
|
5502
|
+
throw new Error("no matching `node` target");
|
|
5503
|
+
}
|
|
5504
|
+
if (!webTarget) {
|
|
5505
|
+
throw new Error("no matching `web` target");
|
|
5506
|
+
}
|
|
5394
5507
|
const context = {
|
|
5395
5508
|
config,
|
|
5396
5509
|
cwd,
|
|
@@ -5401,6 +5514,7 @@ async function build(options) {
|
|
|
5401
5514
|
dist: path__default["default"].relative(cwd, distPath),
|
|
5402
5515
|
pkg,
|
|
5403
5516
|
src: path__default["default"].relative(cwd, srcPath),
|
|
5517
|
+
target: { node: nodeTarget, web: webTarget },
|
|
5404
5518
|
tsconfig
|
|
5405
5519
|
};
|
|
5406
5520
|
console.log(chalk__default["default"].gray("cwd "), context.cwd);
|
|
@@ -5425,10 +5539,11 @@ async function build(options) {
|
|
|
5425
5539
|
}
|
|
5426
5540
|
}
|
|
5427
5541
|
|
|
5542
|
+
exports._DEFAULTS = _DEFAULTS;
|
|
5428
5543
|
exports._isRecord = _isRecord;
|
|
5429
5544
|
exports._loadConfig = _loadConfig;
|
|
5430
5545
|
exports._loadPkg = _loadPkg;
|
|
5431
5546
|
exports._parseExports = _parseExports;
|
|
5432
5547
|
exports._resolveConfigProperty = _resolveConfigProperty;
|
|
5433
5548
|
exports.build = build;
|
|
5434
|
-
//# sourceMappingURL=_build-
|
|
5549
|
+
//# sourceMappingURL=_build-5bf997de.cjs.map
|