@atlaspack/core 2.34.0 → 2.35.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.
- package/CHANGELOG.md +46 -0
- package/dist/AssetGraph.js +4 -72
- package/dist/BundleGraph.js +34 -0
- package/dist/PackagerRunner.js +8 -53
- package/dist/RequestTracker.js +17 -80
- package/dist/TargetDescriptor.schema.js +3 -0
- package/dist/UncommittedAsset.js +0 -5
- package/dist/atlaspack-v3/AtlaspackV3.js +6 -2
- package/dist/requests/AssetGraphRequest.js +6 -15
- package/dist/requests/AssetGraphRequestRust.js +51 -7
- package/dist/requests/AtlaspackBuildRequest.js +8 -2
- package/dist/requests/BundleGraphRequest.js +8 -15
- package/dist/requests/BundleGraphRequestRust.js +1 -2
- package/dist/requests/PackageRequest.js +1 -1
- package/dist/requests/TargetRequest.js +5 -0
- package/dist/requests/WriteBundleRequest.js +3 -9
- package/dist/resolveOptions.js +2 -4
- package/lib/AssetGraph.js +3 -62
- package/lib/BundleGraph.js +38 -0
- package/lib/PackagerRunner.js +8 -42
- package/lib/RequestTracker.js +15 -69
- package/lib/TargetDescriptor.schema.js +3 -0
- package/lib/UncommittedAsset.js +0 -11
- package/lib/atlaspack-v3/AtlaspackV3.js +6 -2
- package/lib/requests/AssetGraphRequest.js +4 -18
- package/lib/requests/AssetGraphRequestRust.js +51 -7
- package/lib/requests/AtlaspackBuildRequest.js +8 -2
- package/lib/requests/BundleGraphRequest.js +10 -15
- package/lib/requests/BundleGraphRequestRust.js +2 -3
- package/lib/requests/PackageRequest.js +3 -1
- package/lib/requests/TargetRequest.js +5 -0
- package/lib/requests/WriteBundleRequest.js +3 -3
- package/lib/resolveOptions.js +2 -4
- package/lib/types/AssetGraph.d.ts +2 -27
- package/lib/types/BundleGraph.d.ts +5 -0
- package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +3 -2
- package/lib/types/requests/BundleGraphRequest.d.ts +1 -1
- package/lib/types/types.d.ts +1 -0
- package/package.json +15 -15
- package/src/AssetGraph.ts +4 -72
- package/src/BundleGraph.ts +39 -0
- package/src/PackagerRunner.ts +9 -55
- package/src/RequestTracker.ts +24 -110
- package/src/TargetDescriptor.schema.ts +3 -0
- package/src/UncommittedAsset.ts +1 -11
- package/src/atlaspack-v3/AtlaspackV3.ts +19 -3
- package/src/requests/AssetGraphRequest.ts +8 -20
- package/src/requests/AssetGraphRequestRust.ts +59 -7
- package/src/requests/AtlaspackBuildRequest.ts +16 -8
- package/src/requests/BundleGraphRequest.ts +11 -30
- package/src/requests/BundleGraphRequestRust.ts +1 -2
- package/src/requests/PackageRequest.ts +1 -1
- package/src/requests/TargetRequest.ts +5 -0
- package/src/requests/WriteBundleRequest.ts +3 -9
- package/src/resolveOptions.ts +2 -4
- package/src/types.ts +1 -0
- package/test/AssetGraph.test.ts +0 -32
- package/test/RequestTracker.test.ts +0 -165
- package/test/TargetRequest.test.ts +25 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -538,171 +538,6 @@ describe('RequestTracker', () => {
|
|
|
538
538
|
});
|
|
539
539
|
});
|
|
540
540
|
});
|
|
541
|
-
|
|
542
|
-
describe('incremental bundling', () => {
|
|
543
|
-
async function runIncrementalBundlingScenario(
|
|
544
|
-
incrementalBundlingVersioning: boolean,
|
|
545
|
-
) {
|
|
546
|
-
const fs = new OverlayFS(new MemoryFS(farm), new NodeFS());
|
|
547
|
-
const appRoot = __dirname;
|
|
548
|
-
await fs.mkdirp(path.join(appRoot, 'app'));
|
|
549
|
-
await fs.writeFile(path.join(appRoot, 'app', 'package.json'), '{}');
|
|
550
|
-
await fs.writeFile(path.join(appRoot, 'app', '.git'), '');
|
|
551
|
-
await fs.writeFile(
|
|
552
|
-
path.join(appRoot, 'app', '.parcelrc'),
|
|
553
|
-
'{"extends":"@atlaspack/config-default"}',
|
|
554
|
-
);
|
|
555
|
-
await fs.writeFile(
|
|
556
|
-
path.join(appRoot, 'app', 'target.js'),
|
|
557
|
-
'console.log("hello")',
|
|
558
|
-
);
|
|
559
|
-
|
|
560
|
-
const atlaspack = new Atlaspack({
|
|
561
|
-
featureFlags: {
|
|
562
|
-
incrementalBundlingVersioning,
|
|
563
|
-
},
|
|
564
|
-
workerFarm: farm,
|
|
565
|
-
entries: [path.join(appRoot, 'app', 'target.js')],
|
|
566
|
-
cache: new LMDBLiteCache(DEFAULT_OPTIONS.cacheDir),
|
|
567
|
-
inputFS: fs,
|
|
568
|
-
outputFS: fs,
|
|
569
|
-
});
|
|
570
|
-
await atlaspack._init();
|
|
571
|
-
const options = atlaspack._getResolvedAtlaspackOptions();
|
|
572
|
-
const tracker = new RequestTracker({farm, options});
|
|
573
|
-
let {ref: optionsRef} = await farm.createSharedReference(options, false);
|
|
574
|
-
|
|
575
|
-
const getAssetRequests = () =>
|
|
576
|
-
runRequestSpy
|
|
577
|
-
.getCalls()
|
|
578
|
-
.map((call: any) => call.args[0])
|
|
579
|
-
.filter(
|
|
580
|
-
(request: any) => request.type === requestTypes.asset_request,
|
|
581
|
-
);
|
|
582
|
-
|
|
583
|
-
// Running the build once builds one asset
|
|
584
|
-
const runRequestSpy = sinon.spy(tracker, 'runRequest');
|
|
585
|
-
await tracker.runRequest(
|
|
586
|
-
createAtlaspackBuildRequest({
|
|
587
|
-
optionsRef,
|
|
588
|
-
requestedAssetIds: new Set(),
|
|
589
|
-
}),
|
|
590
|
-
);
|
|
591
|
-
assert.equal(getAssetRequests().length, 1);
|
|
592
|
-
runRequestSpy.resetHistory();
|
|
593
|
-
|
|
594
|
-
// Running the build again with no invalidations does not build any assets
|
|
595
|
-
await tracker.runRequest(
|
|
596
|
-
createAtlaspackBuildRequest({
|
|
597
|
-
optionsRef,
|
|
598
|
-
requestedAssetIds: new Set(),
|
|
599
|
-
}),
|
|
600
|
-
);
|
|
601
|
-
assert.equal(getAssetRequests().length, 0);
|
|
602
|
-
runRequestSpy.resetHistory();
|
|
603
|
-
|
|
604
|
-
// Running the build again with a file change builds the asset again
|
|
605
|
-
tracker.respondToFSEvents(
|
|
606
|
-
[
|
|
607
|
-
{
|
|
608
|
-
type: 'update',
|
|
609
|
-
path: path.join(appRoot, 'app', 'target.js'),
|
|
610
|
-
},
|
|
611
|
-
],
|
|
612
|
-
Number.MAX_VALUE,
|
|
613
|
-
);
|
|
614
|
-
await tracker.runRequest(
|
|
615
|
-
createAtlaspackBuildRequest({
|
|
616
|
-
optionsRef,
|
|
617
|
-
requestedAssetIds: new Set(),
|
|
618
|
-
}),
|
|
619
|
-
);
|
|
620
|
-
assert.equal(getAssetRequests().length, 1);
|
|
621
|
-
runRequestSpy.resetHistory();
|
|
622
|
-
|
|
623
|
-
// Run the asset graph request, but not bundling
|
|
624
|
-
await fs.writeFile(
|
|
625
|
-
path.join(appRoot, 'app', 'target.js'),
|
|
626
|
-
'require("./dep.js")',
|
|
627
|
-
);
|
|
628
|
-
await fs.writeFile(
|
|
629
|
-
path.join(appRoot, 'app', 'dep.js'),
|
|
630
|
-
'console.log("dep")',
|
|
631
|
-
);
|
|
632
|
-
tracker.respondToFSEvents(
|
|
633
|
-
[
|
|
634
|
-
{
|
|
635
|
-
type: 'update',
|
|
636
|
-
path: path.join(appRoot, 'app', 'target.js'),
|
|
637
|
-
},
|
|
638
|
-
],
|
|
639
|
-
Number.MAX_VALUE,
|
|
640
|
-
);
|
|
641
|
-
const assetGraphRequestResult = await tracker.runRequest(
|
|
642
|
-
createAssetGraphRequest({
|
|
643
|
-
name: 'Main',
|
|
644
|
-
entries: [
|
|
645
|
-
toProjectPath(
|
|
646
|
-
path.join(appRoot, 'app'),
|
|
647
|
-
path.join(appRoot, 'app', 'target.js'),
|
|
648
|
-
),
|
|
649
|
-
],
|
|
650
|
-
optionsRef,
|
|
651
|
-
shouldBuildLazily: false,
|
|
652
|
-
lazyIncludes: [],
|
|
653
|
-
lazyExcludes: [],
|
|
654
|
-
requestedAssetIds: new Set(),
|
|
655
|
-
}),
|
|
656
|
-
);
|
|
657
|
-
assert.equal(getAssetRequests().length, 2);
|
|
658
|
-
assert.equal(
|
|
659
|
-
assetGraphRequestResult.assetGraph.safeToIncrementallyBundle,
|
|
660
|
-
false,
|
|
661
|
-
);
|
|
662
|
-
|
|
663
|
-
// Now make another change
|
|
664
|
-
tracker.respondToFSEvents(
|
|
665
|
-
[
|
|
666
|
-
{
|
|
667
|
-
type: 'update',
|
|
668
|
-
path: path.join(appRoot, 'app', 'target.js'),
|
|
669
|
-
},
|
|
670
|
-
{
|
|
671
|
-
type: 'update',
|
|
672
|
-
path: path.join(appRoot, 'app', 'dep.js'),
|
|
673
|
-
},
|
|
674
|
-
],
|
|
675
|
-
Number.MAX_VALUE,
|
|
676
|
-
);
|
|
677
|
-
// And run the build again
|
|
678
|
-
|
|
679
|
-
if (!incrementalBundlingVersioning) {
|
|
680
|
-
await assert.rejects(async () => {
|
|
681
|
-
await tracker.runRequest(
|
|
682
|
-
createAtlaspackBuildRequest({
|
|
683
|
-
optionsRef,
|
|
684
|
-
requestedAssetIds: new Set(),
|
|
685
|
-
}),
|
|
686
|
-
);
|
|
687
|
-
});
|
|
688
|
-
} else {
|
|
689
|
-
await tracker.runRequest(
|
|
690
|
-
createAtlaspackBuildRequest({
|
|
691
|
-
optionsRef,
|
|
692
|
-
requestedAssetIds: new Set(),
|
|
693
|
-
}),
|
|
694
|
-
);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
it('throws a content key not found exception without bundling versioning', async () => {
|
|
699
|
-
await runIncrementalBundlingScenario(false);
|
|
700
|
-
});
|
|
701
|
-
|
|
702
|
-
it('works fine with bundling versioning', async () => {
|
|
703
|
-
await runIncrementalBundlingScenario(true);
|
|
704
|
-
});
|
|
705
|
-
});
|
|
706
541
|
});
|
|
707
542
|
|
|
708
543
|
describe('cleanUpOrphans', () => {
|
|
@@ -122,6 +122,7 @@ describe('TargetResolver', () => {
|
|
|
122
122
|
{
|
|
123
123
|
name: 'customA',
|
|
124
124
|
publicUrl: '/',
|
|
125
|
+
inlineRequires: false,
|
|
125
126
|
distDir: normalizeSeparators(path.resolve('customA')),
|
|
126
127
|
env: createEnvironment({
|
|
127
128
|
context: 'browser',
|
|
@@ -142,6 +143,7 @@ describe('TargetResolver', () => {
|
|
|
142
143
|
{
|
|
143
144
|
name: 'customB',
|
|
144
145
|
publicUrl: '/',
|
|
146
|
+
inlineRequires: false,
|
|
145
147
|
distEntry: 'b.js',
|
|
146
148
|
distDir: normalizeSeparators(path.resolve('customB')),
|
|
147
149
|
env: createEnvironment({
|
|
@@ -175,6 +177,7 @@ describe('TargetResolver', () => {
|
|
|
175
177
|
distDir: 'fixtures/common-targets/dist/main',
|
|
176
178
|
distEntry: 'index.js',
|
|
177
179
|
publicUrl: '/',
|
|
180
|
+
inlineRequires: false,
|
|
178
181
|
env: createEnvironment({
|
|
179
182
|
context: 'node',
|
|
180
183
|
engines: {
|
|
@@ -209,6 +212,7 @@ describe('TargetResolver', () => {
|
|
|
209
212
|
distDir: 'fixtures/common-targets/dist/module',
|
|
210
213
|
distEntry: 'index.js',
|
|
211
214
|
publicUrl: '/',
|
|
215
|
+
inlineRequires: false,
|
|
212
216
|
env: createEnvironment({
|
|
213
217
|
context: 'browser',
|
|
214
218
|
engines: {
|
|
@@ -245,6 +249,7 @@ describe('TargetResolver', () => {
|
|
|
245
249
|
distDir: 'fixtures/common-targets/dist/browser',
|
|
246
250
|
distEntry: 'index.js',
|
|
247
251
|
publicUrl: '/assets',
|
|
252
|
+
inlineRequires: false,
|
|
248
253
|
env: createEnvironment({
|
|
249
254
|
context: 'browser',
|
|
250
255
|
engines: {
|
|
@@ -291,6 +296,7 @@ describe('TargetResolver', () => {
|
|
|
291
296
|
),
|
|
292
297
|
distEntry: 'index.js',
|
|
293
298
|
publicUrl: '/',
|
|
299
|
+
inlineRequires: false,
|
|
294
300
|
env: createEnvironment({
|
|
295
301
|
context: 'node',
|
|
296
302
|
engines: {
|
|
@@ -334,6 +340,7 @@ describe('TargetResolver', () => {
|
|
|
334
340
|
distDir: 'fixtures/custom-targets/dist/main',
|
|
335
341
|
distEntry: 'index.js',
|
|
336
342
|
publicUrl: '/',
|
|
343
|
+
inlineRequires: false,
|
|
337
344
|
env: createEnvironment({
|
|
338
345
|
context: 'node',
|
|
339
346
|
engines: {
|
|
@@ -368,6 +375,7 @@ describe('TargetResolver', () => {
|
|
|
368
375
|
distDir: 'fixtures/custom-targets/dist/browserModern',
|
|
369
376
|
distEntry: 'index.js',
|
|
370
377
|
publicUrl: '/',
|
|
378
|
+
inlineRequires: false,
|
|
371
379
|
env: createEnvironment({
|
|
372
380
|
context: 'browser',
|
|
373
381
|
engines: {
|
|
@@ -405,6 +413,7 @@ describe('TargetResolver', () => {
|
|
|
405
413
|
distDir: 'fixtures/custom-targets/dist/browserLegacy',
|
|
406
414
|
distEntry: 'index.js',
|
|
407
415
|
publicUrl: '/',
|
|
416
|
+
inlineRequires: false,
|
|
408
417
|
env: createEnvironment({
|
|
409
418
|
context: 'browser',
|
|
410
419
|
engines: {
|
|
@@ -459,6 +468,7 @@ describe('TargetResolver', () => {
|
|
|
459
468
|
distDir: 'fixtures/custom-targets/dist/main',
|
|
460
469
|
distEntry: 'index.js',
|
|
461
470
|
publicUrl: '/',
|
|
471
|
+
inlineRequires: false,
|
|
462
472
|
env: createEnvironment({
|
|
463
473
|
context: 'node',
|
|
464
474
|
engines: {
|
|
@@ -493,6 +503,7 @@ describe('TargetResolver', () => {
|
|
|
493
503
|
distDir: 'fixtures/custom-targets/dist/browserModern',
|
|
494
504
|
distEntry: 'index.js',
|
|
495
505
|
publicUrl: '/',
|
|
506
|
+
inlineRequires: false,
|
|
496
507
|
env: createEnvironment({
|
|
497
508
|
context: 'browser',
|
|
498
509
|
engines: {
|
|
@@ -530,6 +541,7 @@ describe('TargetResolver', () => {
|
|
|
530
541
|
distDir: 'fixtures/custom-targets/dist/browserLegacy',
|
|
531
542
|
distEntry: 'index.js',
|
|
532
543
|
publicUrl: '/',
|
|
544
|
+
inlineRequires: false,
|
|
533
545
|
env: createEnvironment({
|
|
534
546
|
context: 'browser',
|
|
535
547
|
engines: {
|
|
@@ -576,6 +588,7 @@ describe('TargetResolver', () => {
|
|
|
576
588
|
distDir: 'fixtures/custom-targets-distdir/www',
|
|
577
589
|
distEntry: undefined,
|
|
578
590
|
publicUrl: 'www',
|
|
591
|
+
inlineRequires: false,
|
|
579
592
|
env: createEnvironment({
|
|
580
593
|
context: 'browser',
|
|
581
594
|
engines: {
|
|
@@ -631,6 +644,7 @@ describe('TargetResolver', () => {
|
|
|
631
644
|
name: 'customB',
|
|
632
645
|
distDir: normalizeSeparators(path.resolve('customB')),
|
|
633
646
|
publicUrl: '/',
|
|
647
|
+
inlineRequires: false,
|
|
634
648
|
env: createEnvironment({
|
|
635
649
|
context: 'browser',
|
|
636
650
|
engines: {
|
|
@@ -673,6 +687,7 @@ describe('TargetResolver', () => {
|
|
|
673
687
|
name: 'customA',
|
|
674
688
|
distDir: normalizeSeparators(path.resolve('customA')),
|
|
675
689
|
publicUrl: '/',
|
|
690
|
+
inlineRequires: false,
|
|
676
691
|
env: createEnvironment({
|
|
677
692
|
context: 'browser',
|
|
678
693
|
engines: {
|
|
@@ -702,6 +717,7 @@ describe('TargetResolver', () => {
|
|
|
702
717
|
distDir: 'fixtures/context/dist/main',
|
|
703
718
|
distEntry: 'index.js',
|
|
704
719
|
publicUrl: '/',
|
|
720
|
+
inlineRequires: false,
|
|
705
721
|
env: createEnvironment({
|
|
706
722
|
context: 'node',
|
|
707
723
|
engines: {
|
|
@@ -1073,6 +1089,7 @@ describe('TargetResolver', () => {
|
|
|
1073
1089
|
distDir: relative(path.join(fixture, 'dist')),
|
|
1074
1090
|
distEntry: 'index.mjs',
|
|
1075
1091
|
publicUrl: '/',
|
|
1092
|
+
inlineRequires: false,
|
|
1076
1093
|
env: createEnvironment({
|
|
1077
1094
|
context: 'browser',
|
|
1078
1095
|
engines: {
|
|
@@ -1118,6 +1135,7 @@ describe('TargetResolver', () => {
|
|
|
1118
1135
|
distDir: relative(path.join(fixture, 'dist')),
|
|
1119
1136
|
distEntry: 'index.js',
|
|
1120
1137
|
publicUrl: '/',
|
|
1138
|
+
inlineRequires: false,
|
|
1121
1139
|
env: createEnvironment({
|
|
1122
1140
|
context: 'browser',
|
|
1123
1141
|
engines: {
|
|
@@ -1167,6 +1185,7 @@ describe('TargetResolver', () => {
|
|
|
1167
1185
|
distDir: 'fixtures/common-targets/dist/main',
|
|
1168
1186
|
distEntry: 'index.js',
|
|
1169
1187
|
publicUrl: '/',
|
|
1188
|
+
inlineRequires: false,
|
|
1170
1189
|
env: createEnvironment({
|
|
1171
1190
|
context: 'node',
|
|
1172
1191
|
engines: {
|
|
@@ -1201,6 +1220,7 @@ describe('TargetResolver', () => {
|
|
|
1201
1220
|
distDir: 'fixtures/common-targets/dist/browser',
|
|
1202
1221
|
distEntry: 'index.js',
|
|
1203
1222
|
publicUrl: '/assets',
|
|
1223
|
+
inlineRequires: false,
|
|
1204
1224
|
env: createEnvironment({
|
|
1205
1225
|
context: 'browser',
|
|
1206
1226
|
engines: {
|
|
@@ -1249,6 +1269,7 @@ describe('TargetResolver', () => {
|
|
|
1249
1269
|
name: 'default',
|
|
1250
1270
|
distDir: serveDistDir,
|
|
1251
1271
|
publicUrl: '/',
|
|
1272
|
+
inlineRequires: false,
|
|
1252
1273
|
env: createEnvironment({
|
|
1253
1274
|
context: 'browser',
|
|
1254
1275
|
engines: {
|
|
@@ -1286,6 +1307,7 @@ describe('TargetResolver', () => {
|
|
|
1286
1307
|
path.join(DEFAULT_DISTPATH_FIXTURE_PATHS.none, 'dist'),
|
|
1287
1308
|
),
|
|
1288
1309
|
publicUrl: '/',
|
|
1310
|
+
inlineRequires: false,
|
|
1289
1311
|
env: createEnvironment({
|
|
1290
1312
|
context: 'browser',
|
|
1291
1313
|
engines: {
|
|
@@ -1319,6 +1341,7 @@ describe('TargetResolver', () => {
|
|
|
1319
1341
|
),
|
|
1320
1342
|
distEntry: undefined,
|
|
1321
1343
|
publicUrl: '/',
|
|
1344
|
+
inlineRequires: false,
|
|
1322
1345
|
env: createEnvironment({
|
|
1323
1346
|
context: 'browser',
|
|
1324
1347
|
engines: {
|
|
@@ -1369,6 +1392,7 @@ describe('TargetResolver', () => {
|
|
|
1369
1392
|
),
|
|
1370
1393
|
distEntry: undefined,
|
|
1371
1394
|
publicUrl: '/',
|
|
1395
|
+
inlineRequires: false,
|
|
1372
1396
|
env: createEnvironment({
|
|
1373
1397
|
context: 'browser',
|
|
1374
1398
|
engines: {
|
|
@@ -1409,6 +1433,7 @@ describe('TargetResolver', () => {
|
|
|
1409
1433
|
),
|
|
1410
1434
|
distEntry: undefined,
|
|
1411
1435
|
publicUrl: '/',
|
|
1436
|
+
inlineRequires: false,
|
|
1412
1437
|
env: createEnvironment({
|
|
1413
1438
|
context: 'browser',
|
|
1414
1439
|
engines: {
|