@atlaspack/core 2.18.4 → 2.18.5

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaspack/core
2
2
 
3
+ ## 2.18.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#652](https://github.com/atlassian-labs/atlaspack/pull/652) [`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix bugs related to build aborts. Builds and cache writes will no longer be aborted.
8
+
9
+ - Updated dependencies [[`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956)]:
10
+ - @atlaspack/feature-flags@2.18.2
11
+ - @atlaspack/cache@3.2.9
12
+ - @atlaspack/fs@2.15.9
13
+ - @atlaspack/graph@3.5.4
14
+ - @atlaspack/utils@2.15.2
15
+ - @atlaspack/package-manager@2.14.14
16
+ - @atlaspack/profiler@2.14.12
17
+ - @atlaspack/types@2.15.4
18
+ - @atlaspack/workers@2.14.14
19
+ - @atlaspack/plugin@2.14.14
20
+
3
21
  ## 2.18.4
4
22
 
5
23
  ### Patch Changes
@@ -779,6 +779,9 @@ class RequestTracker {
779
779
 
780
780
  // TODO: refactor (abortcontroller should be created by RequestTracker)
781
781
  setSignal(signal) {
782
+ if ((0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
783
+ return;
784
+ }
782
785
  this.signal = signal;
783
786
  }
784
787
  startRequest(request) {
@@ -919,7 +922,9 @@ class RequestTracker {
919
922
  options: this.options,
920
923
  rustAtlaspack: this.rustAtlaspack
921
924
  });
922
- (0, _utils2.assertSignalNotAborted)(this.signal);
925
+ if (!(0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
926
+ (0, _utils2.assertSignalNotAborted)(this.signal);
927
+ }
923
928
  this.completeRequest(requestNodeId);
924
929
  deferred.resolve(true);
925
930
  return result;
@@ -27,6 +27,13 @@ var _assetUtils = require("../assetUtils");
27
27
  var _utils = require("../utils");
28
28
  var _projectPath = require("../projectPath");
29
29
  var _RequestTracker = require("../RequestTracker");
30
+ function _featureFlags() {
31
+ const data = require("@atlaspack/feature-flags");
32
+ _featureFlags = function () {
33
+ return data;
34
+ };
35
+ return data;
36
+ }
30
37
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
38
  // A cache of dev dep requests keyed by invalidations.
32
39
  // If the package manager returns the same invalidation object, then
@@ -89,7 +96,20 @@ async function createDevDependency(opts, requestDevDeps, options) {
89
96
  return devDepRequest;
90
97
  }
91
98
  async function getDevDepRequests(api) {
92
- let previousDevDepRequests = new Map(await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, (0, _nullthrows().default)(await api.getRequestResult(req.id))])));
99
+ const previousDevDepRequests = await async function getPreviousDevDepRequests() {
100
+ if ((0, _featureFlags().getFeatureFlag)('fixBuildAbortCorruption')) {
101
+ const allDevDepRequests = await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, await api.getRequestResult(req.id)]));
102
+ const nonNullDevDepRequests = [];
103
+ for (const [id, result] of allDevDepRequests) {
104
+ if (result != null) {
105
+ nonNullDevDepRequests.push([id, result]);
106
+ }
107
+ }
108
+ return new Map(nonNullDevDepRequests);
109
+ } else {
110
+ return new Map(await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, (0, _nullthrows().default)(await api.getRequestResult(req.id))])));
111
+ }
112
+ }();
93
113
  return {
94
114
  devDeps: new Map([...previousDevDepRequests.entries()].filter(([id]) => api.canSkipSubrequest(id)).map(([, req]) => [`${req.specifier}:${(0, _projectPath.fromProjectPathRelative)(req.resolveFrom)}`, req.hash])),
95
115
  invalidDevDeps: await Promise.all([...previousDevDepRequests.entries()].filter(([id]) => !api.canSkipSubrequest(id)).flatMap(([, req]) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.18.4",
3
+ "version": "2.18.5",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,20 +23,20 @@
23
23
  "dependencies": {
24
24
  "@mischnic/json-sourcemap": "^0.1.0",
25
25
  "@atlaspack/build-cache": "2.13.3",
26
- "@atlaspack/cache": "3.2.8",
26
+ "@atlaspack/cache": "3.2.9",
27
27
  "@atlaspack/diagnostic": "2.14.1",
28
28
  "@atlaspack/events": "2.14.1",
29
- "@atlaspack/feature-flags": "2.18.1",
30
- "@atlaspack/fs": "2.15.8",
31
- "@atlaspack/graph": "3.5.3",
29
+ "@atlaspack/feature-flags": "2.18.2",
30
+ "@atlaspack/fs": "2.15.9",
31
+ "@atlaspack/graph": "3.5.4",
32
32
  "@atlaspack/logger": "2.14.11",
33
- "@atlaspack/package-manager": "2.14.13",
34
- "@atlaspack/plugin": "2.14.13",
35
- "@atlaspack/profiler": "2.14.11",
33
+ "@atlaspack/package-manager": "2.14.14",
34
+ "@atlaspack/plugin": "2.14.14",
35
+ "@atlaspack/profiler": "2.14.12",
36
36
  "@atlaspack/rust": "3.3.5",
37
- "@atlaspack/types": "2.15.3",
38
- "@atlaspack/utils": "2.15.1",
39
- "@atlaspack/workers": "2.14.13",
37
+ "@atlaspack/types": "2.15.4",
38
+ "@atlaspack/utils": "2.15.2",
39
+ "@atlaspack/workers": "2.14.14",
40
40
  "@parcel/source-map": "^2.1.1",
41
41
  "base-x": "^3.0.8",
42
42
  "browserslist": "^4.6.6",
@@ -1235,6 +1235,9 @@ export default class RequestTracker {
1235
1235
 
1236
1236
  // TODO: refactor (abortcontroller should be created by RequestTracker)
1237
1237
  setSignal(signal?: AbortSignal) {
1238
+ if (getFeatureFlag('fixBuildAbortCorruption')) {
1239
+ return;
1240
+ }
1238
1241
  this.signal = signal;
1239
1242
  }
1240
1243
 
@@ -1418,7 +1421,10 @@ export default class RequestTracker {
1418
1421
  rustAtlaspack: this.rustAtlaspack,
1419
1422
  });
1420
1423
 
1421
- assertSignalNotAborted(this.signal);
1424
+ if (!getFeatureFlag('fixBuildAbortCorruption')) {
1425
+ assertSignalNotAborted(this.signal);
1426
+ }
1427
+
1422
1428
  this.completeRequest(requestNodeId);
1423
1429
 
1424
1430
  deferred.resolve(true);
@@ -1,4 +1,5 @@
1
- // @flow
1
+ // @flow strict-local
2
+
2
3
  import type {
3
4
  DependencySpecifier,
4
5
  SemverRange,
@@ -24,6 +25,7 @@ import {
24
25
  toProjectPath,
25
26
  } from '../projectPath';
26
27
  import {requestTypes} from '../RequestTracker';
28
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
27
29
 
28
30
  // A cache of dev dep requests keyed by invalidations.
29
31
  // If the package manager returns the same invalidation object, then
@@ -116,17 +118,47 @@ type DevDepRequests = {|
116
118
  export async function getDevDepRequests<TResult: RequestResult>(
117
119
  api: RunAPI<TResult>,
118
120
  ): Promise<DevDepRequests> {
119
- let previousDevDepRequests: Map<string, DevDepRequestResult> = new Map(
120
- await Promise.all(
121
- api
122
- .getSubRequests()
123
- .filter((req) => req.requestType === requestTypes.dev_dep_request)
124
- .map(async (req) => [
125
- req.id,
126
- nullthrows(await api.getRequestResult<DevDepRequestResult>(req.id)),
127
- ]),
128
- ),
129
- );
121
+ async function getPreviousDevDepRequests() {
122
+ if (getFeatureFlag('fixBuildAbortCorruption')) {
123
+ const allDevDepRequests = await Promise.all(
124
+ api
125
+ .getSubRequests()
126
+ .filter((req) => req.requestType === requestTypes.dev_dep_request)
127
+ .map(
128
+ async (
129
+ req,
130
+ ): Promise<[string, DevDepRequestResult | null | void]> => [
131
+ req.id,
132
+ await api.getRequestResult<DevDepRequestResult>(req.id),
133
+ ],
134
+ ),
135
+ );
136
+ const nonNullDevDepRequests = [];
137
+ for (const [id, result] of allDevDepRequests) {
138
+ if (result != null) {
139
+ nonNullDevDepRequests.push([id, result]);
140
+ }
141
+ }
142
+
143
+ return new Map(nonNullDevDepRequests);
144
+ } else {
145
+ return new Map(
146
+ await Promise.all(
147
+ api
148
+ .getSubRequests()
149
+ .filter((req) => req.requestType === requestTypes.dev_dep_request)
150
+ .map(async (req) => [
151
+ req.id,
152
+ nullthrows(
153
+ await api.getRequestResult<DevDepRequestResult>(req.id),
154
+ ),
155
+ ]),
156
+ ),
157
+ );
158
+ }
159
+ }
160
+
161
+ const previousDevDepRequests = await getPreviousDevDepRequests();
130
162
 
131
163
  return {
132
164
  devDeps: new Map(