dartscript
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-alpha.2 • Public • Published

CI NPM version

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 for dartscript to produce (defaults to func.js)
  • --module The module system type, es | cjs (defaults to es)
  • --default Whether to export the function using a default export for the module system (defaults to false)

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.

/dartscript/

    Package Sidebar

    Install

    npm i dartscript

    Weekly Downloads

    3

    Version

    1.0.0-alpha.2

    License

    MIT

    Unpacked Size

    20.5 kB

    Total Files

    19

    Last publish

    Collaborators

    • morganney