Skip to content

Commit 7252e6a

Browse files
authored
Merge pull request #19416 from ckeditor/cc/8549-internal-reexp
Extending export validator to disallow re-exporting internal entities in commercial repo.
2 parents 9c2f4ef + 8240f2f commit 7252e6a

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

scripts/ci/exports/utils/library.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ export class Library {
2222
this.modules = typeScriptFileNames.map( fileName => Module.load( fileName, this.errorCollector ) );
2323

2424
for ( const module of this.modules ) {
25-
const packageName = module.packageName;
25+
const { packageName, isPublicPackage } = module;
2626

2727
if ( !this.packages.has( packageName ) ) {
2828
this.packages.set( packageName, {
2929
packageName,
30+
isPublicPackage,
3031
dirName: packageDirName( module.fileName ),
3132
index: null,
3233
modules: []

scripts/ci/exports/utils/module.mjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ export class Module {
4242

4343
constructor( fileName, ast, { publicApiTag }, errorCollector ) {
4444
this.fileName = fileName.replace( /\.d\.ts$/, '.ts' );
45-
this.isPublicApi = this._isFromPublicPackages( fileName ) || this.relativeFileName === 'index.ts' ? true : publicApiTag;
45+
this.isPublicPackage = this._isFromPublicPackages( fileName );
46+
this.isPublicApi = this.isPublicPackage || this.relativeFileName === 'index.ts' ? true : publicApiTag;
4647
this.exports = [];
4748
this.imports = [];
4849
this.declarations = [];

scripts/ci/validate-module-re-exports.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ function getFixingAction( pkg, module, exportItem ) {
140140
return 'Add @internal and re-export with `_` suffix';
141141
}
142142

143+
if ( isInternal && isReExported && !allowsReexportInternals( pkg ) ) {
144+
return 'Remove from index or @internal.';
145+
}
146+
143147
const namingCheck = validateNaming( { pkg, module, item: exportItem } );
144148

145149
if ( !namingCheck.ok ) {
@@ -176,3 +180,7 @@ function removeExpectedExceptions( data ) {
176180
.filter( record => !memberExistInRecord( record, '@ckeditor/ckeditor5-find-and-replace', 'FindReplaceCommandBase' ) )
177181
.filter( record => !memberExistInRecord( record, '@ckeditor/ckeditor5-utils', 'globalVar' ) );
178182
}
183+
184+
function allowsReexportInternals( pkg ) {
185+
return pkg.isPublicPackage;
186+
}

0 commit comments

Comments
 (0)