@@ -1286,7 +1286,7 @@ async function compileProject(
1286
1286
1287
1287
const javascriptProject = new JavascriptProject ( config . projectDir ) ;
1288
1288
1289
- const dependencies = await gatherRequiredDependencies ( allImports , config , javascriptProject ) ;
1289
+ const dependencies = await resolveRequiredDependencies ( allImports , config , javascriptProject ) ;
1290
1290
1291
1291
logger . debug ( "gatherRequiredDependencies()" , { dependencies } ) ;
1292
1292
@@ -1300,6 +1300,10 @@ async function compileProject(
1300
1300
} ,
1301
1301
} ;
1302
1302
1303
+ span . setAttributes ( {
1304
+ ...flattenAttributes ( packageJsonContents , "packageJson.contents" ) ,
1305
+ } ) ;
1306
+
1303
1307
await writeJSONFile ( join ( tempDir , "package.json" ) , packageJsonContents ) ;
1304
1308
1305
1309
const copyResult = await copyAdditionalFiles ( config , tempDir ) ;
@@ -1548,81 +1552,103 @@ async function typecheckProject(config: ResolvedConfig, options: DeployCommandOp
1548
1552
1549
1553
// Returns the dependencies that are required by the output that are found in output and the CLI package dependencies
1550
1554
// Returns the dependency names and the version to use (taken from the CLI deps package.json)
1551
- async function gatherRequiredDependencies (
1555
+ async function resolveRequiredDependencies (
1552
1556
imports : Metafile [ "outputs" ] [ string ] [ "imports" ] ,
1553
1557
config : ResolvedConfig ,
1554
1558
project : JavascriptProject
1555
1559
) {
1556
- const dependencies : Record < string , string > = { } ;
1557
- const resolvablePackageNames = new Set < string > ( ) ;
1560
+ return await tracer . startActiveSpan ( "resolveRequiredDependencies" , async ( span ) => {
1561
+ const resolvablePackageNames = new Set < string > ( ) ;
1558
1562
1559
- for ( const file of imports ) {
1560
- if ( ( file . kind !== "require-call" && file . kind !== "dynamic-import" ) || ! file . external ) {
1561
- continue ;
1562
- }
1563
+ for ( const file of imports ) {
1564
+ if ( ( file . kind !== "require-call" && file . kind !== "dynamic-import" ) || ! file . external ) {
1565
+ continue ;
1566
+ }
1563
1567
1564
- const packageName = detectPackageNameFromImportPath ( file . path ) ;
1568
+ const packageName = detectPackageNameFromImportPath ( file . path ) ;
1565
1569
1566
- if ( ! packageName ) {
1567
- continue ;
1570
+ if ( ! packageName ) {
1571
+ continue ;
1572
+ }
1573
+
1574
+ resolvablePackageNames . add ( packageName ) ;
1568
1575
}
1569
1576
1570
- resolvablePackageNames . add ( packageName ) ;
1571
- }
1577
+ span . setAttribute ( "resolvablePackageNames" , Array . from ( resolvablePackageNames ) ) ;
1572
1578
1573
- const resolvedPackageVersions = await project . resolveAll ( Array . from ( resolvablePackageNames ) ) ;
1574
- const missingPackages = Array . from ( resolvablePackageNames ) . filter (
1575
- ( packageName ) => ! resolvedPackageVersions [ packageName ]
1576
- ) ;
1579
+ const resolvedPackageVersions = await project . resolveAll ( Array . from ( resolvablePackageNames ) ) ;
1580
+ const missingPackages = Array . from ( resolvablePackageNames ) . filter (
1581
+ ( packageName ) => ! resolvedPackageVersions [ packageName ]
1582
+ ) ;
1577
1583
1578
- for ( const missingPackage of missingPackages ) {
1579
- const internalDependencyVersion =
1580
- ( packageJson . dependencies as Record < string , string > ) [ missingPackage ] ??
1581
- detectDependencyVersion ( missingPackage ) ;
1584
+ span . setAttributes ( {
1585
+ ... flattenAttributes ( resolvedPackageVersions , "resolvedPackageVersions" ) ,
1586
+ } ) ;
1587
+ span . setAttribute ( "missingPackages" , missingPackages ) ;
1582
1588
1583
- if ( internalDependencyVersion ) {
1584
- dependencies [ missingPackage ] = stripWorkspaceFromVersion ( internalDependencyVersion ) ;
1585
- }
1586
- }
1589
+ const dependencies : Record < string , string > = { } ;
1587
1590
1588
- for ( const [ packageName , version ] of Object . entries ( resolvedPackageVersions ) ) {
1589
- dependencies [ packageName ] = version ;
1590
- }
1591
+ for ( const missingPackage of missingPackages ) {
1592
+ const internalDependencyVersion =
1593
+ ( packageJson . dependencies as Record < string , string > ) [ missingPackage ] ??
1594
+ detectDependencyVersion ( missingPackage ) ;
1591
1595
1592
- if ( config . additionalPackages ) {
1593
- for ( const packageName of config . additionalPackages ) {
1594
- if ( dependencies [ packageName ] ) {
1595
- continue ;
1596
+ if ( internalDependencyVersion ) {
1597
+ dependencies [ missingPackage ] = stripWorkspaceFromVersion ( internalDependencyVersion ) ;
1596
1598
}
1599
+ }
1597
1600
1598
- const packageParts = parsePackageName ( packageName ) ;
1601
+ for ( const [ packageName , version ] of Object . entries ( resolvedPackageVersions ) ) {
1602
+ dependencies [ packageName ] = version ;
1603
+ }
1599
1604
1600
- if ( packageParts . version ) {
1601
- dependencies [ packageParts . name ] = packageParts . version ;
1602
- continue ;
1603
- } else {
1604
- const externalDependencyVersion = await project . resolve ( packageParts . name , {
1605
- allowDev : true ,
1606
- } ) ;
1605
+ if ( config . additionalPackages ) {
1606
+ span . setAttribute ( "additionalPackages" , config . additionalPackages ) ;
1607
1607
1608
- if ( externalDependencyVersion ) {
1609
- dependencies [ packageParts . name ] = externalDependencyVersion ;
1608
+ for ( const packageName of config . additionalPackages ) {
1609
+ if ( dependencies [ packageName ] ) {
1610
+ continue ;
1611
+ }
1612
+
1613
+ const packageParts = parsePackageName ( packageName ) ;
1614
+
1615
+ if ( packageParts . version ) {
1616
+ dependencies [ packageParts . name ] = packageParts . version ;
1610
1617
continue ;
1611
1618
} else {
1612
- logger . log (
1613
- `${ chalkWarning ( "X Warning:" ) } Could not find version for package ${ chalkPurple (
1614
- packageName
1615
- ) } , add a version specifier to the package name (e.g. ${
1616
- packageParts . name
1617
- } @latest) or add it to your project's package.json`
1618
- ) ;
1619
+ const externalDependencyVersion = await project . resolve ( packageParts . name , {
1620
+ allowDev : true ,
1621
+ } ) ;
1622
+
1623
+ if ( externalDependencyVersion ) {
1624
+ dependencies [ packageParts . name ] = externalDependencyVersion ;
1625
+ continue ;
1626
+ } else {
1627
+ logger . log (
1628
+ `${ chalkWarning ( "X Warning:" ) } Could not find version for package ${ chalkPurple (
1629
+ packageName
1630
+ ) } , add a version specifier to the package name (e.g. ${
1631
+ packageParts . name
1632
+ } @latest) or add it to your project's package.json`
1633
+ ) ;
1634
+ }
1619
1635
}
1620
1636
}
1621
1637
}
1622
- }
1623
1638
1624
- // Make sure we sort the dependencies by key to ensure consistent hashing
1625
- return Object . fromEntries ( Object . entries ( dependencies ) . sort ( ( [ a ] , [ b ] ) => a . localeCompare ( b ) ) ) ;
1639
+ // Make sure we sort the dependencies by key to ensure consistent hashing
1640
+ const result = Object . fromEntries (
1641
+ Object . entries ( dependencies ) . sort ( ( [ a ] , [ b ] ) => a . localeCompare ( b ) )
1642
+ ) ;
1643
+
1644
+ span . setAttributes ( {
1645
+ ...flattenAttributes ( result , "dependencies" ) ,
1646
+ } ) ;
1647
+
1648
+ span . end ( ) ;
1649
+
1650
+ return result ;
1651
+ } ) ;
1626
1652
}
1627
1653
1628
1654
type AdditionalFilesReturn =
0 commit comments