Skip to content

Commit 0159a26

Browse files
committed
♻️ refactor: simplify API method names for better discoverability
Rename JsModule factory methods from verbose 'fromX' to concise names: - JsModule.fromCode() → JsModule.code() - JsModule.fromPath() → JsModule.path() - JsModule.fromBytes() → JsModule.bytes() Update JsAsyncContext.from() parameter name: - rt: → runtime: (clearer parameter naming) Update integration tests and example screens to use new API. Generated code updated accordingly. BREAKING CHANGE: JsModule factory methods renamed
1 parent f56d76a commit 0159a26

15 files changed

Lines changed: 132 additions & 242 deletions

example/integration_test/simple_test.dart

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,14 @@ void main() {
180180
group('JsModule Tests', () {
181181
test('Create modules', () {
182182
final fromCode =
183-
JsModule.fromCode(module: 'test', code: 'export const x = 1;');
183+
JsModule.code(module: 'test', code: 'export const x = 1;');
184184
expect(fromCode.name, 'test');
185185

186186
final fromPath =
187-
JsModule.fromPath(module: 'test2', path: '/path/to/module.js');
187+
JsModule.path(module: 'test2', path: '/path/to/module.js');
188188
expect(fromPath.name, 'test2');
189189

190-
final fromBytes = JsModule.fromBytes(
190+
final fromBytes = JsModule.bytes(
191191
module: 'test3',
192192
bytes: [65, 66, 67],
193193
);
@@ -250,7 +250,7 @@ void main() {
250250
runtime = await JsRuntime.withOptions(
251251
builtin: JsBuiltinOptions.essential(),
252252
);
253-
context = JsContext(rt: runtime);
253+
context = JsContext.from(runtime: runtime);
254254
});
255255

256256
test('Basic expression evaluation', () {
@@ -441,7 +441,7 @@ void main() {
441441
runtime = await JsAsyncRuntime.withOptions(
442442
builtin: JsBuiltinOptions.essential(),
443443
);
444-
context = await JsAsyncContext.from(rt: runtime);
444+
context = await JsAsyncContext.from(runtime: runtime);
445445
});
446446

447447
test('Async basic expression evaluation', () async {
@@ -510,7 +510,7 @@ void main() {
510510
runtime = await JsAsyncRuntime.withOptions(
511511
builtin: JsBuiltinOptions.all(),
512512
);
513-
context = await JsAsyncContext.from(rt: runtime);
513+
context = await JsAsyncContext.from(runtime: runtime);
514514
engine = JsEngine(context: context);
515515
});
516516

@@ -552,7 +552,7 @@ void main() {
552552
await engine.initWithoutBridge();
553553

554554
// Declare module
555-
await engine.declareNewModule(module: JsModule.fromCode(
555+
await engine.declareNewModule(module: JsModule.code(
556556
module: 'math-utils',
557557
code: '''
558558
export const add = (a, b) => a + b;
@@ -575,14 +575,14 @@ void main() {
575575
await engine.initWithoutBridge();
576576

577577
await engine.declareNewModules(modules: [
578-
JsModule.fromCode(
578+
JsModule.code(
579579
module: 'string-utils',
580580
code: '''
581581
export const reverse = (s) => s.split("").reverse().join("");
582582
export const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
583583
''',
584584
),
585-
JsModule.fromCode(
585+
JsModule.code(
586586
module: 'array-utils',
587587
code: '''
588588
export const sum = (arr) => arr.reduce((a, b) => a + b, 0);
@@ -598,7 +598,7 @@ void main() {
598598
test('Clear modules', () async {
599599
await engine.initWithoutBridge();
600600

601-
await engine.declareNewModule(module: JsModule.fromCode(module: 'temp-module', code: 'export const x = 1;'),
601+
await engine.declareNewModule(module: JsModule.code(module: 'temp-module', code: 'export const x = 1;'),
602602
);
603603

604604
expect(await engine.isModuleDeclared(moduleName: 'temp-module'), true);
@@ -730,7 +730,7 @@ void main() {
730730
runtime = await JsAsyncRuntime.withOptions(
731731
builtin: JsBuiltinOptions.all(),
732732
);
733-
context = await JsAsyncContext.from(rt: runtime);
733+
context = await JsAsyncContext.from(runtime: runtime);
734734
engine = JsEngine(context: context);
735735
await engine.initWithoutBridge();
736736
});
@@ -919,7 +919,7 @@ void main() {
919919
runtime = await JsAsyncRuntime.withOptions(
920920
builtin: JsBuiltinOptions.all(),
921921
);
922-
context = await JsAsyncContext.from(rt: runtime);
922+
context = await JsAsyncContext.from(runtime: runtime);
923923
engine = JsEngine(context: context);
924924
await engine.initWithoutBridge();
925925
});
@@ -998,7 +998,7 @@ void main() {
998998
final runtime = await JsAsyncRuntime.withOptions(
999999
builtin: JsBuiltinOptions.essential(),
10001000
);
1001-
final context = await JsAsyncContext.from(rt: runtime);
1001+
final context = await JsAsyncContext.from(runtime: runtime);
10021002
final engine = JsEngine(context: context);
10031003
await engine.initWithoutBridge();
10041004

@@ -1019,7 +1019,7 @@ void main() {
10191019
final runtime = await JsAsyncRuntime.withOptions(
10201020
builtin: JsBuiltinOptions.essential(),
10211021
);
1022-
final context = await JsAsyncContext.from(rt: runtime);
1022+
final context = await JsAsyncContext.from(runtime: runtime);
10231023
final engine = JsEngine(context: context);
10241024
await engine.initWithoutBridge();
10251025

@@ -1037,7 +1037,7 @@ void main() {
10371037
final runtime = await JsAsyncRuntime.withOptions(
10381038
builtin: JsBuiltinOptions.essential(),
10391039
);
1040-
final context = await JsAsyncContext.from(rt: runtime);
1040+
final context = await JsAsyncContext.from(runtime: runtime);
10411041
final engine = JsEngine(context: context);
10421042
await engine.initWithoutBridge();
10431043

@@ -1056,7 +1056,7 @@ void main() {
10561056
final runtime = await JsAsyncRuntime.withOptions(
10571057
builtin: JsBuiltinOptions.essential(),
10581058
);
1059-
final context = await JsAsyncContext.from(rt: runtime);
1059+
final context = await JsAsyncContext.from(runtime: runtime);
10601060
final engine = JsEngine(context: context);
10611061
await engine.initWithoutBridge();
10621062
engines.add(engine);
@@ -1089,7 +1089,7 @@ void main() {
10891089
runtime = await JsAsyncRuntime.withOptions(
10901090
builtin: JsBuiltinOptions.all(),
10911091
);
1092-
context = await JsAsyncContext.from(rt: runtime);
1092+
context = await JsAsyncContext.from(runtime: runtime);
10931093
engine = JsEngine(context: context);
10941094
await engine.initWithoutBridge();
10951095
});
@@ -1241,7 +1241,7 @@ void main() {
12411241
runtime = await JsAsyncRuntime.withOptions(
12421242
builtin: JsBuiltinOptions.all(),
12431243
);
1244-
context = await JsAsyncContext.from(rt: runtime);
1244+
context = await JsAsyncContext.from(runtime: runtime);
12451245
engine = JsEngine(context: context);
12461246
await engine.initWithoutBridge();
12471247
});
@@ -1418,7 +1418,7 @@ void main() {
14181418
runtime = await JsAsyncRuntime.withOptions(
14191419
builtin: JsBuiltinOptions.all(),
14201420
);
1421-
context = await JsAsyncContext.from(rt: runtime);
1421+
context = await JsAsyncContext.from(runtime: runtime);
14221422
engine = JsEngine(context: context);
14231423
await engine.initWithoutBridge();
14241424
});
@@ -1494,7 +1494,7 @@ void main() {
14941494
runtime = await JsAsyncRuntime.withOptions(
14951495
builtin: JsBuiltinOptions.all(),
14961496
);
1497-
context = await JsAsyncContext.from(rt: runtime);
1497+
context = await JsAsyncContext.from(runtime: runtime);
14981498
engine = JsEngine(context: context);
14991499
});
15001500

@@ -1634,7 +1634,7 @@ void main() {
16341634
final runtime = await JsAsyncRuntime.withOptions(
16351635
builtin: JsBuiltinOptions.essential(),
16361636
);
1637-
final context = await JsAsyncContext.from(rt: runtime);
1637+
final context = await JsAsyncContext.from(runtime: runtime);
16381638

16391639
// Set a small memory limit
16401640
await runtime.setMemoryLimit(limit: BigInt.from(1024 * 1024)); // 1MB
@@ -1654,7 +1654,7 @@ void main() {
16541654
final runtime = await JsAsyncRuntime.withOptions(
16551655
builtin: JsBuiltinOptions.essential(),
16561656
);
1657-
final context = await JsAsyncContext.from(rt: runtime);
1657+
final context = await JsAsyncContext.from(runtime: runtime);
16581658
final engine = JsEngine(context: context);
16591659
await engine.initWithoutBridge();
16601660

@@ -1679,8 +1679,8 @@ void main() {
16791679
builtin: JsBuiltinOptions.essential(),
16801680
);
16811681

1682-
final context1 = await JsAsyncContext.from(rt: runtime);
1683-
final context2 = await JsAsyncContext.from(rt: runtime);
1682+
final context1 = await JsAsyncContext.from(runtime: runtime);
1683+
final context2 = await JsAsyncContext.from(runtime: runtime);
16841684

16851685
final engine1 = JsEngine(context: context1);
16861686
final engine2 = JsEngine(context: context2);

example/lib/screens/engine_api_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class _EngineApiScreenState extends State<EngineApiScreen> {
3636
_runtime = await JsAsyncRuntime.withOptions(
3737
builtin: JsBuiltinOptions.all(),
3838
);
39-
_context = await JsAsyncContext.from(rt: _runtime!);
39+
_context = await JsAsyncContext.from(runtime: _runtime!);
4040
_engine = JsEngine(context: _context!);
4141
await _engine!.init(
4242
bridge: (value) async {

example/lib/screens/error_api_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class _ErrorApiScreenState extends State<ErrorApiScreen> {
3434
_runtime = await JsAsyncRuntime.withOptions(
3535
builtin: JsBuiltinOptions.all(),
3636
);
37-
_context = await JsAsyncContext.from(rt: _runtime!);
37+
_context = await JsAsyncContext.from(runtime: _runtime!);
3838
_engine = JsEngine(context: _context!);
3939
await _engine!.initWithoutBridge();
4040
setState(() => _isInitialized = true);

example/lib/screens/example_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class MyEngine {
4545
name: 'linkedom',
4646
source: JsCode.bytes(linkedom.buffer.asUint8List())),
4747
]);
48-
final context = await JsAsyncContext.from(rt: rt);
48+
final context = await JsAsyncContext.from(runtime: rt);
4949
final engine = JsEngine(context: context);
5050
if (bridgeCall != null) {
5151
await engine.init(bridge: bridgeCall);

example/lib/screens/runtime_api_screen.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class _RuntimeApiScreenState extends State<RuntimeApiScreen> {
3434
_runtime = await JsAsyncRuntime.withOptions(
3535
builtin: JsBuiltinOptions.all(),
3636
);
37-
_context = await JsAsyncContext.from(rt: _runtime!);
37+
_context = await JsAsyncContext.from(runtime: _runtime!);
3838
_engine = JsEngine(context: _context!);
3939
await _engine!.initWithoutBridge();
4040
setState(() => _isInitialized = true);
@@ -250,7 +250,7 @@ class _RuntimeApiScreenState extends State<RuntimeApiScreen> {
250250
error: _testResults['context_create']?.error,
251251
onRun: () => _runTest('context_create', () async {
252252
final rt = JsAsyncRuntime();
253-
final ctx = await JsAsyncContext.from(rt: rt);
253+
final ctx = await JsAsyncContext.from(runtime: rt);
254254
return 'JsAsyncContext (${ctx.hashCode}) created from runtime (${rt.hashCode})';
255255
}),
256256
),

example/lib/screens/source_api_screen.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
3434
_runtime = await JsAsyncRuntime.withOptions(
3535
builtin: JsBuiltinOptions.all(),
3636
);
37-
_context = await JsAsyncContext.from(rt: _runtime!);
37+
_context = await JsAsyncContext.from(runtime: _runtime!);
3838
_engine = JsEngine(context: _context!);
3939
await _engine!.initWithoutBridge();
4040
setState(() => _isInitialized = true);
@@ -246,15 +246,15 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
246246
}),
247247
),
248248
ApiTestCard(
249-
title: 'JsModule.fromCode()',
249+
title: 'JsModule.code()',
250250
subtitle: 'Create module from code string',
251251
icon: Icons.text_snippet,
252252
isSuccess: _testResults['module_from_code']?.isSuccess,
253253
isLoading: _testResults['module_from_code']?.isLoading ?? false,
254254
result: _testResults['module_from_code']?.result,
255255
error: _testResults['module_from_code']?.error,
256256
onRun: () => _runTest('module_from_code', () async {
257-
final module = JsModule.fromCode(
257+
final module = JsModule.code(
258258
module: 'code-module',
259259
code: '''
260260
export function greet(name) {
@@ -277,7 +277,7 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
277277
}),
278278
),
279279
ApiTestCard(
280-
title: 'JsModule.fromBytes()',
280+
title: 'JsModule.bytes()',
281281
subtitle: 'Create module from bytes',
282282
icon: Icons.data_array,
283283
isSuccess: _testResults['module_from_bytes']?.isSuccess,
@@ -286,7 +286,7 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
286286
error: _testResults['module_from_bytes']?.error,
287287
onRun: () => _runTest('module_from_bytes', () async {
288288
final codeBytes = 'export const PI = 3.14159;'.codeUnits;
289-
final module = JsModule.fromBytes(
289+
final module = JsModule.bytes(
290290
module: 'bytes-module',
291291
bytes: codeBytes,
292292
);
@@ -320,7 +320,7 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
320320
await _engine!.clearNewModules();
321321

322322
// Create base module
323-
await _engine!.declareNewModule(module: JsModule.fromCode(
323+
await _engine!.declareNewModule(module: JsModule.code(
324324
module: 'math-base',
325325
code: '''
326326
export const PI = 3.14159;
@@ -329,7 +329,7 @@ class _SourceApiScreenState extends State<SourceApiScreen> {
329329
));
330330

331331
// Create dependent module
332-
await _engine!.declareNewModule(module: JsModule.fromCode(
332+
await _engine!.declareNewModule(module: JsModule.code(
333333
module: 'math-advanced',
334334
code: '''
335335
import { PI, square } from 'math-base';

example/lib/services/fjs_service.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class FjsService extends ChangeNotifier {
3838
try {
3939
_runtime =
4040
await JsAsyncRuntime.withOptions(builtin: JsBuiltinOptions.all());
41-
_context = await JsAsyncContext.from(rt: _runtime!);
41+
_context = await JsAsyncContext.from(runtime: _runtime!);
4242
_engine = JsEngine(context: _context!);
4343

4444
await _engine!.initWithoutBridge();

example/lib/services/js_actions_service.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class JsActionsService extends ChangeNotifier {
2424
final runtime = await JsAsyncRuntime.withOptions(
2525
builtin: JsBuiltinOptions.all(),
2626
);
27-
final context = await JsAsyncContext.from(rt: runtime);
27+
final context = await JsAsyncContext.from(runtime: runtime);
2828
_engine = JsEngine(context: context);
2929

3030
await _engine!.initWithoutBridge();

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ packages:
143143
path: ".."
144144
relative: true
145145
source: path
146-
version: "1.5.0"
146+
version: "1.4.0"
147147
flutter:
148148
dependency: "direct main"
149149
description: flutter

lib/src/frb/api/engine.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ abstract class JsEngine implements RustOpaqueInterface {
3838
/// final result = await engine.call(
3939
/// module: 'math-utils',
4040
/// method: 'add',
41-
/// params: [JsValue.int(1), JsValue.int(2)],
41+
/// params: [JsValue.integer(1), JsValue.integer(2)],
4242
/// );
4343
/// print(result.value); // 3
4444
///

0 commit comments

Comments
 (0)