@parcel/packager-js 2.15.3 → 2.16.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.
@@ -108,7 +108,28 @@ class DevPackager {
108
108
  if (this.bundleGraph.isDependencySkipped(dep)) {
109
109
  deps[specifier] = false;
110
110
  } else if (resolved) {
111
- deps[specifier] = this.bundleGraph.getAssetPublicId(resolved);
111
+ let assetId = this.bundleGraph.getAssetPublicId(resolved);
112
+ let resolution = assetId;
113
+
114
+ // Dependencies may be re-targeted to follow re-exports.
115
+ // Pass these re-writes into the prelude.
116
+ for (let [name, sym] of dep.symbols) {
117
+ var _sym$meta;
118
+ let rewritten = (_sym$meta = sym.meta) === null || _sym$meta === void 0 ? void 0 : _sym$meta.rewritten;
119
+ if (typeof rewritten === 'string') {
120
+ let r = rewritten === name ? [rewritten, assetId] : [rewritten, assetId, name];
121
+ if (typeof resolution === 'string') {
122
+ resolution = [r];
123
+ } else {
124
+ resolution.push(r);
125
+ }
126
+ }
127
+ }
128
+ if (Array.isArray(deps[specifier]) && Array.isArray(resolution)) {
129
+ deps[specifier].push(...resolution);
130
+ } else {
131
+ deps[specifier] = resolution;
132
+ }
112
133
  } else {
113
134
  // An external module - map placeholder to original specifier.
114
135
  deps[specifier] = dep.specifier;
@@ -118,6 +139,14 @@ class DevPackager {
118
139
  }
119
140
  }
120
141
 
142
+ // Simplify dependency resolutions when all symbols point to a single asset.
143
+ for (let specifier in deps) {
144
+ let resolution = deps[specifier];
145
+ if (Array.isArray(resolution) && resolution.length > 0 && resolution.every(r => r.length === 2 && r[1] === resolution[0][1])) {
146
+ deps[specifier] = resolution[0][1];
147
+ }
148
+ }
149
+
121
150
  // Add dependencies for parcelRequire calls added by runtimes
122
151
  // so that the HMR runtime can correctly traverse parents.
123
152
  let hmrDeps = asset.meta.hmrDeps;
@@ -94,7 +94,54 @@
94
94
 
95
95
  function localRequire(x) {
96
96
  var res = localRequire.resolve(x);
97
- return res === false ? {} : newRequire(res);
97
+ if (res === false) {
98
+ return {};
99
+ }
100
+ // Synthesize a module to follow re-exports.
101
+ if (Array.isArray(res)) {
102
+ var m = {__esModule: true};
103
+ res.forEach(function (v) {
104
+ var key = v[0];
105
+ var id = v[1];
106
+ var exp = v[2] || v[0];
107
+ var x = newRequire(id);
108
+ if (key === '*') {
109
+ Object.keys(x).forEach(function (key) {
110
+ if (
111
+ key === 'default' ||
112
+ key === '__esModule' ||
113
+ Object.prototype.hasOwnProperty.call(m, key)
114
+ ) {
115
+ return;
116
+ }
117
+
118
+ Object.defineProperty(m, key, {
119
+ enumerable: true,
120
+ get: function () {
121
+ return x[key];
122
+ },
123
+ });
124
+ });
125
+ } else if (exp === '*') {
126
+ Object.defineProperty(m, key, {
127
+ enumerable: true,
128
+ value: x,
129
+ });
130
+ } else {
131
+ Object.defineProperty(m, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ if (exp === 'default') {
135
+ return x.__esModule ? x.default : x;
136
+ }
137
+ return x[exp];
138
+ },
139
+ });
140
+ }
141
+ });
142
+ return m;
143
+ }
144
+ return newRequire(res);
98
145
  }
99
146
 
100
147
  function resolve(x) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parcel/packager-js",
3
- "version": "2.15.3",
3
+ "version": "2.16.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,17 +17,17 @@
17
17
  "source": "src/index.js",
18
18
  "engines": {
19
19
  "node": ">= 16.0.0",
20
- "parcel": "^2.15.3"
20
+ "parcel": "^2.16.0"
21
21
  },
22
22
  "dependencies": {
23
- "@parcel/diagnostic": "2.15.3",
24
- "@parcel/plugin": "2.15.3",
25
- "@parcel/rust": "2.15.3",
23
+ "@parcel/diagnostic": "2.16.0",
24
+ "@parcel/plugin": "2.16.0",
25
+ "@parcel/rust": "2.16.0",
26
26
  "@parcel/source-map": "^2.1.1",
27
- "@parcel/types": "2.15.3",
28
- "@parcel/utils": "2.15.3",
27
+ "@parcel/types": "2.16.0",
28
+ "@parcel/utils": "2.16.0",
29
29
  "globals": "^13.24.0",
30
30
  "nullthrows": "^1.1.1"
31
31
  },
32
- "gitHead": "75aa6319c8037ecfbe3dab4ea9b35d10a9a696e3"
32
+ "gitHead": "85181f71eee08f36b16d3ae81d12f32d076953f0"
33
33
  }
@@ -118,7 +118,31 @@ export class DevPackager {
118
118
  if (this.bundleGraph.isDependencySkipped(dep)) {
119
119
  deps[specifier] = false;
120
120
  } else if (resolved) {
121
- deps[specifier] = this.bundleGraph.getAssetPublicId(resolved);
121
+ let assetId = this.bundleGraph.getAssetPublicId(resolved);
122
+ let resolution = assetId;
123
+
124
+ // Dependencies may be re-targeted to follow re-exports.
125
+ // Pass these re-writes into the prelude.
126
+ for (let [name, sym] of dep.symbols) {
127
+ let rewritten = sym.meta?.rewritten;
128
+ if (typeof rewritten === 'string') {
129
+ let r =
130
+ rewritten === name
131
+ ? [rewritten, assetId]
132
+ : [rewritten, assetId, name];
133
+ if (typeof resolution === 'string') {
134
+ resolution = [r];
135
+ } else {
136
+ resolution.push(r);
137
+ }
138
+ }
139
+ }
140
+
141
+ if (Array.isArray(deps[specifier]) && Array.isArray(resolution)) {
142
+ deps[specifier].push(...resolution);
143
+ } else {
144
+ deps[specifier] = resolution;
145
+ }
122
146
  } else {
123
147
  // An external module - map placeholder to original specifier.
124
148
  deps[specifier] = dep.specifier;
@@ -131,6 +155,18 @@ export class DevPackager {
131
155
  }
132
156
  }
133
157
 
158
+ // Simplify dependency resolutions when all symbols point to a single asset.
159
+ for (let specifier in deps) {
160
+ let resolution = deps[specifier];
161
+ if (
162
+ Array.isArray(resolution) &&
163
+ resolution.length > 0 &&
164
+ resolution.every(r => r.length === 2 && r[1] === resolution[0][1])
165
+ ) {
166
+ deps[specifier] = resolution[0][1];
167
+ }
168
+ }
169
+
134
170
  // Add dependencies for parcelRequire calls added by runtimes
135
171
  // so that the HMR runtime can correctly traverse parents.
136
172
  let hmrDeps = asset.meta.hmrDeps;
@@ -94,7 +94,54 @@
94
94
 
95
95
  function localRequire(x) {
96
96
  var res = localRequire.resolve(x);
97
- return res === false ? {} : newRequire(res);
97
+ if (res === false) {
98
+ return {};
99
+ }
100
+ // Synthesize a module to follow re-exports.
101
+ if (Array.isArray(res)) {
102
+ var m = {__esModule: true};
103
+ res.forEach(function (v) {
104
+ var key = v[0];
105
+ var id = v[1];
106
+ var exp = v[2] || v[0];
107
+ var x = newRequire(id);
108
+ if (key === '*') {
109
+ Object.keys(x).forEach(function (key) {
110
+ if (
111
+ key === 'default' ||
112
+ key === '__esModule' ||
113
+ Object.prototype.hasOwnProperty.call(m, key)
114
+ ) {
115
+ return;
116
+ }
117
+
118
+ Object.defineProperty(m, key, {
119
+ enumerable: true,
120
+ get: function () {
121
+ return x[key];
122
+ },
123
+ });
124
+ });
125
+ } else if (exp === '*') {
126
+ Object.defineProperty(m, key, {
127
+ enumerable: true,
128
+ value: x,
129
+ });
130
+ } else {
131
+ Object.defineProperty(m, key, {
132
+ enumerable: true,
133
+ get: function () {
134
+ if (exp === 'default') {
135
+ return x.__esModule ? x.default : x;
136
+ }
137
+ return x[exp];
138
+ },
139
+ });
140
+ }
141
+ });
142
+ return m;
143
+ }
144
+ return newRequire(res);
98
145
  }
99
146
 
100
147
  function resolve(x) {