Skip to content

Commit

Permalink
Use strings for CalculationOperator in JS
Browse files Browse the repository at this point in the history
  • Loading branch information
jerivas committed Jun 7, 2023
1 parent fbfe7f1 commit 8c9a7d8
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 14 deletions.
1 change: 0 additions & 1 deletion lib/src/node.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ void main() {
exports.SassBoolean = booleanClass;
exports.SassArgumentList = argumentListClass;
exports.SassCalculation = calculationClass;
exports.CalculationOperator = calculationOperatorClass;
exports.CalculationOperation = calculationOperationClass;
exports.CalculationInterpolation = calculationInterpolationClass;
exports.SassColor = colorClass;
Expand Down
1 change: 0 additions & 1 deletion lib/src/node/exports.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ class Exports {
external set Value(JSClass function);
external set SassArgumentList(JSClass function);
external set SassCalculation(JSClass function);
external set CalculationOperator(JSClass function);
external set CalculationOperation(JSClass function);
external set CalculationInterpolation(JSClass function);
external set SassBoolean(JSClass function);
Expand Down
19 changes: 7 additions & 12 deletions lib/src/node/value/calculation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -87,20 +87,15 @@ final JSClass calculationClass = () {
return jsClass;
}();

/// The JavaScript CalculationOperator class
final JSClass calculationOperatorClass = () {
var jsClass = getJSClass(CalculationOperator.plus).superclass;
setProperty(jsClass, 'plus', CalculationOperator.plus);
setProperty(jsClass, 'minus', CalculationOperator.minus);
setProperty(jsClass, 'times', CalculationOperator.times);
setProperty(jsClass, 'dividedBy', CalculationOperator.dividedBy);
return jsClass;
}();

/// The JavaScript CalculationOperation class
final JSClass calculationOperationClass = () {
var jsClass = createJSClass('sass.CalculationOperation',
(Object self, CalculationOperator operator, Object left, Object right) {
(Object self, String strOperator, Object left, Object right) {
var operator = CalculationOperator.values
.firstWhereOrNull((value) => value.operator == strOperator);
if (operator == null) {
jsThrow(JsError('Invalid operator: $strOperator'));
}
isCalculationValue(left, checkUnquoted: false);
isCalculationValue(right, checkUnquoted: false);
return SassCalculation.operateInternal(operator, left, right,
Expand All @@ -113,7 +108,7 @@ final JSClass calculationOperationClass = () {
});

jsClass.defineGetters({
'operator': (CalculationOperation self) => self.operator,
'operator': (CalculationOperation self) => self.operator.operator,
'left': (CalculationOperation self) => self.left,
'right': (CalculationOperation self) => self.right,
});
Expand Down

0 comments on commit 8c9a7d8

Please sign in to comment.