js_util 0.2.0
js_util: ^0.2.0 copied to clipboard
Utilities to access JavaScript from Dart.
js_util #
Utilities to access JavaScript from Dart.
- toJS(o): Converts a Dart object to a JavaScript object.
- newObject(): Creates a new JavaScript object.
- defineProperty(o, String prop, PropertyDescription desc): A wrapper for Object.defineProperty
- getValue(o, String prop): Returns
o[prop]. - setValue(o, String prop, value): Performs
o[prop] = value.
These utilities are of great help if a JavaScript API takes a JavaScript object
with keys that are not fixed because js package does not let you create a
JavaScript object without declaring a Dart class with @JS() and @anonymous.
Getting Started #
Include js_util.js in index.html to use js_util functions.
<html>
<head>
<script async src="packages/js_util/dist/js_util.js"></script>
<script async src="packages/browser/dart.js"></script>
</head>
</html>
Usage #
A simple usage example:
final obj = newObject();
defineProperty(obj, 'foo', new PropertyDescription(enumerable: true, value: 1));
defineProperty(obj, 'bar', new PropertyDescription(enumerable: false, value: 2));
final obj = newObject();
setValue(obj, 'foo', 1);
setValue(obj, 'bar', 2);
print(getValue(obj, 'foo')); // 1
print(getValue(obj, 'bar')); // 2
final jsObj = toJS({
'people': [
{'firstName': 'Kwang Yul', 'lastName': 'Seo'},
{'firstName': 'DoHyung', 'lastName': 'Kim'},
{'firstName': 'Kyusun', 'lastName': 'Kim'}
]
});
final people = getValue(jsObj, 'people');
print(getValue(people[0], 'firstName')); // 'Kwang Yul'
Features and bugs #
Please file feature requests and bugs at the issue tracker.