Skip to content

Commit a48e05d

Browse files
committed
refactor(firestore): remove Variable class and update array expression aliases
1 parent ae62102 commit a48e05d

2 files changed

Lines changed: 13 additions & 47 deletions

File tree

packages/cloud_firestore/cloud_firestore/lib/src/pipeline_expression.dart

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -875,9 +875,6 @@ abstract class Expression implements PipelineSerializable {
875875
/// Creates a field reference expression from a field path string
876876
static Field field(String fieldPath) => Field(fieldPath);
877877

878-
/// Creates a variable reference expression from a variable name.
879-
static Variable variable(String name) => Variable(name);
880-
881878
/// Creates a field reference expression from a FieldPath object
882879
static Field fieldPath(FieldPath fieldPath) => Field(fieldPath.toString());
883880

@@ -1768,26 +1765,6 @@ class Field extends Selectable {
17681765
}
17691766
}
17701767

1771-
/// Represents a variable reference in a pipeline expression.
1772-
class Variable extends Expression {
1773-
final String variableName;
1774-
1775-
Variable(this.variableName);
1776-
1777-
@override
1778-
String get name => 'variable';
1779-
1780-
@override
1781-
Map<String, dynamic> toMap() {
1782-
return {
1783-
'name': name,
1784-
'args': {
1785-
'name': variableName,
1786-
},
1787-
};
1788-
}
1789-
}
1790-
17911768
/// Represents a null value expression
17921769
class _NullExpression extends Expression {
17931770
_NullExpression();
@@ -2531,9 +2508,9 @@ class _ArraySumExpression extends FunctionExpression {
25312508
class _ArraySliceExpression extends FunctionExpression {
25322509
final Expression expression;
25332510
final Expression offset;
2534-
final Expression? length;
2511+
final Expression? sliceLength;
25352512

2536-
_ArraySliceExpression(this.expression, this.offset, this.length);
2513+
_ArraySliceExpression(this.expression, this.offset, this.sliceLength);
25372514

25382515
@override
25392516
String get name => 'array_slice';
@@ -2544,8 +2521,8 @@ class _ArraySliceExpression extends FunctionExpression {
25442521
'expression': expression.toMap(),
25452522
'offset': offset.toMap(),
25462523
};
2547-
if (length != null) {
2548-
args['length'] = length!.toMap();
2524+
if (sliceLength != null) {
2525+
args['length'] = sliceLength!.toMap();
25492526
}
25502527
return {
25512528
'name': name,
@@ -2557,10 +2534,10 @@ class _ArraySliceExpression extends FunctionExpression {
25572534
/// Represents an array filter expression.
25582535
class _ArrayFilterExpression extends FunctionExpression {
25592536
final Expression expression;
2560-
final String alias;
2537+
final String elementAlias;
25612538
final BooleanExpression filter;
25622539

2563-
_ArrayFilterExpression(this.expression, this.alias, this.filter);
2540+
_ArrayFilterExpression(this.expression, this.elementAlias, this.filter);
25642541

25652542
@override
25662543
String get name => 'array_filter';
@@ -2571,7 +2548,7 @@ class _ArrayFilterExpression extends FunctionExpression {
25712548
'name': name,
25722549
'args': {
25732550
'expression': expression.toMap(),
2574-
'alias': alias,
2551+
'alias': elementAlias,
25752552
'filter': filter.toMap(),
25762553
},
25772554
};

packages/cloud_firestore/cloud_firestore/test/pipeline_expression_test.dart

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -685,62 +685,51 @@ void main() {
685685
});
686686

687687
test('arrayFilter serializes correctly', () {
688-
final item = Expression.variable('item');
689688
final expr = Field('scores').arrayFilter(
690689
'item',
691-
item.greaterThanValue(10),
690+
Field('item').greaterThanValue(10),
692691
);
693692
expect(expr.toMap(), {
694693
'name': 'array_filter',
695694
'args': {
696695
'expression': Field('scores').toMap(),
697696
'alias': 'item',
698-
'filter': item.greaterThanValue(10).toMap(),
697+
'filter': Field('item').greaterThanValue(10).toMap(),
699698
},
700699
});
701700
});
702701

703702
test('arrayTransform serializes correctly', () {
704-
final score = Expression.variable('score');
705703
final expr = Field('scores').arrayTransform(
706704
'score',
707-
score.multiplyValue(10),
705+
Field('score').multiplyNumber(10),
708706
);
709707
expect(expr.toMap(), {
710708
'name': 'array_transform',
711709
'args': {
712710
'expression': Field('scores').toMap(),
713711
'element_alias': 'score',
714-
'transform': score.multiplyValue(10).toMap(),
712+
'transform': Field('score').multiplyNumber(10).toMap(),
715713
},
716714
});
717715
});
718716

719717
test('arrayTransformWithIndex serializes correctly', () {
720-
final score = Expression.variable('score');
721-
final index = Expression.variable('i');
722718
final expr = Field('scores').arrayTransformWithIndex(
723719
'score',
724720
'i',
725-
score.add(index),
721+
Field('score').add(Field('i')),
726722
);
727723
expect(expr.toMap(), {
728724
'name': 'array_transform_with_index',
729725
'args': {
730726
'expression': Field('scores').toMap(),
731727
'element_alias': 'score',
732728
'index_alias': 'i',
733-
'transform': score.add(index).toMap(),
729+
'transform': Field('score').add(Field('i')).toMap(),
734730
},
735731
});
736732
});
737-
738-
test('variable serializes correctly', () {
739-
expect(Expression.variable('item').toMap(), {
740-
'name': 'variable',
741-
'args': {'name': 'item'},
742-
});
743-
});
744733
});
745734

746735
group('Numeric expressions', () {

0 commit comments

Comments
 (0)