4
4
5
5
import * as postcss from 'postcss' ;
6
6
7
- import { Expression , ExpressionProps } from './expression' ;
7
+ import { AnyExpression , ExpressionProps } from './expression' ;
8
8
import { fromProps } from './expression/from-props' ;
9
9
import { Node , NodeProps } from './node' ;
10
10
import { ArgumentList } from './argument-list' ;
@@ -60,7 +60,7 @@ export interface ArgumentRaws {
60
60
*/
61
61
export type ArgumentObjectProps = NodeProps & {
62
62
raws ?: ArgumentRaws ;
63
- value : Expression | ExpressionProps ;
63
+ value : AnyExpression | ExpressionProps ;
64
64
} & ( { name ?: string ; rest ?: never } | { name ?: never ; rest ?: boolean } ) ;
65
65
66
66
/**
@@ -70,7 +70,7 @@ export type ArgumentObjectProps = NodeProps & {
70
70
* ArgumentDeclarationProps}.
71
71
*/
72
72
export type ArgumentExpressionProps =
73
- | Expression
73
+ | AnyExpression
74
74
| ExpressionProps
75
75
| Omit < ArgumentObjectProps , 'name' > ;
76
76
@@ -81,7 +81,7 @@ export type ArgumentExpressionProps =
81
81
*/
82
82
export type ArgumentProps =
83
83
| ArgumentObjectProps
84
- | Expression
84
+ | AnyExpression
85
85
| ExpressionProps
86
86
| [ string , ArgumentExpressionProps ] ;
87
87
@@ -115,16 +115,16 @@ export class Argument extends Node {
115
115
private declare _name ?: string ;
116
116
117
117
/** The argument's value. */
118
- get value ( ) : Expression {
118
+ get value ( ) : AnyExpression {
119
119
return this . _value ! ;
120
120
}
121
- set value ( value : Expression | ExpressionProps ) {
121
+ set value ( value : AnyExpression | ExpressionProps ) {
122
122
if ( this . _value ) this . _value . parent = undefined ;
123
- if ( ! ( 'sassType' in value ) ) value = fromProps ( value ) ;
124
- if ( value ) value . parent = this ;
125
- this . _value = value ;
123
+ const built = 'sassType' in value ? value : fromProps ( value ) ;
124
+ built . parent = this ;
125
+ this . _value = built ;
126
126
}
127
- private declare _value ?: Expression ;
127
+ private declare _value ?: AnyExpression ;
128
128
129
129
/**
130
130
* Whether this is a rest argument (indicated by `...` in Sass).
@@ -147,14 +147,14 @@ export class Argument extends Node {
147
147
if ( 'sassType' in props || ! ( 'value' in props ) ) {
148
148
defaults = {
149
149
name,
150
- value : props as Expression | ExpressionProps ,
150
+ value : props as AnyExpression | ExpressionProps ,
151
151
} ;
152
152
} else {
153
153
defaults = { name, ...props } as ArgumentObjectProps ;
154
154
}
155
155
} else if ( 'sassType' in defaults || ! ( 'value' in defaults ) ) {
156
156
defaults = {
157
- value : defaults as Expression | ExpressionProps ,
157
+ value : defaults as AnyExpression | ExpressionProps ,
158
158
} ;
159
159
}
160
160
super ( defaults ) ;
@@ -193,7 +193,7 @@ export class Argument extends Node {
193
193
}
194
194
195
195
/** @hidden */
196
- get nonStatementChildren ( ) : ReadonlyArray < Expression > {
196
+ get nonStatementChildren ( ) : ReadonlyArray < AnyExpression > {
197
197
return [ this . value ] ;
198
198
}
199
199
}
0 commit comments