From 92fd50e6d0d9c82923854e180f3e046593872299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Overg=C3=A5rd=20Nielsen?= Date: Tue, 2 Apr 2024 14:03:25 +0200 Subject: [PATCH] RDART-991: Rename Key enum (#1613) * Rename Key to BsonKey to avoid conflict with flutter Key class * Update EJson CHANGELOG * Update EJson version * Update dependency constraints --- packages/CHANGELOG.ejson.md | 4 ++++ packages/ejson/lib/src/decoding.dart | 10 +++++----- packages/ejson/lib/src/encoding.dart | 8 ++++---- packages/ejson/lib/src/types.dart | 2 +- packages/ejson/pubspec.yaml | 6 +++--- packages/ejson/test/ejson_test.dart | 10 +++++----- packages/ejson_analyzer/pubspec.yaml | 4 ++-- packages/ejson_annotation/pubspec.yaml | 2 +- packages/ejson_generator/pubspec.yaml | 8 ++++---- packages/ejson_lint/example/pubspec.yaml | 4 ++-- packages/ejson_lint/pubspec.yaml | 4 ++-- packages/realm_dart/pubspec.yaml | 2 +- 12 files changed, 34 insertions(+), 30 deletions(-) diff --git a/packages/CHANGELOG.ejson.md b/packages/CHANGELOG.ejson.md index 07315f49a..c34f4be61 100644 --- a/packages/CHANGELOG.ejson.md +++ b/packages/CHANGELOG.ejson.md @@ -1,3 +1,7 @@ +## 0.3.0 + +- Rename `Key` class to `BsonKey` to avoid common conflict with flutter + ## 0.2.0-pre.1 - First published version. diff --git a/packages/ejson/lib/src/decoding.dart b/packages/ejson/lib/src/decoding.dart index 3c808f6ec..d0c369c9d 100644 --- a/packages/ejson/lib/src/decoding.dart +++ b/packages/ejson/lib/src/decoding.dart @@ -22,7 +22,7 @@ const _commonDecoders = { bool: _decodeBool, DateTime: _decodeDate, Defined: _decodeDefined, - Key: _decodeKey, + BsonKey: _decodeKey, Map: _decodeDocument, double: _decodeDouble, num: _decodeNum, @@ -45,7 +45,7 @@ final _decoders = () { TypePlus.addFactory(undefinedOr); TypePlus.addFactory((dynamic f) => f>(), superTypes: [undefinedOr]); TypePlus.addFactory((dynamic f) => f>(), superTypes: [undefinedOr]); - TypePlus.add(); + TypePlus.add(); TypePlus.add(); TypePlus.add(); TypePlus.add(); @@ -173,10 +173,10 @@ int _decodeInt(EJsonValue ejson) { }; } -Key _decodeKey(EJsonValue ejson) { +BsonKey _decodeKey(EJsonValue ejson) { return switch (ejson) { - {'\$minKey': 1} => Key.min, - {'\$maxKey': 1} => Key.max, + {'\$minKey': 1} => BsonKey.min, + {'\$maxKey': 1} => BsonKey.max, _ => raiseInvalidEJson(ejson), }; } diff --git a/packages/ejson/lib/src/encoding.dart b/packages/ejson/lib/src/encoding.dart index 48f37fa91..fd58b398a 100644 --- a/packages/ejson/lib/src/encoding.dart +++ b/packages/ejson/lib/src/encoding.dart @@ -37,7 +37,7 @@ EJsonValue _encodeAny(Object? value) { Defined d => _encodeDefined(d), double d => _encodeDouble(d), int i => _encodeInt(i), - Key k => _encodeKey(k), + BsonKey k => _encodeKey(k), Uint8List b => _encodeBinary(b, subtype: '00'), Iterable l => _encodeArray(l), Map m => _encodeDocument(m), @@ -108,7 +108,7 @@ EJsonValue _encodeInt(int value, {IntFormat? forcedFormat}) { } } -EJsonValue _encodeKey(Key key) => {'\$${key.name}Key': 1}; +EJsonValue _encodeKey(BsonKey key) => {'\$${key.name}Key': 1}; @pragma('vm:prefer-inline') EJsonValue _encodeString(String value) => value; @@ -168,8 +168,8 @@ extension IntEJsonEncoderExtension on int { EJsonValue toEJson({IntFormat? forcedFormat}) => _encodeInt(this, forcedFormat: forcedFormat); } -extension KeyEJsonEncoderExtension on Key { - /// Converts this [Key] to EJson +extension KeyEJsonEncoderExtension on BsonKey { + /// Converts this [BsonKey] to EJson @pragma('vm:prefer-inline') EJsonValue toEJson() => _encodeKey(this); } diff --git a/packages/ejson/lib/src/types.dart b/packages/ejson/lib/src/types.dart index 586857438..671e84df9 100644 --- a/packages/ejson/lib/src/types.dart +++ b/packages/ejson/lib/src/types.dart @@ -29,7 +29,7 @@ enum EJsonType { /// See [MaxKey](https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/#mongodb-bsontype-MaxKey) /// and [MinKey](https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/#mongodb-bsontype-MinKey) -enum Key { min, max } +enum BsonKey { min, max } sealed class UndefinedOr { const UndefinedOr(); diff --git a/packages/ejson/pubspec.yaml b/packages/ejson/pubspec.yaml index 54e9c5c6d..6c2dae36d 100644 --- a/packages/ejson/pubspec.yaml +++ b/packages/ejson/pubspec.yaml @@ -12,7 +12,7 @@ topics: - build-runner - codegen -version: 0.2.0-pre.1 +version: 0.3.0 repository: https://github.com/realm/realm-dart/ejson/packages/ejson environment: @@ -20,13 +20,13 @@ environment: dependencies: collection: ^1.17.0 - ejson_annotation: ^0.2.0-pre.1 + ejson_annotation: ^0.3.0 objectid: ^3.0.0 sane_uuid: ^1.0.0-alpha.5 type_plus: ^2.0.0 dev_dependencies: build_runner: ^2.0.0 - ejson_generator: ^0.2.0-pre.1 + ejson_generator: ^0.3.0 lints: ^3.0.0 test: ^1.21.0 diff --git a/packages/ejson/test/ejson_test.dart b/packages/ejson/test/ejson_test.dart index a0f77962d..7b117b736 100644 --- a/packages/ejson/test/ejson_test.dart +++ b/packages/ejson/test/ejson_test.dart @@ -83,8 +83,8 @@ void main() { expect({'a': 1, 'b': 2}.toEJson(), toEJson({'a': 1, 'b': 2})); expect(DateTime(1974, 4, 10, 2, 42, 12, 202).toEJson(), toEJson(DateTime(1974, 4, 10, 2, 42, 12, 202))); expect((#sym).toEJson(), toEJson(#sym)); - expect(Key.max.toEJson(), toEJson(Key.max)); - expect(Key.min.toEJson(), toEJson(Key.min)); + expect(BsonKey.max.toEJson(), toEJson(BsonKey.max)); + expect(BsonKey.min.toEJson(), toEJson(BsonKey.min)); expect(undefined.toEJson(), toEJson(undefined)); expect(const Undefined().toEJson(), toEJson(const Undefined())); expect(Undefined().toEJson(), toEJson(Undefined())); @@ -108,7 +108,7 @@ void main() { _invalidTestCase({'\$numberDouble': 'foobar'}); _invalidTestCase(); _invalidTestCase(); - _invalidTestCase(); + _invalidTestCase(); _invalidTestCase>(); _invalidTestCase>([]); _invalidTestCase(); @@ -188,8 +188,8 @@ void main() { : {'\$date': time.toIso8601String()}, ); _testCase(#sym, {'\$symbol': 'sym'}); - _testCase(Key.max, {'\$maxKey': 1}); - _testCase(Key.min, {'\$minKey': 1}); + _testCase(BsonKey.max, {'\$maxKey': 1}); + _testCase(BsonKey.min, {'\$minKey': 1}); _testCase(undefined, {'\$undefined': 1}); _testCase(const Undefined(), {'\$undefined': 1}); _testCase(Undefined(), {'\$undefined': 1}); diff --git a/packages/ejson_analyzer/pubspec.yaml b/packages/ejson_analyzer/pubspec.yaml index f4f681b16..0f1b0040a 100644 --- a/packages/ejson_analyzer/pubspec.yaml +++ b/packages/ejson_analyzer/pubspec.yaml @@ -1,7 +1,7 @@ name: ejson_analyzer description: A starting point for Dart libraries or applications. -version: 0.2.0-pre.1 +version: 0.3.0 repository: https://github.com/realm/realm-dart/ejson/packages/ejson_analyzer environment: @@ -9,7 +9,7 @@ environment: dependencies: analyzer: ^6.0.0 - ejson_annotation: ^0.2.0-pre.1 + ejson_annotation: ^0.3.0 source_gen: ^1.3.2 dev_dependencies: diff --git a/packages/ejson_annotation/pubspec.yaml b/packages/ejson_annotation/pubspec.yaml index 37fc6e7cf..a7a56db62 100644 --- a/packages/ejson_annotation/pubspec.yaml +++ b/packages/ejson_annotation/pubspec.yaml @@ -5,7 +5,7 @@ description: >- BSON is a binary format used to store JSON-like documents efficiently. EJSON extends JSON defining how all BSON types should be represented in JSON. -version: 0.2.0-pre.1 +version: 0.3.0 repository: https://github.com/realm/realm-dart/ejson/packages/ejson_annotation environment: diff --git a/packages/ejson_generator/pubspec.yaml b/packages/ejson_generator/pubspec.yaml index f46f8cb24..545536bcc 100644 --- a/packages/ejson_generator/pubspec.yaml +++ b/packages/ejson_generator/pubspec.yaml @@ -12,7 +12,7 @@ topics: - build-runner - codegen -version: 0.2.0-pre.1 +version: 0.3.0 repository: https://github.com/realm/realm-dart/ejson/packages/ejson_generator environment: @@ -21,15 +21,15 @@ environment: dependencies: analyzer: ^6.0.0 build: ^2.4.0 - ejson_analyzer: ^0.2.0-pre.1 + ejson_analyzer: ^0.3.0 source_gen: ^1.3.2 dev_dependencies: build_runner: ^2.4.4 build_test: ^2.1.7 dart_style: ^2.3.1 - ejson: ^0.2.0-pre.1 - ejson_annotation: ^0.2.0-pre.1 + ejson: ^0.3.0 + ejson_annotation: ^0.3.0 lints: ^3.0.0 meta: ^1.9.1 test: ^1.21.0 diff --git a/packages/ejson_lint/example/pubspec.yaml b/packages/ejson_lint/example/pubspec.yaml index b519dcea0..20e90f955 100644 --- a/packages/ejson_lint/example/pubspec.yaml +++ b/packages/ejson_lint/example/pubspec.yaml @@ -8,11 +8,11 @@ environment: sdk: ^3.0.0 dependencies: - ejson_annotation: ^0.2.0-pre.1 + ejson_annotation: ^0.3.0 dev_dependencies: custom_lint: ^0.6.2 - ejson_lint: ^0.2.0-pre.1 + ejson_lint: ^0.3.0 lints: ^3.0.0 diff --git a/packages/ejson_lint/pubspec.yaml b/packages/ejson_lint/pubspec.yaml index 27bfa5400..3b6f3d4c1 100644 --- a/packages/ejson_lint/pubspec.yaml +++ b/packages/ejson_lint/pubspec.yaml @@ -1,7 +1,7 @@ name: ejson_lint description: A starting point for Dart libraries or applications. -version: 0.2.0-pre.1 +version: 0.3.0 repository: https://github.com/realm/realm-dart/ejson/packages/ejson_lint environment: @@ -10,7 +10,7 @@ environment: dependencies: analyzer: ^6.0.0 custom_lint_builder: ^0.6.2 - ejson_analyzer: ^0.2.0-pre.1 + ejson_analyzer: ^0.3.0 dev_dependencies: lints: ^3.0.0 diff --git a/packages/realm_dart/pubspec.yaml b/packages/realm_dart/pubspec.yaml index afbab56bb..2a1fd7a09 100644 --- a/packages/realm_dart/pubspec.yaml +++ b/packages/realm_dart/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: build_cli_annotations: ^2.0.0 collection: ^1.16.0 crypto: ^3.0.0 - ejson: ^0.2.0-pre.1 + ejson: ^0.3.0 ffi: ^2.0.1 json_annotation: ^4.7.0 logging: ^1.2.0