@@ -287,6 +287,10 @@ namespace ts {
287287 updateImportDeclaration,
288288 createImportClause,
289289 updateImportClause,
290+ createAssertClause,
291+ updateAssertClause,
292+ createAssertEntry,
293+ updateAssertEntry,
290294 createNamespaceImport,
291295 updateNamespaceImport,
292296 createNamespaceExport,
@@ -3790,7 +3794,8 @@ namespace ts {
37903794 decorators : readonly Decorator [ ] | undefined ,
37913795 modifiers : readonly Modifier [ ] | undefined ,
37923796 importClause : ImportClause | undefined ,
3793- moduleSpecifier : Expression
3797+ moduleSpecifier : Expression ,
3798+ assertClause : AssertClause | undefined
37943799 ) : ImportDeclaration {
37953800 const node = createBaseDeclaration < ImportDeclaration > (
37963801 SyntaxKind . ImportDeclaration ,
@@ -3799,6 +3804,7 @@ namespace ts {
37993804 ) ;
38003805 node . importClause = importClause ;
38013806 node . moduleSpecifier = moduleSpecifier ;
3807+ node . assertClause = assertClause ;
38023808 node . transformFlags |=
38033809 propagateChildFlags ( node . importClause ) |
38043810 propagateChildFlags ( node . moduleSpecifier ) ;
@@ -3812,13 +3818,15 @@ namespace ts {
38123818 decorators : readonly Decorator [ ] | undefined ,
38133819 modifiers : readonly Modifier [ ] | undefined ,
38143820 importClause : ImportClause | undefined ,
3815- moduleSpecifier : Expression
3821+ moduleSpecifier : Expression ,
3822+ assertClause : AssertClause | undefined
38163823 ) {
38173824 return node . decorators !== decorators
38183825 || node . modifiers !== modifiers
38193826 || node . importClause !== importClause
38203827 || node . moduleSpecifier !== moduleSpecifier
3821- ? update ( createImportDeclaration ( decorators , modifiers , importClause , moduleSpecifier ) , node )
3828+ || node . assertClause !== assertClause
3829+ ? update ( createImportDeclaration ( decorators , modifiers , importClause , moduleSpecifier , assertClause ) , node )
38223830 : node ;
38233831 }
38243832
@@ -3847,6 +3855,38 @@ namespace ts {
38473855 : node ;
38483856 }
38493857
3858+ // @api
3859+ function createAssertClause ( elements : NodeArray < AssertEntry > | undefined ) : AssertClause {
3860+ const node = createBaseNode < AssertClause > ( SyntaxKind . AssertClause ) ;
3861+ node . elements = elements ;
3862+ node . transformFlags |= TransformFlags . ContainsESNext ;
3863+ return node ;
3864+ }
3865+
3866+ // @api
3867+ function updateAssertClause ( node : AssertClause , elements : NodeArray < AssertEntry > | undefined ) : AssertClause {
3868+ return node . elements !== elements
3869+ ? update ( createAssertClause ( elements ) , node )
3870+ : node ;
3871+ }
3872+
3873+ // @api
3874+ function createAssertEntry ( name : AssertionKey , value : StringLiteral ) : AssertEntry {
3875+ const node = createBaseNode < AssertEntry > ( SyntaxKind . AssertEntry ) ;
3876+ node . name = name ;
3877+ node . value = value ;
3878+ node . transformFlags |= TransformFlags . ContainsESNext ;
3879+ return node ;
3880+ }
3881+
3882+ // @api
3883+ function updateAssertEntry ( node : AssertEntry , name : AssertionKey , value : StringLiteral ) : AssertEntry {
3884+ return node . name !== name
3885+ || node . value !== value
3886+ ? update ( createAssertEntry ( name , value ) , node )
3887+ : node ;
3888+ }
3889+
38503890 // @api
38513891 function createNamespaceImport ( name : Identifier ) : NamespaceImport {
38523892 const node = createBaseNode < NamespaceImport > ( SyntaxKind . NamespaceImport ) ;
@@ -3958,7 +3998,8 @@ namespace ts {
39583998 modifiers : readonly Modifier [ ] | undefined ,
39593999 isTypeOnly : boolean ,
39604000 exportClause : NamedExportBindings | undefined ,
3961- moduleSpecifier ?: Expression
4001+ moduleSpecifier ?: Expression ,
4002+ assertClause ?: AssertClause
39624003 ) {
39634004 const node = createBaseDeclaration < ExportDeclaration > (
39644005 SyntaxKind . ExportDeclaration ,
@@ -3968,6 +4009,7 @@ namespace ts {
39684009 node . isTypeOnly = isTypeOnly ;
39694010 node . exportClause = exportClause ;
39704011 node . moduleSpecifier = moduleSpecifier ;
4012+ node . assertClause = assertClause ;
39714013 node . transformFlags |=
39724014 propagateChildFlags ( node . exportClause ) |
39734015 propagateChildFlags ( node . moduleSpecifier ) ;
@@ -3982,14 +4024,16 @@ namespace ts {
39824024 modifiers : readonly Modifier [ ] | undefined ,
39834025 isTypeOnly : boolean ,
39844026 exportClause : NamedExportBindings | undefined ,
3985- moduleSpecifier : Expression | undefined
4027+ moduleSpecifier : Expression | undefined ,
4028+ assertClause : AssertClause | undefined
39864029 ) {
39874030 return node . decorators !== decorators
39884031 || node . modifiers !== modifiers
39894032 || node . isTypeOnly !== isTypeOnly
39904033 || node . exportClause !== exportClause
39914034 || node . moduleSpecifier !== moduleSpecifier
3992- ? update ( createExportDeclaration ( decorators , modifiers , isTypeOnly , exportClause , moduleSpecifier ) , node )
4035+ || node . assertClause !== assertClause
4036+ ? update ( createExportDeclaration ( decorators , modifiers , isTypeOnly , exportClause , moduleSpecifier , assertClause ) , node )
39934037 : node ;
39944038 }
39954039
@@ -5776,9 +5820,9 @@ namespace ts {
57765820 isEnumDeclaration ( node ) ? updateEnumDeclaration ( node , node . decorators , modifiers , node . name , node . members ) :
57775821 isModuleDeclaration ( node ) ? updateModuleDeclaration ( node , node . decorators , modifiers , node . name , node . body ) :
57785822 isImportEqualsDeclaration ( node ) ? updateImportEqualsDeclaration ( node , node . decorators , modifiers , node . name , node . moduleReference ) :
5779- isImportDeclaration ( node ) ? updateImportDeclaration ( node , node . decorators , modifiers , node . importClause , node . moduleSpecifier ) :
5823+ isImportDeclaration ( node ) ? updateImportDeclaration ( node , node . decorators , modifiers , node . importClause , node . moduleSpecifier , node . assertClause ) :
57805824 isExportAssignment ( node ) ? updateExportAssignment ( node , node . decorators , modifiers , node . expression ) :
5781- isExportDeclaration ( node ) ? updateExportDeclaration ( node , node . decorators , modifiers , node . isTypeOnly , node . exportClause , node . moduleSpecifier ) :
5825+ isExportDeclaration ( node ) ? updateExportDeclaration ( node , node . decorators , modifiers , node . isTypeOnly , node . exportClause , node . moduleSpecifier , node . assertClause ) :
57825826 Debug . assertNever ( node ) ;
57835827 }
57845828
0 commit comments