Skip to content

Commit 5cf6455

Browse files
authored
Add requireLibraryDirective parameter to jsonPartBuilder (#91)
1 parent bfc6df1 commit 5cf6455

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

json_serializable/lib/builder.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ import 'json_serializable.dart';
88

99
Builder jsonSerializable(BuilderOptions options) => jsonPartBuilder(
1010
header: options.config['header'] as String,
11-
useWrappers: options.config['use_wrappers'] as bool ?? false);
11+
useWrappers: options.config['use_wrappers'] as bool ?? false,
12+
requireLibraryDirective:
13+
options.config['require_library_directive'] as bool ?? true);

json_serializable/lib/src/json_part_builder.dart

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ import 'json_serializable_generator.dart';
2020
/// increase the code size, but it may improve runtime performance, especially
2121
/// for large object graphs.
2222
///
23+
/// May set [requireLibraryDirective] to `false` in order to opt-in to
24+
/// supporting a Dart v2 feature of `part of` being usable without an explicit
25+
/// `library` directive. Developers should restrict their `pubspec` accordingly:
26+
/// ```yaml
27+
/// sdk: '>=2.0.0-dev <2.0.0'
28+
/// ```
29+
///
2330
/// Usage:
2431
///
2532
/// ```dart
@@ -34,10 +41,14 @@ import 'json_serializable_generator.dart';
3441
/// `json_serializable`.
3542
///
3643
/// [example]: https://github.com/dart-lang/json_serializable/tree/master/example
37-
Builder jsonPartBuilder({String header, bool useWrappers: false}) {
44+
Builder jsonPartBuilder(
45+
{String header,
46+
bool useWrappers: false,
47+
bool requireLibraryDirective: true}) {
3848
useWrappers ??= false;
49+
requireLibraryDirective ??= true;
3950
return new PartBuilder([
4051
new JsonSerializableGenerator(useWrappers: useWrappers),
4152
const JsonLiteralGenerator()
42-
], header: header);
53+
], header: header, requireLibraryDirective: requireLibraryDirective);
4354
}

0 commit comments

Comments
 (0)