Skip to content

Commit ef8403b

Browse files
authored
Merge pull request #41 from nitrite/copilot/fix-flutter-web-compilation
Fix Flutter web compilation: replace int64MaxValue with JavaScript-safe integer constant
2 parents 688b2c9 + ec92e75 commit ef8403b

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

packages/nitrite/lib/src/collection/operations/read_operations.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:dart_numerics/dart_numerics.dart';
21
import 'package:nitrite/nitrite.dart';
32
import 'package:nitrite/src/collection/document_cursor.dart';
43
import 'package:nitrite/src/collection/operations/find_optimizer.dart';
@@ -10,6 +9,10 @@ import 'package:nitrite/src/common/stream/processed_document_stream.dart';
109
import 'package:nitrite/src/common/stream/sorted_document_stream.dart';
1110
import 'package:rxdart/rxdart.dart';
1211

12+
/// Maximum safe integer value for JavaScript (2^53 - 1).
13+
/// This is used instead of int64MaxValue to ensure compatibility with Flutter web.
14+
const int _maxSafeInteger = 9007199254740991;
15+
1316
/// @nodoc
1417
class ReadOperations {
1518
final String _collectionName;
@@ -137,7 +140,7 @@ class ReadOperations {
137140

138141
if (findPlan.limit != null || findPlan.skip != null) {
139142
rawStream = rawStream.skip(findPlan.skip ?? 0);
140-
rawStream = rawStream.take(findPlan.limit ?? int64MaxValue);
143+
rawStream = rawStream.take(findPlan.limit ?? _maxSafeInteger);
141144
}
142145
}
143146

packages/nitrite/test/collection/nitrite_id_test.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'package:dart_numerics/dart_numerics.dart' as num;
21
import 'package:nitrite/nitrite.dart';
32
import 'package:test/test.dart';
43

@@ -11,8 +10,9 @@ void main() async {
1110
});
1211

1312
test('Test Limit', () {
14-
var one = NitriteId.createId(num.int64MaxValue.toString());
15-
var two = NitriteId.createId(num.int64MinValue.toString());
13+
// Using max safe integer for JavaScript (2^53 - 1) to ensure web compatibility
14+
var one = NitriteId.createId('9007199254740991');
15+
var two = NitriteId.createId('-9007199254740991');
1616
expect(one.compareTo(two), 1);
1717
});
1818

0 commit comments

Comments
 (0)