@atlaspack/core 2.16.2-canary.103 → 2.16.2-canary.105

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/lib/Atlaspack.js CHANGED
@@ -226,6 +226,11 @@ class Atlaspack {
226
226
  });
227
227
  }
228
228
  this.rustAtlaspack = rustAtlaspack;
229
+ if (featureFlags.atlaspackV3CleanShutdown) {
230
+ this.#disposable.add(() => {
231
+ rustAtlaspack.end();
232
+ });
233
+ }
229
234
  let {
230
235
  config
231
236
  } = await (0, _AtlaspackConfigRequest.loadAtlaspackConfig)(resolvedOptions);
@@ -21,21 +21,28 @@ function _diagnostic() {
21
21
  }
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  class AtlaspackV3 {
24
- constructor(atlaspack_napi) {
24
+ constructor(atlaspack_napi, napiWorkerPool, isDefaultNapiWorkerPool) {
25
25
  this._atlaspack_napi = atlaspack_napi;
26
+ this._napiWorkerPool = napiWorkerPool;
27
+ this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
26
28
  }
27
29
  static async create({
28
30
  fs,
29
31
  packageManager,
30
32
  threads,
31
33
  lmdb,
32
- napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool(),
34
+ napiWorkerPool,
33
35
  ...options
34
36
  }) {
35
37
  options.logLevel = options.logLevel || 'error';
36
38
  options.defaultTargetOptions = options.defaultTargetOptions || {};
37
39
  // $FlowFixMe "engines" are readonly
38
40
  options.defaultTargetOptions.engines = options.defaultTargetOptions.engines || {};
41
+ let isDefaultNapiWorkerPool = false;
42
+ if (!napiWorkerPool) {
43
+ napiWorkerPool = new _NapiWorkerPool.NapiWorkerPool();
44
+ isDefaultNapiWorkerPool = true;
45
+ }
39
46
  const [internal, error] = await (0, _rust().atlaspackNapiCreate)({
40
47
  fs,
41
48
  packageManager,
@@ -48,7 +55,13 @@ class AtlaspackV3 {
48
55
  diagnostic: error
49
56
  });
50
57
  }
51
- return new AtlaspackV3(internal);
58
+ return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
59
+ }
60
+ end() {
61
+ // If the worker pool was provided to us, don't shut it down, it's up to the provider.
62
+ if (this._isDefaultNapiWorkerPool) {
63
+ this._napiWorkerPool.shutdown();
64
+ }
52
65
  }
53
66
  async buildAssetGraph() {
54
67
  let [graph, error] = await (0, _rust().atlaspackNapiBuildAssetGraph)(this._atlaspack_napi);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.16.2-canary.103+1ff31f103",
3
+ "version": "2.16.2-canary.105+e8a60ffbe",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,21 +21,21 @@
21
21
  "check-ts": "tsc --noEmit index.d.ts"
22
22
  },
23
23
  "dependencies": {
24
- "@atlaspack/build-cache": "2.13.3-canary.171+1ff31f103",
25
- "@atlaspack/cache": "3.1.1-canary.103+1ff31f103",
26
- "@atlaspack/diagnostic": "2.14.1-canary.171+1ff31f103",
27
- "@atlaspack/events": "2.14.1-canary.171+1ff31f103",
28
- "@atlaspack/feature-flags": "2.14.1-canary.171+1ff31f103",
29
- "@atlaspack/fs": "2.14.5-canary.103+1ff31f103",
30
- "@atlaspack/graph": "3.4.1-canary.171+1ff31f103",
31
- "@atlaspack/logger": "2.14.5-canary.103+1ff31f103",
32
- "@atlaspack/package-manager": "2.14.5-canary.103+1ff31f103",
33
- "@atlaspack/plugin": "2.14.5-canary.103+1ff31f103",
34
- "@atlaspack/profiler": "2.14.1-canary.171+1ff31f103",
35
- "@atlaspack/rust": "3.2.1-canary.103+1ff31f103",
36
- "@atlaspack/types": "2.14.5-canary.103+1ff31f103",
37
- "@atlaspack/utils": "2.14.5-canary.103+1ff31f103",
38
- "@atlaspack/workers": "2.14.5-canary.103+1ff31f103",
24
+ "@atlaspack/build-cache": "2.13.3-canary.173+e8a60ffbe",
25
+ "@atlaspack/cache": "3.1.1-canary.105+e8a60ffbe",
26
+ "@atlaspack/diagnostic": "2.14.1-canary.173+e8a60ffbe",
27
+ "@atlaspack/events": "2.14.1-canary.173+e8a60ffbe",
28
+ "@atlaspack/feature-flags": "2.14.1-canary.173+e8a60ffbe",
29
+ "@atlaspack/fs": "2.14.5-canary.105+e8a60ffbe",
30
+ "@atlaspack/graph": "3.4.1-canary.173+e8a60ffbe",
31
+ "@atlaspack/logger": "2.14.5-canary.105+e8a60ffbe",
32
+ "@atlaspack/package-manager": "2.14.5-canary.105+e8a60ffbe",
33
+ "@atlaspack/plugin": "2.14.5-canary.105+e8a60ffbe",
34
+ "@atlaspack/profiler": "2.14.1-canary.173+e8a60ffbe",
35
+ "@atlaspack/rust": "3.2.1-canary.105+e8a60ffbe",
36
+ "@atlaspack/types": "2.14.5-canary.105+e8a60ffbe",
37
+ "@atlaspack/utils": "2.14.5-canary.105+e8a60ffbe",
38
+ "@atlaspack/workers": "2.14.5-canary.105+e8a60ffbe",
39
39
  "@mischnic/json-sourcemap": "^0.1.0",
40
40
  "@parcel/source-map": "^2.1.1",
41
41
  "base-x": "^3.0.8",
@@ -60,5 +60,5 @@
60
60
  "./src/serializerCore.js": "./src/serializerCore.browser.js"
61
61
  },
62
62
  "type": "commonjs",
63
- "gitHead": "1ff31f10391c48780c9fcfc243b4e828a1b285e0"
63
+ "gitHead": "e8a60ffbea41caef265786bbf73349771760081c"
64
64
  }
package/src/Atlaspack.js CHANGED
@@ -190,6 +190,12 @@ export default class Atlaspack {
190
190
  }
191
191
  this.rustAtlaspack = rustAtlaspack;
192
192
 
193
+ if (featureFlags.atlaspackV3CleanShutdown) {
194
+ this.#disposable.add(() => {
195
+ rustAtlaspack.end();
196
+ });
197
+ }
198
+
193
199
  let {config} = await loadAtlaspackConfig(resolvedOptions);
194
200
  this.#config = new AtlaspackConfig(config, resolvedOptions);
195
201
 
@@ -28,9 +28,17 @@ export type AtlaspackV3Options = {|
28
28
 
29
29
  export class AtlaspackV3 {
30
30
  _atlaspack_napi: AtlaspackNapi;
31
+ _napiWorkerPool: INapiWorkerPool;
32
+ _isDefaultNapiWorkerPool: boolean;
31
33
 
32
- constructor(atlaspack_napi: AtlaspackNapi) {
34
+ constructor(
35
+ atlaspack_napi: AtlaspackNapi,
36
+ napiWorkerPool: INapiWorkerPool,
37
+ isDefaultNapiWorkerPool: boolean,
38
+ ) {
33
39
  this._atlaspack_napi = atlaspack_napi;
40
+ this._napiWorkerPool = napiWorkerPool;
41
+ this._isDefaultNapiWorkerPool = isDefaultNapiWorkerPool;
34
42
  }
35
43
 
36
44
  static async create({
@@ -38,7 +46,7 @@ export class AtlaspackV3 {
38
46
  packageManager,
39
47
  threads,
40
48
  lmdb,
41
- napiWorkerPool = new NapiWorkerPool(),
49
+ napiWorkerPool,
42
50
  ...options
43
51
  }: AtlaspackV3Options): Promise<AtlaspackV3> {
44
52
  options.logLevel = options.logLevel || 'error';
@@ -47,6 +55,12 @@ export class AtlaspackV3 {
47
55
  options.defaultTargetOptions.engines =
48
56
  options.defaultTargetOptions.engines || {};
49
57
 
58
+ let isDefaultNapiWorkerPool = false;
59
+ if (!napiWorkerPool) {
60
+ napiWorkerPool = new NapiWorkerPool();
61
+ isDefaultNapiWorkerPool = true;
62
+ }
63
+
50
64
  const [internal, error] = await atlaspackNapiCreate(
51
65
  {
52
66
  fs,
@@ -64,7 +78,14 @@ export class AtlaspackV3 {
64
78
  });
65
79
  }
66
80
 
67
- return new AtlaspackV3(internal);
81
+ return new AtlaspackV3(internal, napiWorkerPool, isDefaultNapiWorkerPool);
82
+ }
83
+
84
+ end(): void {
85
+ // If the worker pool was provided to us, don't shut it down, it's up to the provider.
86
+ if (this._isDefaultNapiWorkerPool) {
87
+ this._napiWorkerPool.shutdown();
88
+ }
68
89
  }
69
90
 
70
91
  async buildAssetGraph(): Promise<any> {