quickjs 1.0.1 copy "quickjs: ^1.0.1" to clipboard
quickjs: ^1.0.1 copied to clipboard

A dart binding of quickjs, a powerful js engine with native_assets_cli.

example/example.dart

import 'package:quickjs/quickjs.dart';
import 'package:quickjs/src/native_js_engine.dart';

void main() {
  _runAsync();
  _runSync();
  _registerBridge(5);
}

void _runAsync() async {
  final manager = await JsEngineManager.create();
  final engine = await manager.createEngine('tag');
  final result = await engine.eval('console.log(3+4);');
  print(result.stdout?.trim());
  await engine.dispose();
  await manager.dispose();
}

void _runSync() {
  final manager = NativeEngineManager();
  final engine = NativeJsEngine(name: 'tag');
  final result = engine.eval('3-4');
  print(result.value);
  engine.dispose();
  manager.dispose();
}

void _registerBridge(int n) async {
  final manager = await JsEngineManager.create();
  final engine = await manager.createEngine('tag');
  engine.registerBridge('_onDataChanged', (data) {
    print('notified from js: $data');
  });
  final code = """
let obj = {
  update(v) {
    let s = JSON.stringify(v);
    console.log(`update: \${s}`);
    _ffiNotify("_onDataChanged", s);
    return s;
  }
};
obj.update({"key": $n});
  """;
  final result = await engine.eval(code);
  print("eval result: '${result.value}'");
  print("eval stdout: '${result.stdout?.trim()}'");
  await engine.dispose();
  await manager.dispose();
}
6
likes
150
points
149
downloads

Publisher

unverified uploader

Weekly Downloads

A dart binding of quickjs, a powerful js engine with native_assets_cli.

Repository (GitHub)
View/report issues

Topics

#js

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

ffi, native_assets_cli

More

Packages that depend on quickjs