Skip to content

Commit ab30875

Browse files
authored
Migrate most of lib/src/generators to nnbd (#2837)
* squash * empty commit - reset actions
1 parent 5b92bb4 commit ab30875

11 files changed

+63
-73
lines changed

lib/options.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ class DartdocGeneratorOptionContext extends DartdocOptionContext {
3636

3737
bool get prettyIndexJson => optionSet['prettyIndexJson'].valueAt(context);
3838

39-
String get favicon => optionSet['favicon'].valueAt(context);
39+
String? get favicon => optionSet['favicon'].valueAt(context);
4040

4141
String get relCanonicalPrefix =>
4242
optionSet['relCanonicalPrefix'].valueAt(context);
4343

4444
/// The 'templatesDir' Dartdoc option if one was specified; otherwise `null`.
45-
String get templatesDir => optionSet['templatesDir'].valueAt(context);
45+
String? get templatesDir => optionSet['templatesDir'].valueAt(context);
4646

4747
// TODO(jdkoren): duplicated temporarily so that GeneratorContext is enough for configuration.
4848
@override

lib/src/generator/dartdoc_generator_backend.dart

Lines changed: 23 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'package:analyzer/file_system/file_system.dart';
86
import 'package:dartdoc/options.dart';
97
import 'package:dartdoc/src/generator/generator.dart';
@@ -19,12 +17,12 @@ import 'package:path/path.dart' as path show Context;
1917
/// Configuration options for the Dartdoc's default backend.
2018
class DartdocGeneratorBackendOptions implements TemplateOptions {
2119
@override
22-
final String relCanonicalPrefix;
20+
final String? relCanonicalPrefix;
2321

2422
@override
2523
final String toolVersion;
2624

27-
final String favicon;
25+
final String? favicon;
2826

2927
final bool prettyIndexJson;
3028

@@ -50,16 +48,6 @@ class DartdocGeneratorBackendOptions implements TemplateOptions {
5048
customHeaderContent = context.header,
5149
customFooterContent = context.footer,
5250
customInnerFooterText = context.footerText;
53-
54-
DartdocGeneratorBackendOptions._defaults()
55-
: relCanonicalPrefix = null,
56-
toolVersion = null,
57-
favicon = null,
58-
prettyIndexJson = false,
59-
useBaseHref = false,
60-
customHeaderContent = '',
61-
customFooterContent = '',
62-
customInnerFooterText = '';
6351
}
6452

6553
class SidebarGenerator<T extends TemplateData> {
@@ -86,10 +74,8 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
8674
final ResourceProvider resourceProvider;
8775
final path.Context _pathContext;
8876

89-
DartdocGeneratorBackend(DartdocGeneratorBackendOptions options,
90-
this.templates, this.resourceProvider)
91-
: options = options ?? DartdocGeneratorBackendOptions._defaults(),
92-
sidebarForLibrary = SidebarGenerator(templates.renderSidebarForLibrary),
77+
DartdocGeneratorBackend(this.options, this.templates, this.resourceProvider)
78+
: sidebarForLibrary = SidebarGenerator(templates.renderSidebarForLibrary),
9379
sidebarForContainer =
9480
SidebarGenerator(templates.renderSidebarForContainer),
9581
_pathContext = resourceProvider.pathContext;
@@ -100,8 +86,9 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
10086
if (!options.useBaseHref) {
10187
content = content.replaceAll(htmlBasePlaceholder, data.htmlBase);
10288
}
89+
var element = data.self;
10390
writer.write(filename, content,
104-
element: data.self is Warnable ? data.self : null);
91+
element: element is Warnable ? element : null);
10592
}
10693

10794
@override
@@ -131,23 +118,23 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
131118

132119
@override
133120
void generatePackage(FileWriter writer, PackageGraph graph, Package package) {
134-
TemplateData data = PackageTemplateData(options, graph, package);
121+
var data = PackageTemplateData(options, graph, package);
135122
var content = templates.renderIndex(data);
136123
write(writer, package.filePath, data, content);
137124
}
138125

139126
@override
140127
void generateCategory(
141128
FileWriter writer, PackageGraph packageGraph, Category category) {
142-
TemplateData data = CategoryTemplateData(options, packageGraph, category);
129+
var data = CategoryTemplateData(options, packageGraph, category);
143130
var content = templates.renderCategory(data);
144131
write(writer, category.filePath, data, content);
145132
}
146133

147134
@override
148135
void generateLibrary(
149136
FileWriter writer, PackageGraph packageGraph, Library lib) {
150-
TemplateData data = LibraryTemplateData(
137+
var data = LibraryTemplateData(
151138
options, packageGraph, lib, sidebarForLibrary.getRenderFor);
152139
var content = templates.renderLibrary(data);
153140
write(writer, lib.filePath, data, content);
@@ -156,7 +143,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
156143
@override
157144
void generateClass(
158145
FileWriter writer, PackageGraph packageGraph, Library lib, Class clazz) {
159-
TemplateData data = ClassTemplateData(options, packageGraph, lib, clazz,
146+
var data = ClassTemplateData(options, packageGraph, lib, clazz,
160147
sidebarForLibrary.getRenderFor, sidebarForContainer.getRenderFor);
161148
var content = templates.renderClass(data);
162149
write(writer, clazz.filePath, data, content);
@@ -165,21 +152,16 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
165152
@override
166153
void generateExtension(FileWriter writer, PackageGraph packageGraph,
167154
Library lib, Extension extension) {
168-
TemplateData data = ExtensionTemplateData(
169-
options,
170-
packageGraph,
171-
lib,
172-
extension,
173-
sidebarForLibrary.getRenderFor,
174-
sidebarForContainer.getRenderFor);
155+
var data = ExtensionTemplateData(options, packageGraph, lib, extension,
156+
sidebarForLibrary.getRenderFor, sidebarForContainer.getRenderFor);
175157
var content = templates.renderExtension(data);
176158
write(writer, extension.filePath, data, content);
177159
}
178160

179161
@override
180162
void generateMixin(
181163
FileWriter writer, PackageGraph packageGraph, Library lib, Mixin mixin) {
182-
TemplateData data = MixinTemplateData(options, packageGraph, lib, mixin,
164+
var data = MixinTemplateData(options, packageGraph, lib, mixin,
183165
sidebarForLibrary.getRenderFor, sidebarForContainer.getRenderFor);
184166
var content = templates.renderMixin(data);
185167
write(writer, mixin.filePath, data, content);
@@ -188,16 +170,16 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
188170
@override
189171
void generateConstructor(FileWriter writer, PackageGraph packageGraph,
190172
Library lib, Class clazz, Constructor constructor) {
191-
TemplateData data = ConstructorTemplateData(options, packageGraph, lib,
192-
clazz, constructor, sidebarForContainer.getRenderFor);
173+
var data = ConstructorTemplateData(options, packageGraph, lib, clazz,
174+
constructor, sidebarForContainer.getRenderFor);
193175
var content = templates.renderConstructor(data);
194176
write(writer, constructor.filePath, data, content);
195177
}
196178

197179
@override
198180
void generateEnum(
199181
FileWriter writer, PackageGraph packageGraph, Library lib, Enum eNum) {
200-
TemplateData data = EnumTemplateData(options, packageGraph, lib, eNum,
182+
var data = EnumTemplateData(options, packageGraph, lib, eNum,
201183
sidebarForLibrary.getRenderFor, sidebarForContainer.getRenderFor);
202184
var content = templates.renderEnum(data);
203185
write(writer, eNum.filePath, data, content);
@@ -206,7 +188,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
206188
@override
207189
void generateFunction(FileWriter writer, PackageGraph packageGraph,
208190
Library lib, ModelFunction function) {
209-
TemplateData data = FunctionTemplateData(
191+
var data = FunctionTemplateData(
210192
options, packageGraph, lib, function, sidebarForLibrary.getRenderFor);
211193
var content = templates.renderFunction(data);
212194
write(writer, function.filePath, data, content);
@@ -215,8 +197,8 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
215197
@override
216198
void generateMethod(FileWriter writer, PackageGraph packageGraph, Library lib,
217199
Container clazz, Method method) {
218-
TemplateData data = MethodTemplateData(options, packageGraph, lib, clazz,
219-
method, sidebarForContainer.getRenderFor);
200+
var data = MethodTemplateData(options, packageGraph, lib, clazz, method,
201+
sidebarForContainer.getRenderFor);
220202
var content = templates.renderMethod(data);
221203
write(writer, method.filePath, data, content);
222204
}
@@ -229,16 +211,16 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
229211
@override
230212
void generateProperty(FileWriter writer, PackageGraph packageGraph,
231213
Library lib, Container clazz, Field property) {
232-
TemplateData data = PropertyTemplateData(options, packageGraph, lib, clazz,
233-
property, sidebarForContainer.getRenderFor);
214+
var data = PropertyTemplateData(options, packageGraph, lib, clazz, property,
215+
sidebarForContainer.getRenderFor);
234216
var content = templates.renderProperty(data);
235217
write(writer, property.filePath, data, content);
236218
}
237219

238220
@override
239221
void generateTopLevelProperty(FileWriter writer, PackageGraph packageGraph,
240222
Library lib, TopLevelVariable property) {
241-
TemplateData data = TopLevelPropertyTemplateData(
223+
var data = TopLevelPropertyTemplateData(
242224
options, packageGraph, lib, property, sidebarForLibrary.getRenderFor);
243225
var content = templates.renderTopLevelProperty(data);
244226
write(writer, property.filePath, data, content);
@@ -252,7 +234,7 @@ abstract class DartdocGeneratorBackend implements GeneratorBackend {
252234
@override
253235
void generateTypeDef(FileWriter writer, PackageGraph packageGraph,
254236
Library lib, Typedef typeDef) {
255-
TemplateData data = TypedefTemplateData(
237+
var data = TypedefTemplateData(
256238
options, packageGraph, lib, typeDef, sidebarForLibrary.getRenderFor);
257239
var content = templates.renderTypedef(data);
258240
write(writer, typeDef.filePath, data, content);

lib/src/generator/empty_generator.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// @dart=2.9
2-
31
library dartdoc.empty_generator;
42

53
import 'package:dartdoc/src/dartdoc_options.dart';
@@ -26,7 +24,7 @@ class EmptyGenerator extends Generator {
2624
.forEach((m) => logProgress(m.documentationAsHtml));
2725
}
2826
}
29-
return null;
27+
return Future.value(null);
3028
}
3129
}
3230

lib/src/generator/generator.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ abstract class FileWriter {
2020
/// Writes [content] to a file at [filePath].
2121
///
2222
/// If a file is to be overwritten, a warning will be reported on [element].
23-
void write(String filePath, String content, {Warnable element});
23+
void write(String filePath, String content, {Warnable? element});
2424

2525
/// Writes [content] to a file at [filePath].
2626
///

lib/src/generator/generator_frontend.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'package:dartdoc/src/generator/generator.dart';
86
import 'package:dartdoc/src/logging.dart';
97
import 'package:dartdoc/src/model/model.dart';
@@ -18,9 +16,11 @@ class GeneratorFrontEnd implements Generator {
1816
GeneratorFrontEnd(this._generatorBackend);
1917

2018
@override
21-
Future<void> generate(PackageGraph packageGraph, FileWriter writer) async {
19+
Future<void> generate(PackageGraph? packageGraph, FileWriter writer) async {
2220
var indexElements = <Indexable>[];
23-
_generateDocs(packageGraph, writer, indexElements);
21+
if (packageGraph != null) {
22+
_generateDocs(packageGraph, writer, indexElements);
23+
}
2424
await _generatorBackend.generateAdditionalFiles(writer);
2525

2626
var categories = indexElements
@@ -35,8 +35,6 @@ class GeneratorFrontEnd implements Generator {
3535
/// elements.
3636
void _generateDocs(PackageGraph packageGraph, FileWriter writer,
3737
List<Indexable> indexAccumulator) {
38-
if (packageGraph == null) return;
39-
4038
_generatorBackend.generatePackage(
4139
writer, packageGraph, packageGraph.defaultPackage);
4240

lib/src/generator/generator_utils.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'dart:convert';
86

97
import 'package:collection/collection.dart';
@@ -79,10 +77,12 @@ String generateSearchIndexJson(
7977
return encoder.convert(indexItems);
8078
}
8179

82-
int _sortElementRepresentations(Map<String, Object> a, Map<String, Object> b) {
83-
final value = compareNatural(a['qualifiedName'], b['qualifiedName']);
80+
int _sortElementRepresentations(
81+
Map<String, Object?> a, Map<String, Object?> b) {
82+
final value = compareNatural(
83+
a['qualifiedName'] as String, b['qualifiedName'] as String);
8484
if (value == 0) {
85-
return compareNatural(a['type'], b['type']);
85+
return compareNatural(a['type'] as String, b['type'] as String);
8686
}
8787
return value;
8888
}

lib/src/generator/html_generator.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
library dartdoc.html_generator;
86

97
import 'package:analyzer/file_system/file_system.dart';
@@ -41,17 +39,18 @@ class HtmlGeneratorBackend extends DartdocGeneratorBackend {
4139
void generatePackage(FileWriter writer, PackageGraph graph, Package package) {
4240
super.generatePackage(writer, graph, package);
4341
// We have to construct the data again. This only happens once per package.
44-
TemplateData data = PackageTemplateData(options, graph, package);
42+
var data = PackageTemplateData(options, graph, package);
4543
var content = templates.renderError(data);
4644
write(writer, '__404error.html', data, content);
4745
}
4846

4947
@override
5048
Future<void> generateAdditionalFiles(FileWriter writer) async {
5149
await _copyResources(writer);
52-
if (options.favicon != null) {
50+
var favicon = options.favicon;
51+
if (favicon != null) {
5352
// Allow overwrite of favicon.
54-
var bytes = resourceProvider.getFile(options.favicon).readAsBytesSync();
53+
var bytes = resourceProvider.getFile(favicon).readAsBytesSync();
5554
writer.writeBytes(
5655
resourceProvider.pathContext.join('static-assets', 'favicon.png'),
5756
bytes,

lib/src/generator/markdown_generator.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
import 'package:analyzer/file_system/file_system.dart';
86
import 'package:dartdoc/options.dart';
97
import 'package:dartdoc/src/generator/dartdoc_generator_backend.dart';
@@ -36,7 +34,7 @@ class MarkdownGeneratorBackend extends DartdocGeneratorBackend {
3634
void generatePackage(FileWriter writer, PackageGraph graph, Package package) {
3735
super.generatePackage(writer, graph, package);
3836
// We have to construct the data again. This only happens once per package.
39-
TemplateData data = PackageTemplateData(options, graph, package);
37+
PackageTemplateData data = PackageTemplateData(options, graph, package);
4038
var content = templates.renderError(data);
4139
write(writer, '__404error.md', data, content);
4240
}

lib/src/generator/template_data.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ typedef ContainerSidebar = String Function(
1010
typedef LibrarySidebar = String Function(Library, TemplateDataWithLibrary);
1111

1212
abstract class TemplateOptions {
13-
String get relCanonicalPrefix;
13+
String? get relCanonicalPrefix;
1414
String get toolVersion;
1515
bool get useBaseHref;
1616
String get customHeaderContent;
@@ -46,7 +46,7 @@ abstract class TemplateData<T extends Documentable> {
4646
String get htmlBase;
4747
T get self;
4848
String get version => htmlOptions.toolVersion;
49-
String get relCanonicalPrefix => htmlOptions.relCanonicalPrefix;
49+
String? get relCanonicalPrefix => htmlOptions.relCanonicalPrefix;
5050
bool get useBaseHref => htmlOptions.useBaseHref;
5151

5252
String get bareHref {

lib/src/generator/templates.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// @dart=2.9
6-
75
@Renderer(#renderCategory, Context<CategoryTemplateData>(), 'category',
86
visibleTypes: _visibleTypes)
97
@Renderer(#renderClass, Context<ClassTemplateData>(), 'class')
@@ -46,7 +44,6 @@ import 'package:dartdoc/src/model/language_feature.dart';
4644
import 'package:dartdoc/src/model/model.dart';
4745
import 'package:dartdoc/src/mustachio/annotations.dart';
4846
import 'package:dartdoc/src/mustachio/renderer_base.dart';
49-
import 'package:meta/meta.dart';
5047

5148
const _visibleTypes = {
5249
Annotation,
@@ -348,7 +345,7 @@ class RuntimeTemplates implements Templates {
348345

349346
/// Creates a [Templates] from a custom set of template files, found in [dir].
350347
static Future<Templates> _create(Folder dir, String format,
351-
{@required ResourceProvider resourceProvider}) async {
348+
{required ResourceProvider resourceProvider}) async {
352349
Future<Template> loadTemplate(String templatePath) async {
353350
var templateFile = dir.getChildAssumingFile('$templatePath.$format');
354351
if (!templateFile.exists) {

0 commit comments

Comments
 (0)