Skip to content

Commit b948b57

Browse files
committed
update
1 parent 9801b14 commit b948b57

File tree

7 files changed

+65
-77
lines changed

7 files changed

+65
-77
lines changed

README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,28 @@ Dart & Flutter Packages by dev-cetera.com & contributors.
1313

1414
<!-- BEGIN _README_CONTENT -->
1515

16-
## Summary
17-
1816
A tool to generate index/exports files also known as barrel files for all Dart files in a directory.
1917

20-
## Usage Instructions
18+
## How to Use
19+
20+
### With Visual Studio Code
21+
22+
1. Install the extension here: https://marketplace.visualstudio.com/items?itemName=Dev-Cetera.dev-cetera-df-support-commands
23+
2. Right-click on any folder in your project and select `🔹 Generate Dart Barrel File`.
24+
3. Alternatively, right-click a folder and select `"Open in Integrated Terminal"` then run `--barrel` in the terminal.
25+
4. This will generate a barrel file matching the folder’s base name, e.g. `_src.g.dart`.
2126

22-
1. No need to add this package to your `pubspec.yaml`.
23-
2. Activate it by running: `dart pub global activate df_generate_dart_indexes`.
24-
3. In your project, open a terminal in the desired folder (Tip: In VS Code, right-click a folder and select `"Open in Integrated Terminal"`).
25-
4. Run `--barrel` to generate a barrel file matching the folder’s base name, e.g. `_src.g.dart` or `_widgets.g.dart`.
27+
### Without Visual Studio Code
2628

27-
### Note:
29+
1. Install this tool by running: `dart pub global activate df_generate_dart_indexes`.
30+
2. In your project, open a terminal at the desired folder, e.g. `cd src`.
31+
3. Run `--barrel` to generate a barrel file matching the folder’s base name, e.g. `_src.g.dart`.
32+
33+
### Note
2834

2935
Files that start with an underscore, files in folders that start with an underscore, and generated files (those with the `.g.dart` extension) will be omitted from the generated barrel file.
3036

31-
### Generated File Example:
37+
### Generated File Example
3238

3339
The file barrel file will look something like this, and is generated from [this default template file](https://github.com/dev-cetera/df_generate_dart_indexes/blob/main/templates/template.dart.md):
3440

@@ -48,7 +54,6 @@ export './widgets/my_button.dart';
4854
export './widgets/my_title_text.dart';
4955
```
5056

51-
5257
<!-- END _README_CONTENT -->
5358

5459
---

_README_CONTENT.md

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
1-
## Summary
2-
31
A tool to generate index/exports files also known as barrel files for all Dart files in a directory.
42

5-
## Usage Instructions
3+
## How to Use
4+
5+
### With Visual Studio Code
6+
7+
1. Install the extension here: https://marketplace.visualstudio.com/items?itemName=Dev-Cetera.dev-cetera-df-support-commands
8+
2. Right-click on any folder in your project and select `🔹 Generate Dart Barrel File`.
9+
3. Alternatively, right-click a folder and select `"Open in Integrated Terminal"` then run `--barrel` in the terminal.
10+
4. This will generate a barrel file matching the folder’s base name, e.g. `_src.g.dart`.
11+
12+
### Without Visual Studio Code
613

7-
1. No need to add this package to your `pubspec.yaml`.
8-
2. Activate it by running: `dart pub global activate df_generate_dart_indexes`.
9-
3. In your project, open a terminal in the desired folder (Tip: In VS Code, right-click a folder and select `"Open in Integrated Terminal"`).
10-
4. Run `--barrel` to generate a barrel file matching the folder’s base name, e.g. `_src.g.dart` or `_widgets.g.dart`.
14+
1. Install this tool by running: `dart pub global activate df_generate_dart_indexes`.
15+
2. In your project, open a terminal at the desired folder, e.g. `cd src`.
16+
3. Run `--barrel` to generate a barrel file matching the folder’s base name, e.g. `_src.g.dart`.
1117

12-
### Note:
18+
### Note
1319

1420
Files that start with an underscore, files in folders that start with an underscore, and generated files (those with the `.g.dart` extension) will be omitted from the generated barrel file.
1521

16-
### Generated File Example:
22+
### Generated File Example
1723

1824
The file barrel file will look something like this, and is generated from [this default template file](https://github.com/dev-cetera/df_generate_dart_indexes/blob/main/templates/template.dart.md):
1925

lib/df_generate_dart_indexes.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
/// A tool to generate index/exports files also known as barrel files for all Dart files in a directory.
1414
library;
1515

16-
export 'src/_index.g.dart';
16+
export 'src/_src.g.dart';

lib/src/_index.g.dart renamed to lib/src/_src.g.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
// ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
33
//
44
// GENERATED - DO NOT MODIFY BY HAND
5-
// See: https://github.com/robmllze/df_gen
5+
// See: https://github.com/dev-cetera/df_generate_dart_indexes
66
//
77
// ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
88
//.title~
99

10-
export 'generate_dart_indexes_ts.dart';
11-
export 'generate_dart_indexes.dart';
10+
export './generate_dart_indexes.dart';
11+
export './generate_dart_indexes_ts.dart';

lib/src/generate_dart_indexes.dart

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ Future<void> generateDartIndexes(
2424
}) async {
2525
Log.enableReleaseAsserts = true;
2626
final parser = CliParser(
27-
title: 'dev-cetera.com/df/tools',
27+
title: 'dev-cetera.com',
2828
description:
2929
'A tool for generating index/barrel files for Dart. Ignores files that starts with underscores.',
30-
example: 'gen-indexes -i .',
30+
example: 'df_generate_dart_indexes -i .',
3131
params: [
3232
DefaultFlags.HELP.flag,
3333
DefaultOptionParams.INPUT_PATH.option.copyWith(
@@ -49,7 +49,7 @@ Future<void> generateDartIndexes(
4949

5050
final help = argResults.flag(DefaultFlags.HELP.name);
5151
if (help) {
52-
_print(Log.printCyan, parser.getInfo(argParser));
52+
Log.printCyan(parser.getInfo(argParser));
5353
exit(ExitCodes.SUCCESS.code);
5454
}
5555

@@ -61,16 +61,13 @@ Future<void> generateDartIndexes(
6161
inputPath = argResults.option(DefaultOptionParams.INPUT_PATH.name)!;
6262
templates = argResults.multiOption(DefaultMultiOptions.TEMPLATES.name);
6363
} catch (_) {
64-
_print(
65-
Log.printRed,
66-
'Missing required args! Use --help flag for more information.',
67-
);
64+
Log.printRed('Missing required args! Use --help flag for more information.');
6865
exit(ExitCodes.FAILURE.code);
6966
}
7067

7168
// ---------------------------------------------------------------------------
7269

73-
_print(Log.printWhite, 'Looking for files..');
70+
Log.printWhite('Looking for files..');
7471
final filePathStream0 = PathExplorer(inputPath).exploreFiles();
7572
final filePathStream1 = filePathStream0.where((e) {
7673
final path = p.relative(e.path, from: inputPath);
@@ -80,39 +77,34 @@ Future<void> generateDartIndexes(
8077
try {
8178
findings = await filePathStream1.toList();
8279
} catch (e) {
83-
_print(Log.printRed, 'Failed to read file tree!');
80+
Log.printRed('Failed to read file tree!');
8481
exit(ExitCodes.FAILURE.code);
8582
}
8683
if (findings.isEmpty) {
87-
_print(Log.printYellow, 'No files found in $inputPath!');
84+
Log.printYellow('No files found in $inputPath!');
8885
exit(ExitCodes.SUCCESS.code);
8986
}
9087

9188
// ---------------------------------------------------------------------------
9289

9390
final templateData = <String, String>{};
9491
for (final template in templates) {
95-
_print(Log.printWhite, 'Reading template at: $template...');
96-
final result = await MdTemplateUtility.i
97-
.readTemplateFromPathOrUrl(template)
98-
.value;
92+
Log.printWhite('Reading template at: $template...');
93+
final result = await MdTemplateUtility.i.readTemplateFromPathOrUrl(template).value;
9994

10095
if (result.isErr()) {
101-
_print(Log.printRed, ' Failed to read template!');
96+
Log.printRed(' Failed to read template!');
10297
exit(ExitCodes.FAILURE.code);
10398
}
10499
templateData[template] = result.unwrap();
105100
}
106101

107102
// ---------------------------------------------------------------------------
108103

109-
_print(Log.printWhite, 'Generating...');
104+
Log.printWhite('Generating...');
110105
final inputBasename = p.basename(inputPath);
111106
for (final entry in templateData.entries) {
112-
final fileName = p
113-
.basename(entry.key)
114-
.replaceAll('.md', '')
115-
.replaceAll(
107+
final fileName = p.basename(entry.key).replaceAll('.md', '').replaceAll(
116108
'{basename}',
117109
inputBasename.replaceFirst(RegExp(r'^_+'), ''),
118110
);
@@ -122,8 +114,7 @@ Future<void> generateDartIndexes(
122114
final data = template.replaceData({
123115
'___PUBLIC_EXPORTS___': _publicExports(
124116
inputPath,
125-
findings.map((e) => e.path).where((e) => e != skipPath).toList()
126-
..sort(),
117+
findings.map((e) => e.path).where((e) => e != skipPath).toList()..sort(),
127118
(e) => true,
128119
(e) {
129120
final unixPath = p.split(e).join('/');
@@ -132,26 +123,22 @@ Future<void> generateDartIndexes(
132123
),
133124
});
134125

135-
_print(Log.printWhite, 'Writing output to $fileName...');
126+
Log.printWhite('Writing output to $fileName...');
136127
try {
137128
await FileSystemUtility.i.writeLocalFile(fileName, data);
138129
} catch (e) {
139-
_print(Log.printRed, 'Failed to write at: $fileName');
130+
Log.printRed('Failed to write at: $fileName');
140131
exit(ExitCodes.FAILURE.code);
141132
}
142133
}
143134

144135
// ---------------------------------------------------------------------------
145136

146-
_print(Log.printGreen, 'Done!');
137+
Log.printGreen('Done!');
147138
}
148139

149140
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
150141

151-
void _print(void Function(String) print, String message) {
152-
print('[gen-indexes] $message');
153-
}
154-
155142
String _publicExports(
156143
String inputPath,
157144
Iterable<String> filePaths,

lib/src/generate_dart_indexes_ts.dart

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ Future<void> generateDartIndexesTs(
2424
}) async {
2525
Log.enableReleaseAsserts = true;
2626
final parser = CliParser(
27-
title: 'dev-cetera.com/df/tools',
27+
title: 'dev-cetera.com',
2828
description:
2929
'A tool for generating index/barrel files for TypeScript. Ignores files that starts with underscores.',
30-
example: 'gen-indexes-ts -i .',
30+
example: 'df_generate_dart_indexes_ts -i .',
3131
params: [
3232
DefaultFlags.HELP.flag,
3333
DefaultOptionParams.INPUT_PATH.option.copyWith(
@@ -47,7 +47,7 @@ Future<void> generateDartIndexesTs(
4747

4848
final help = argResults.flag(DefaultFlags.HELP.name);
4949
if (help) {
50-
_print(Log.printCyan, parser.getInfo(argParser));
50+
Log.printCyan(parser.getInfo(argParser));
5151
exit(ExitCodes.SUCCESS.code);
5252
}
5353

@@ -59,16 +59,13 @@ Future<void> generateDartIndexesTs(
5959
inputPath = argResults.option(DefaultOptionParams.INPUT_PATH.name)!;
6060
templates = argResults.multiOption(DefaultMultiOptions.TEMPLATES.name);
6161
} catch (_) {
62-
_print(
63-
Log.printRed,
64-
'Missing required args! Use --help flag for more information.',
65-
);
62+
Log.printRed('Missing required args! Use --help flag for more information.');
6663
exit(ExitCodes.FAILURE.code);
6764
}
6865

6966
// ---------------------------------------------------------------------------
7067

71-
_print(Log.printWhite, 'Looking for files..');
68+
Log.printWhite('Looking for files..');
7269
final filePathStream0 = PathExplorer(inputPath).exploreFiles();
7370
final filePathStream1 = filePathStream0.where((e) {
7471
print(e);
@@ -80,33 +77,31 @@ Future<void> generateDartIndexesTs(
8077
try {
8178
findings = await filePathStream1.toList();
8279
} catch (e) {
83-
_print(Log.printRed, 'Failed to read file tree!');
80+
Log.printRed('Failed to read file tree!');
8481
exit(ExitCodes.FAILURE.code);
8582
}
8683
if (findings.isEmpty) {
87-
_print(Log.printYellow, 'No files found in $inputPath!');
84+
Log.printYellow('No files found in $inputPath!');
8885
exit(ExitCodes.SUCCESS.code);
8986
}
9087

9188
// ---------------------------------------------------------------------------
9289

9390
final templateData = <String, String>{};
9491
for (final template in templates) {
95-
_print(Log.printWhite, 'Reading template at: $template...');
96-
final result = await MdTemplateUtility.i
97-
.readTemplateFromPathOrUrl(template)
98-
.value;
92+
Log.printWhite('Reading template at: $template...');
93+
final result = await MdTemplateUtility.i.readTemplateFromPathOrUrl(template).value;
9994

10095
if (result.isErr()) {
101-
_print(Log.printRed, ' Failed to read template!');
96+
Log.printRed(' Failed to read template!');
10297
exit(ExitCodes.FAILURE.code);
10398
}
10499
templateData[template] = result.unwrap();
105100
}
106101

107102
// ---------------------------------------------------------------------------
108103

109-
_print(Log.printWhite, 'Generating...');
104+
Log.printWhite('Generating...');
110105

111106
for (final entry in templateData.entries) {
112107
final fileName = p.basename(entry.key).replaceAll('.md', '');
@@ -121,27 +116,23 @@ Future<void> generateDartIndexesTs(
121116
(e) => 'export * from \'./$e\';',
122117
),
123118
});
124-
_print(Log.printWhite, 'Writing output to $fileName...');
119+
Log.printWhite('Writing output to $fileName...');
125120
try {
126121
await FileSystemUtility.i.writeLocalFile(fileName, data);
127122
} catch (e) {
128-
_print(Log.printRed, 'Failed to write at: $fileName');
123+
Log.printRed('Failed to write at: $fileName');
129124
exit(ExitCodes.FAILURE.code);
130125
}
131126
}
132127

133128
// ---------------------------------------------------------------------------
134129

135130
// [STEP 11] Print success!
136-
_print(Log.printGreen, 'Done!');
131+
Log.printGreen('Done!');
137132
}
138133

139134
// ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
140135

141-
void _print(void Function(String) print, String message) {
142-
print('[gen-indexes-ts] $message');
143-
}
144-
145136
String _publicExports(
146137
String inputPath,
147138
Iterable<String> filePaths,

pubspec.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ homepage: https://dev-cetera.com/
1515
repository: https://github.com/robmllze/df_generate_dart_indexes
1616
funding:
1717
- https://www.buymeacoffee.com/dev_cetera
18-
- https://github.com/sponsors/robmllze
19-
- https://github.com/sponsors/dev-cetera
2018
- https://www.patreon.com/c/RobertMollentze
19+
- https://github.com/sponsors/robmllze
2120
description: A tool to generate index/exports files also known as barrel files for all Dart files in a directory.
2221
version: 0.6.1
2322
topics:

0 commit comments

Comments
 (0)