dartfx 1.0.12 icon indicating copy to clipboard operation
dartfx: ^1.0.12 copied to clipboard

A simple lightly function calculator for dart and javascript.

1642346505729.png

This project was developed on dart-analyzer

Features #

Support dart and javascript both.

Operators #

+, -, *, /, ~/, %, -(Negative), >, <, ==, >=, <=, !=, &&, ||, !, &, |,
~, ^, >>, <<, =, +=, -=, &=, |=, ^=, >>=, <<=, expr1 ? expr2 : expr3

The operator doc : Operators | Dart

Internal Functions #

FunctionComment
num ABS(num a)Return absolutely value of number.
num SUM(List list)Return sum value of a number set.
double AVERAGE(List list)Return average value of a number set.
num ROUND(num value, int digit)Return number value closest to this and limit digits after the decimal point.
String FIXED(num value, int digit)Return string value closest to this and limit digits after the decimal point.
int INTCEIL(num value)Return the least integer value no smaller than this.
int INTFLOOR(num value)Return the greatest integer value no greater than this.
num POW(num x, num exp)Returns x to the power of exp.
num SQRT(num x)Converts x to a double and returns the positive square root of the value.
bool CONTAIN(List list, List sub)Return list is contains all elements in sub.
bool ISEMPTY(dynamic value)Return value is empty or not. The value should be one of String, List or Map.
num MAX(num a, num b, [num c, ...])Return the max value of number arguments.
num MIN(num a, num b, [num c, ...])Return the min value of number arguments.
num VALUE(String a)Convert string to number.
bool REGMATCH(String source, r{String reg})Return the string is match regular rule, true of false. The reg argument need a prefix char r. eg: r"1[0-9]\d{9}$" .
String SUBSTRING(String s, int start, [int length])Return sub string.
String REPLACESTRING(String soruce, String old, String new)Replace sub string by a new one. And return the new string.
String TIMEFORMAT(int timestamp, String pattern)Return the formated timestamp. The pattern could be "yyyy-MM-dd HH:mm:ss".
int TIMESTAMP(String dateString, String pattern)Return the timestamp value that parse from a string.

Getting started #

dependencies:
    dartfx: ^1.0.10

To build jsfx.

make buildjs

Usage #

Dart: #

import 'package:dartfx/dartfx.dart';

void main(){
  var result = fx("1+(2+3)*7-4");
  print('Fx output: $result');

  var envs = {
    "43858": {"message": "hello"},
    "43859": {"currency": "100", "unitName": "Yuan"}
  };

  result = fxWithEnvs('\$43859.currency\$+\$43859.unitName\$', envs);
  print('Fx output: $result');

  result = fxAssignment('\$43858.message\$=\$43859.currency\$+\$43859.unitName\$', envs);
  print('Fx output: ${envs["43858"]["message"]}');

  fxSetFunctionApply((name, arguments) {
    if (name == 'RMB') {
      return '¥${arguments.first}';
    }
  });
  result = fx('RMB(100)');
  print('Fx output: $result');
}

JS: #

import { fx, fxWithEnvs, fxAssignment, fxSetFunctionApply } from './jsfx';

console.log(fx('1+(2+3)*7 - 4/2'));

var envs = {
    "43858": { "message": "hello" },
    "43859": { "currency": "100", "unitName": "Yuan" }
};
console.log(fxWithEnvs('\$43859.currency\$+\$43859.unitName\$', envs));

var result = fxAssignment('\$43858.message\$=\$43859.currency\$+\$43859.unitName\$', envs);
console.log(envs["43858"]["message"]);

fxSetFunctionApply((...args) => {
    var funcName = args[0];
    if (funcName == 'RMB') {
        var value = args[1];
        return `¥${value}`;
    }
});
console.log(fx('RMB(100)'));

More usage check the test case: test/dartfx_test.dart & js/jsfx.test.ts

License #

See LICENSE

1
likes
120
pub points
34%
popularity

Publisher

verified publisher icondev.apptoy.cc

A simple lightly function calculator for dart and javascript.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Icon for licenses.BSD-3-Clause (LICENSE)

Dependencies

analyzer, convert, crypto, intl, logger, meta

More

Packages that depend on dartfx