Skip to content

Commit 49f320c

Browse files
committed
feat: managed all api changes in Surreal dart class
1 parent fbb3340 commit 49f320c

File tree

5 files changed

+34
-36
lines changed

5 files changed

+34
-36
lines changed

example/lib/main.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ class _HomePageState extends State<HomePage> {
108108
);
109109

110110
final created = await execute(
111-
() async {
112-
final results = await db.create(
111+
() {
112+
return db.create(
113113
'person',
114114
{
115115
'title': 'CTO',
@@ -119,8 +119,7 @@ class _HomePageState extends State<HomePage> {
119119
},
120120
'marketing': true,
121121
},
122-
) as List;
123-
return results.first;
122+
);
124123
},
125124
'db.create()',
126125
);

example/pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ dependencies:
1212

1313
flutter_console_widget: ^0.0.3
1414
surrealdb_wasm:
15+
# path: ../
1516

1617
dev_dependencies:
1718
flutter_test:

integration_test/surrealdb_wasm_test.dart

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ SIGNIN (
4040
});
4141

4242
testWidgets('Verify the current namespace', (WidgetTester tester) async {
43-
final results = (await db.query('INFO FOR NS'))! as List;
44-
final result = Map<String, dynamic>.from(results.first as Map);
43+
final results = await db.query('INFO FOR NS');
44+
final result = Map<String, dynamic>.from(results! as Map);
4545
expect(
4646
result['databases'],
4747
isEmpty, // nothing had been created
@@ -54,8 +54,8 @@ SIGNIN (
5454
'name': 'Tobie',
5555
'settings': {'active': true, 'marketing': true},
5656
};
57-
final results = (await db.create('person', data))! as List;
58-
final tobie = Map<String, dynamic>.from(results.first as Map);
57+
final result = await db.create('person', data);
58+
final tobie = Map<String, dynamic>.from(result! as Map);
5959
expect(tobie['id'], isNotNull);
6060
});
6161

@@ -72,10 +72,10 @@ DEFINE FIELD created ON document TYPE datetime;
7272
'content': 'doc 1',
7373
'created': created,
7474
};
75-
final results = (await db
76-
.query('CREATE ONLY document CONTENT ${jsonEncode(data)}'))! as List;
75+
final result =
76+
await db.query('CREATE ONLY document CONTENT ${jsonEncode(data)}');
7777
final doc = Map<String, dynamic>.from(
78-
results.first as Map,
78+
result! as Map,
7979
);
8080
expect(doc['id'], isNotNull);
8181
expect(doc['created'], equals(created));
@@ -84,11 +84,11 @@ DEFINE FIELD created ON document TYPE datetime;
8484
final mergeData = {
8585
'created': mergedDate,
8686
};
87-
final merged = (await db.query(
87+
final merged = await db.query(
8888
'UPDATE ONLY ${doc['id']} MERGE ${jsonEncode(mergeData)}',
89-
))! as List;
89+
);
9090
final mergedDoc = Map<String, dynamic>.from(
91-
merged.first as Map,
91+
merged! as Map,
9292
);
9393
expect(mergedDoc['created'], equals(mergedDate));
9494
});
@@ -99,13 +99,12 @@ DEFINE FIELD created ON document TYPE datetime;
9999
'name': 'Tom',
100100
'settings': {'active': true, 'marketing': false},
101101
};
102-
final created = ((await db.create('person', data))! as List).first;
102+
final created = await db.create('person', data);
103103
final tom = Map<String, dynamic>.from(created! as Map);
104104
tom['name'] = 'Tom John';
105105
tom.remove('settings');
106106

107-
final updated =
108-
((await db.update(tom.remove('id') as String, tom))! as List).first;
107+
final updated = await db.update(tom.remove('id') as String, tom);
109108
final updatedTom = Map<String, dynamic>.from(updated! as Map);
110109
expect(updatedTom['name'], equals(tom['name']));
111110
expect(updatedTom['settings'], isNull);
@@ -117,13 +116,12 @@ DEFINE FIELD created ON document TYPE datetime;
117116
'name': 'Tom',
118117
'settings': {'active': true, 'marketing': false},
119118
};
120-
final created = ((await db.create('person', data))! as List).first;
119+
final created = await db.create('person', data);
121120
final tom = Map<String, dynamic>.from(created! as Map);
122121
final mergeData = {
123122
'settings': {'marketing': true},
124123
};
125-
final merged =
126-
((await db.merge(tom['id'] as String, mergeData))! as List).first;
124+
final merged = await db.merge(tom['id'] as String, mergeData);
127125
final mergedTom = Map<String, dynamic>.from(merged! as Map);
128126
final settings = Map<String, dynamic>.from(mergedTom['settings'] as Map);
129127
expect(settings['active'], equals(true));
@@ -136,10 +134,10 @@ DEFINE FIELD created ON document TYPE datetime;
136134
'name': 'Tom',
137135
'settings': {'active': true, 'marketing': false},
138136
};
139-
final created = ((await db.create('person', data))! as List).first;
137+
final created = await db.create('person', data);
140138
final tom = Map<String, dynamic>.from(created! as Map);
141-
final result = ((await db.select(tom['id'] as String))! as List).first;
142-
final selectedTom = Map<String, dynamic>.from(result! as Map);
139+
final results = (await db.select(tom['id'] as String))! as List;
140+
final selectedTom = Map<String, dynamic>.from(results.first as Map);
143141
expect(tom['name'], equals(selectedTom['name']));
144142
});
145143

@@ -160,7 +158,7 @@ DEFINE FIELD created ON document TYPE datetime;
160158
},
161159
);
162160
const sql = 'SELECT * FROM person';
163-
final results = ((await db.query(sql))! as List).first;
161+
final results = await db.query(sql);
164162
final people = results! as List;
165163
expect(people.length, equals(2));
166164
});
@@ -171,7 +169,7 @@ DEFINE FIELD created ON document TYPE datetime;
171169
'name': 'Tom',
172170
'settings': {'active': true, 'marketing': false},
173171
};
174-
final created = ((await db.create('person', data))! as List).first;
172+
final created = await db.create('person', data);
175173
final tom = Map<String, dynamic>.from(created! as Map);
176174
final id = tom['id'] as String;
177175
await db.delete(id);
@@ -193,10 +191,9 @@ DEFINE FIELD created ON document TYPE datetime;
193191
await db.patch('keyValue', [
194192
{'op': 'replace', 'path': '/key', 'value': 'newValue'},
195193
]);
196-
final result =
197-
((await db.query('SELECT key FROM keyValue'))! as List).first;
194+
final result = await db.query('SELECT key FROM keyValue');
198195
expect(
199-
result as List,
196+
result! as List,
200197
equals([
201198
{'key': 'newValue'},
202199
]),

integration_test/transaction_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void main() {
6363
);
6464
});
6565

66-
final result = ((await db.query('SELECT * FROM test;'))! as List).first;
66+
final result = await db.query('SELECT * FROM test;');
6767
expect(result, isNotEmpty);
6868
final test = Map<String, dynamic>.from(
6969
(result! as List).first as Map,
@@ -88,7 +88,7 @@ void main() {
8888
transactionResult,
8989
equals('Transaction has been canceled by user.'),
9090
);
91-
final result = ((await db.query('SELECT * FROM test;'))! as List).first;
91+
final result = await db.query('SELECT * FROM test;');
9292
expect(result, isEmpty);
9393
});
9494

@@ -157,7 +157,7 @@ void main() {
157157
);
158158
});
159159

160-
final result = ((await db.query('SELECT * FROM test2'))! as List).first;
160+
final result = await db.query('SELECT * FROM test2');
161161
// Ensure the data was inserted correctly in the nested transaction
162162
expect(result, isNotEmpty);
163163
final test = Map<String, dynamic>.from(

lib/src/surrealdb_wasm.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ class Surreal {
264264
data is Map || data is Iterable ? jsonEncode(data) : data,
265265
),
266266
);
267-
return dartify(result);
267+
return (dartify(result)! as List).first;
268268
}
269269

270270
/// Updates a specific resource(record)
@@ -309,7 +309,7 @@ class Surreal {
309309
data is Map || data is Iterable ? jsonEncode(data) : data,
310310
),
311311
);
312-
return dartify(result);
312+
return (dartify(result)! as List).first;
313313
}
314314

315315
/// Merges data into an existing resource(record) or resources(records).
@@ -341,7 +341,7 @@ class Surreal {
341341
data is Map || data is Iterable ? jsonEncode(data) : data,
342342
),
343343
);
344-
return dartify(result);
344+
return (dartify(result)! as List).first;
345345
}
346346

347347
/// Selects and retrieves all resources(records)
@@ -366,7 +366,7 @@ class Surreal {
366366
resource,
367367
),
368368
);
369-
return dartify(result);
369+
return dartify(result)! as List;
370370
}
371371

372372
/// Executes a SurrealQL query on the database.
@@ -394,7 +394,8 @@ class Surreal {
394394
jsonEncode(bindings),
395395
),
396396
);
397-
return dartify(result);
397+
final list = dartify(result)! as List;
398+
return list.isNotEmpty ? list.first : list;
398399
}
399400

400401
/// Deletes a specific resource(record) or all resources(records).

0 commit comments

Comments
 (0)