Implementation
@override
String get content {
final parent = this.parent;
if (parent == null) {
throw Exception('Part files must have a parent.');
}
final content = super.content;
if (content.contains(RegExp("^import '"))) {
throw Exception('Part files cannot contain import statements.');
}
final sanitizedPath = p.split(
p.joinAll(
[
...[...path]..remove('lib'),
].skip(1),
),
);
final partsToParent = [
for (final _ in sanitizedPath) '..',
...p.split(parent.fileName),
]..remove('lib');
final parentPath = p.joinAll(partsToParent);
return '''
part of '$parentPath';
$content''';
}