@@ -9,7 +9,6 @@ import 'dart:io' show Platform, exitCode, stderr;
9
9
import 'package:analyzer/file_system/file_system.dart' ;
10
10
import 'package:dartdoc/src/dartdoc_options.dart' ;
11
11
import 'package:dartdoc/src/failure.dart' ;
12
- import 'package:dartdoc/src/generator/empty_generator.dart' ;
13
12
import 'package:dartdoc/src/generator/generator.dart' ;
14
13
import 'package:dartdoc/src/generator/html_generator.dart' ;
15
14
import 'package:dartdoc/src/logging.dart' ;
@@ -27,10 +26,28 @@ const String programName = 'dartdoc';
27
26
// Update when pubspec version changes by running `pub run build_runner build`
28
27
const String dartdocVersion = packageVersion;
29
28
29
+ /// Used for the generateDocs:false option.
30
+ ///
31
+ /// Writes nothing.
32
+ class NoFileWriter implements FileWriter {
33
+ @override
34
+ void write (String filePath, String content, {Warnable ? element}) {
35
+ // Do nothing
36
+ }
37
+
38
+ @override
39
+ void writeBytes (String filePath, List <int > content,
40
+ {bool allowOverwrite = false }) {
41
+ // Do nothing
42
+ }
43
+
44
+ @override
45
+ Set <String > get writtenFiles => {};
46
+ }
47
+
30
48
class DartdocFileWriter implements FileWriter {
31
49
final String _outputDir;
32
- @override
33
- final ResourceProvider resourceProvider;
50
+ final ResourceProvider _resourceProvider;
34
51
final Map <String , Warnable ?> _fileElementMap = {};
35
52
@override
36
53
final Set <String > writtenFiles = {};
@@ -43,7 +60,7 @@ class DartdocFileWriter implements FileWriter {
43
60
44
61
DartdocFileWriter (
45
62
this ._outputDir,
46
- this .resourceProvider , {
63
+ this ._resourceProvider , {
47
64
int maxFileCount = 0 ,
48
65
int maxTotalSize = 0 ,
49
66
}) : _maxFileCount = maxFileCount,
@@ -115,8 +132,8 @@ class DartdocFileWriter implements FileWriter {
115
132
/// Returns the file at [outFile] relative to [_outputDir] , creating the
116
133
/// parent directory if necessary.
117
134
File _getFile (String outFile) {
118
- var file = resourceProvider
119
- .getFile (resourceProvider .pathContext.join (_outputDir, outFile));
135
+ var file = _resourceProvider
136
+ .getFile (_resourceProvider .pathContext.join (_outputDir, outFile));
120
137
var parent = file.parent;
121
138
if (! parent.exists) {
122
139
parent.create ();
@@ -144,19 +161,6 @@ class Dartdoc {
144
161
@visibleForTesting
145
162
set generator (Generator newGenerator) => _generator = newGenerator;
146
163
147
- /// Factory method that builds Dartdoc with an empty generator.
148
- factory Dartdoc .withEmptyGenerator (
149
- DartdocOptionContext config,
150
- PackageBuilder packageBuilder,
151
- ) {
152
- return Dartdoc ._(
153
- config,
154
- config.resourceProvider.getFolder ('UNUSED' ),
155
- initEmptyGenerator (),
156
- packageBuilder,
157
- );
158
- }
159
-
160
164
/// Builds Dartdoc with a generator determined by [context] .
161
165
factory Dartdoc .fromContext (
162
166
DartdocGeneratorOptionContext context,
@@ -165,12 +169,14 @@ class Dartdoc {
165
169
var resourceProvider = context.resourceProvider;
166
170
var outputPath = resourceProvider.pathContext.absolute (context.output);
167
171
var outputDir = resourceProvider.getFolder (outputPath)..create ();
168
- var writer = DartdocFileWriter (
169
- outputPath,
170
- resourceProvider,
171
- maxFileCount: context.maxFileCount,
172
- maxTotalSize: context.maxTotalSize,
173
- );
172
+ var writer = context.generateDocs
173
+ ? DartdocFileWriter (
174
+ outputPath,
175
+ resourceProvider,
176
+ maxFileCount: context.maxFileCount,
177
+ maxTotalSize: context.maxTotalSize,
178
+ )
179
+ : NoFileWriter ();
174
180
return Dartdoc ._(
175
181
context,
176
182
outputDir,
0 commit comments