dartscript
v1.0.0-alpha.2
Published
Tool for generating JavaScript module of a function from a Dart build.
Downloads
5
Maintainers
Readme
dartscript
Simple CLI utility for creacting a JavaScript module of a Dart function.
Requirements
You need to have the Dart SDK installed.
You need to wrap the function you want converted with allowInterop
from the dart:js
library within main()
. This implies you need to import package:js/js.dart
from the dart file passed to dartscript
, and so will need to list it within your pubspec.yaml
file:
dependencies:
js: ^0.7.1
Example
Given a file with a Dart function (that possibly calls another function)
file.dart
import 'package:js/js.dart';
@JS('greeting')
String greeting(String name) => '$name, hello from Dart!';
@JS('say')
String say(String from, String msg, [bool? greet]) {
var result = '$from says $msg';
if (greet != null && greet) {
result = greeting('Welcome');
}
return result;
}
void main() {
allowInterop(say);
}
Pass it to dartscript
providing the function name to convert to a JS module
dartscript --func say --out say.js file.dart
say.js
export function say(from, msg, greet) {
var result = from + ' says ' + msg
return greet === true ? 'Welcome, hello from Dart!' : result
}
Options
You pass the name of the input Dart file as a positional.
--func
The name of the function from the Dart build to extract (required)--out
The name of the build file fordartscript
to produce (defaults tofunc.js
)--module
The module system type,es | cjs
(defaults toes
)--default
Whether to export the function using a default export for the module system (defaults tofalse
)
You can run dartscript --help
:
Usage: dartscript [options] <path-to-file.dart>
Options:
--func, -f [string] The name of the dart function to extract into a module. Required.
--out, -o [path] Where to save the output file. Defaults to func.js.
--module, -m What module system to use. Defaults to es. [es | cjs].
--default, -d Whether to use a default export. Defaults to named export.
--help, -h Print this message.