Procházet zdrojové kódy

Check if context plugins requires only context plugins.

Piotr Jasiun před 6 roky
rodič
revize
9aeb5d7017
1 změnil soubory, kde provedl 9 přidání a 1 odebrání
  1. 9 1
      packages/ckeditor5-core/src/plugincollection.js

+ 9 - 1
packages/ckeditor5-core/src/plugincollection.js

@@ -281,6 +281,14 @@ export default class PluginCollection {
 					PluginConstructor.requires.forEach( RequiredPluginConstructorOrName => {
 					PluginConstructor.requires.forEach( RequiredPluginConstructorOrName => {
 						const RequiredPluginConstructor = getPluginConstructor( RequiredPluginConstructorOrName );
 						const RequiredPluginConstructor = getPluginConstructor( RequiredPluginConstructorOrName );
 
 
+						if ( PluginConstructor.isContextPlugin && !RequiredPluginConstructor.isContextPlugin ) {
+							throw new CKEditorError(
+								'plugincollection-context-required: Context plugin can not require plugin which is not context plugin',
+								null,
+								{ plugin: RequiredPluginConstructor.name, requiredBy: PluginConstructor.name }
+							);
+						}
+
 						if ( removePlugins.includes( RequiredPluginConstructor ) ) {
 						if ( removePlugins.includes( RequiredPluginConstructor ) ) {
 							/**
 							/**
 							 * Cannot load a plugin because one of its dependencies is listed in the `removePlugins` option.
 							 * Cannot load a plugin because one of its dependencies is listed in the `removePlugins` option.
@@ -293,7 +301,7 @@ export default class PluginCollection {
 								'plugincollection-required: Cannot load a plugin because one of its dependencies is listed in' +
 								'plugincollection-required: Cannot load a plugin because one of its dependencies is listed in' +
 								'the `removePlugins` option.',
 								'the `removePlugins` option.',
 								editor,
 								editor,
-								{ plugin: RequiredPluginConstructor, requiredBy: PluginConstructor }
+								{ plugin: RequiredPluginConstructor.name, requiredBy: PluginConstructor.name }
 							);
 							);
 						}
 						}