Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## vNext (TBD)

### Enhancements
* None
* Upgrade min Dart SDK to 3.7.0, update all dependencies to latest stable version.

### Fixed
* None
Expand Down
1 change: 0 additions & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ analyzer:
linter:
rules:
avoid_relative_lib_imports: false
package_api_docs: true

# For more information about the core and recommended set of lints, see
# https://dart.dev/go/core-lints
Expand Down
6 changes: 3 additions & 3 deletions melos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ packages:
command:
bootstrap:
environment:
sdk: ^3.6.0
flutter: ^3.27.0
sdk: ^3.7.0
flutter: ^3.38.0
dev_dependencies:
lints: ^5.1.1
lints: ^6.0.0

clean:
hooks:
Expand Down
4 changes: 4 additions & 0 deletions packages/CHANGELOG.ejson.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.4.2

- Upgrade min Dart SDK to 3.7.0, update all dependencies to latest stable version, and tighten lower bounds.

## 0.4.1

- Upgrade min Dart SDK to 3.6.0, update all dependencies to latest stable version, and tighten lower bounds.
Expand Down
14 changes: 7 additions & 7 deletions packages/ejson/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ topics:
- build-runner
- codegen

version: 0.4.1
version: 0.4.2
repository: https://github.com/realm/realm-dart/ejson/packages/ejson

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dependencies:
collection: ^1.19.0
ejson_annotation: ^0.4.1
ejson_annotation: ^0.4.2
objectid: ^4.0.0
sane_uuid: ^1.0.0
type_plus: ^2.0.0

dev_dependencies:
build_runner: ^2.4.14
ejson_generator: ^0.4.1
lints: ^5.1.1
test: ^1.25.9
build_runner: ^2.6.0
ejson_generator: ^0.4.2
lints: ^6.0.0
test: ^1.27.0
2 changes: 1 addition & 1 deletion packages/ejson_analyzer/lib/src/ejson_analyzer_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:analyzer/dart/element/element.dart';
import 'package:ejson_annotation/ejson_annotation.dart';
import 'package:source_gen/source_gen.dart';

TypeChecker get typeChecker => TypeChecker.fromRuntime(EJson);
TypeChecker get typeChecker => TypeChecker.typeNamed(EJson, inPackage: 'ejson_annotation');

EJson getEJsonAnnotation(Element element) => typeChecker.firstAnnotationOfExact(element) as EJson;
bool isEJsonAnnotated(Element element) => typeChecker.hasAnnotationOfExact(element);
14 changes: 7 additions & 7 deletions packages/ejson_analyzer/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ 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.4.1
version: 0.4.2
repository: https://github.com/realm/realm-dart/ejson/packages/ejson_analyzer

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dependencies:
analyzer: ^7.3.0
ejson_annotation: ^0.4.1
source_gen: ^2.0.0
analyzer: ^8.0.0
ejson_annotation: ^0.4.2
source_gen: ^4.0.0

dev_dependencies:
lints: ^5.1.1
test: ^1.25.9
lints: ^6.0.0
test: ^1.27.0
6 changes: 3 additions & 3 deletions packages/ejson_annotation/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ 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.4.1
version: 0.4.2
repository: https://github.com/realm/realm-dart/ejson/packages/ejson_annotation

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dev_dependencies:
lints: ^5.1.1
lints: ^6.0.0
12 changes: 6 additions & 6 deletions packages/ejson_generator/lib/src/generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ class EJsonGenerator extends Generator {
EJsonError.noExplicitConstructor.raise();
}

for (final p in ctor.parameters) {
for (final p in ctor.formalParameters) {
// check that all ctor parameters have a getter with the same name and type
final getter = cls.getGetter(p.name);
final getter = cls.getGetter(p.displayName);
if (getter == null) {
EJsonError.missingGetter.raise();
}
Expand All @@ -82,14 +82,14 @@ class EJsonGenerator extends Generator {
return '''
EJsonValue _encode$className($className value) {
return {
${ctor.parameters.map((p) => "'${p.name}': value.${p.name}.toEJson()").join(',\n')}
${ctor.formalParameters.map((p) => "'${p.name}': value.${p.name}.toEJson()").join(',\n')}
};
}

$className _decode$className(EJsonValue ejson) {
return switch (ejson) {
${decodePattern(ctor.parameters)} => $className${ctor.name.isEmpty ? '' : '.${ctor.name}'}(
${ctor.parameters.map((p) => "${p.isNamed ? '${p.name} : ' : ''}fromEJson(${p.name})").join(',\n')}
${decodePattern(ctor.formalParameters)} => $className${ctor.displayName.isEmpty ? '' : '.${ctor.displayName}'}(
${ctor.formalParameters.map((p) => "${p.isNamed ? '${p.name} : ' : ''}fromEJson(${p.name})").join(',\n')}
),
_ => raiseInvalidEJson(ejson),
};
Expand All @@ -106,7 +106,7 @@ class EJsonGenerator extends Generator {
}
}

String decodePattern(Iterable<ParameterElement> parameters) {
String decodePattern(Iterable<FormalParameterElement> parameters) {
if (parameters.isEmpty) {
return 'Map m when m.isEmpty';
}
Expand Down
24 changes: 12 additions & 12 deletions packages/ejson_generator/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,25 @@ topics:
- build-runner
- codegen

version: 0.4.1
version: 0.4.2
repository: https://github.com/realm/realm-dart/ejson/packages/ejson_generator

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dependencies:
analyzer: ^7.3.0
build: '2.4.2'
ejson_analyzer: ^0.4.1
source_gen: ^2.0.0
analyzer: ^8.0.0
build: 4.0.2
ejson_analyzer: ^0.4.2
source_gen: ^4.0.0

dev_dependencies:
build_runner: ^2.4.14
build_test: ^2.2.2
build_runner: ^2.6.0
build_test: ^3.0.0
dart_style: ^3.0.1
ejson: ^0.4.1
ejson_annotation: ^0.4.1
lints: ^5.1.1
ejson: ^0.4.2
ejson_annotation: ^0.4.2
lints: ^6.0.0
meta: ^1.15.0
test: ^1.25.9
test: ^1.27.0
pub_semver: ^2.2.0
12 changes: 7 additions & 5 deletions packages/ejson_generator/test/compile_test.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'dart:convert';
import 'dart:io';

import 'package:build_test/build_test.dart';
Expand Down Expand Up @@ -30,14 +31,15 @@ void testCompile(String description, dynamic source, dynamic matcher, {dynamic s

test(description, () {
generate() async {
final writer = InMemoryAssetWriter();
await testBuilder(
final result = await testBuilder(
getEJsonGenerator(),
{'pkg|source.dart': source as Object},
writer: writer,
reader: await PackageAssetReader.currentIsolate(),
);
return _formatter.format(String.fromCharCodes(writer.assets.entries.single.value));
final rw = result.readerWriter;
final outId = rw.testing.assetsWritten.single;
final bytes = await rw.readAsBytes(outId);

return _formatter.format(utf8.decode(bytes));
}

expect(generate(), matcher);
Expand Down
10 changes: 5 additions & 5 deletions packages/ejson_lint/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ version: 1.0.0
publish_to: none

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dependencies:
ejson_annotation: ^0.4.1
ejson_annotation: ^0.4.2

dev_dependencies:
custom_lint: ^0.7.1
ejson_lint: ^0.4.1
lints: ^5.1.1
custom_lint: ^0.8.1
ejson_lint: ^0.4.2
lints: ^6.0.0
16 changes: 8 additions & 8 deletions packages/ejson_lint/lib/src/lints/mismatched_getter_type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,27 @@ class MismatchedGetterType extends DartLintRule {
code: const LintCode(
name: 'mismatched_getter_type',
problemMessage: 'Type of getter does not match type of constructor parameter',
errorSeverity: error.ErrorSeverity.ERROR,
errorSeverity: error.DiagnosticSeverity.ERROR,
),
);

@override
void run(
CustomLintResolver resolver,
ErrorReporter reporter,
DiagnosticReporter reporter,
CustomLintContext context,
) {
context.registry.addConstructorDeclaration((node) {
final ctor = node.declaredElement;
final ctor = node.declaredFragment?.element;
if (ctor == null) return; // not resolved;
if (isEJsonAnnotated(ctor)) {
final cls = ctor.enclosingElement3 as ClassElement;
for (final param in ctor.parameters) {
final getter = cls.getGetter(param.name);
final cls = ctor.enclosingElement as ClassElement;
for (final param in ctor.formalParameters) {
final getter = cls.getGetter(param.name ?? "");
if (getter == null) continue;
if (getter.returnType != param.type) {
reporter.atElement(getter, code);
reporter.atElement(param, code);
reporter.atElement2(getter, code);
reporter.atElement2(param, code);
}
}
}
Expand Down
14 changes: 7 additions & 7 deletions packages/ejson_lint/lib/src/lints/missing_getter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,24 @@ class MissingGetter extends DartLintRule {
code: const LintCode(
name: 'missing_getter',
problemMessage: 'Missing getter for constructor parameter',
errorSeverity: error.ErrorSeverity.ERROR,
errorSeverity: error.DiagnosticSeverity.ERROR,
),
);

@override
void run(
CustomLintResolver resolver,
ErrorReporter reporter,
DiagnosticReporter reporter,
CustomLintContext context,
) {
context.registry.addConstructorDeclaration((node) {
final ctor = node.declaredElement;
final ctor = node.declaredFragment?.element;
if (ctor == null) return; // not resolved;
if (isEJsonAnnotated(ctor)) {
final cls = ctor.enclosingElement3 as ClassElement;
for (final param in ctor.parameters) {
final getter = cls.getGetter(param.name);
if (getter == null) reporter.atElement(param, code);
final cls = ctor.enclosingElement as ClassElement;
for (final param in ctor.formalParameters) {
final getter = cls.getGetter(param.name ?? "");
if (getter == null) reporter.atElement2(param, code);
}
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,24 +21,24 @@ class TooManyAnnotatedConstructors extends DartLintRule {
code: const LintCode(
name: 'too_many_annotated_constructors',
problemMessage: 'Only one constructor can be annotated',
errorSeverity: error.ErrorSeverity.ERROR,
errorSeverity: error.DiagnosticSeverity.ERROR,
),
);

@override
void run(
CustomLintResolver resolver,
ErrorReporter reporter,
DiagnosticReporter reporter,
CustomLintContext context,
) {
context.registry.addClassDeclaration((node) {
final cls = node.declaredElement;
final cls = node.declaredFragment?.element;
if (cls == null) return; // not resolved;

final annotatedConstructors = cls.constructors.where((ctor) => isEJsonAnnotated(ctor));
if (annotatedConstructors.length > 1) {
for (final ctor in annotatedConstructors) {
reporter.atElement(ctor, code);
reporter.atElement2(ctor, code);
}
}
});
Expand Down
14 changes: 7 additions & 7 deletions packages/ejson_lint/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ 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.4.1
version: 0.4.2
repository: https://github.com/realm/realm-dart/ejson/packages/ejson_lint

environment:
sdk: ^3.6.0
sdk: ^3.7.0

dependencies:
analyzer: ^7.3.0
custom_lint_builder: ^0.7.1
ejson_analyzer: ^0.4.1
analyzer: ^8.0.0
custom_lint_builder: ^0.8.1
ejson_analyzer: ^0.4.2

dev_dependencies:
lints: ^5.1.1
test: ^1.25.9
lints: ^6.0.0
test: ^1.27.0
6 changes: 3 additions & 3 deletions packages/realm/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ version: 2.0.0-alpha.2
publish_to: "none"

environment:
sdk: ^3.6.0
flutter: ^3.27.0
sdk: ^3.7.0
flutter: ^3.38.0

dependencies:
flutter:
Expand All @@ -15,7 +15,7 @@ dependencies:
characters: ^1.4.0

dev_dependencies:
flutter_lints: ^5.0.0
flutter_lints: ^6.0.0

flutter:
uses-material-design: true
4 changes: 2 additions & 2 deletions packages/realm/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ repository: https://github.com/realm/realm-dart
issue_tracker: https://github.com/realm/realm-dart/issues

environment:
sdk: ^3.6.0
flutter: ^3.27.0
sdk: ^3.7.0
flutter: ^3.38.0

dependencies:
flutter:
Expand Down
Loading
Loading