浏览代码

Refactor conversion.register() parameters to an options object.

Maciej Gołaszewski 7 年之前
父节点
当前提交
e8a1d70c4d

+ 10 - 8
packages/ckeditor5-engine/src/conversion/conversion.js

@@ -81,13 +81,15 @@ export default class Conversion {
 	 * If a given group name is used for the second time, the
 	 * {@link module:utils/ckeditorerror~CKEditorError `conversion-register-group-exists` error} is thrown.
 	 *
-	 * @param {String} groupName The name for dispatchers group.
-	 * @param {Array.<module:engine/conversion/downcastdispatcher~DowncastDispatcher|
-	 * module:engine/conversion/upcastdispatcher~UpcastDispatcher>} dispatchers Dispatchers to register
+	 * @param {Object} options
+	 * @param {String} options.name The name for dispatchers group.
+	 * @param {module:engine/conversion/downcastdispatcher~DowncastDispatcher|
+	 * module:engine/conversion/upcastdispatcher~UpcastDispatcher|Array.<module:engine/conversion/downcastdispatcher~DowncastDispatcher|
+	 * module:engine/conversion/upcastdispatcher~UpcastDispatcher>} options.dispatcher Dispatcher or array of dispatchers to register
 	 * under the given name.
 	 */
-	register( groupName, dispatchers ) {
-		if ( this._dispatchersGroups.has( groupName ) ) {
+	register( options ) {
+		if ( this._dispatchersGroups.has( options.name ) ) {
 			/**
 			 * Trying to register a group name that was already registered.
 			 *
@@ -97,11 +99,11 @@ export default class Conversion {
 		}
 
 		const group = {
-			name: groupName,
-			dispatchers
+			name: options.name,
+			dispatchers: Array.isArray( options.dispatcher ) ? options.dispatcher : [ options.dispatcher ]
 		};
 
-		this._dispatchersGroups.set( groupName, group );
+		this._dispatchersGroups.set( options.name, group );
 	}
 
 	/**

+ 6 - 6
packages/ckeditor5-engine/tests/conversion/conversion.js

@@ -27,15 +27,15 @@ describe( 'Conversion', () => {
 		dispA = Symbol( 'dispA' );
 		dispB = Symbol( 'dispB' );
 
-		conversion.register( 'ab', [ dispA, dispB ] );
-		conversion.register( 'a', [ dispA ] );
-		conversion.register( 'b', [ dispB ] );
+		conversion.register( { name: 'ab', dispatcher: [ dispA, dispB ] } );
+		conversion.register( { name: 'a', dispatcher: dispA } );
+		conversion.register( { name: 'b', dispatcher: dispB } );
 	} );
 
 	describe( 'register()', () => {
 		it( 'should throw when trying to use same group name twice', () => {
 			expect( () => {
-				conversion.register( 'ab' );
+				conversion.register( { name: 'ab' } );
 			} ).to.throw( CKEditorError, /conversion-register-group-exists/ );
 		} );
 	} );
@@ -113,8 +113,8 @@ describe( 'Conversion', () => {
 			viewDispatcher.on( 'documentFragment', convertToModelFragment(), { priority: 'lowest' } );
 
 			conversion = new Conversion();
-			conversion.register( 'upcast', [ viewDispatcher ] );
-			conversion.register( 'downcast', [ controller.downcastDispatcher ] );
+			conversion.register( { name: 'upcast', dispatcher: [ viewDispatcher ] } );
+			conversion.register( { name: 'downcast', dispatcher: [ controller.downcastDispatcher ] } );
 		} );
 
 		describe( 'elementToElement', () => {

+ 1 - 1
packages/ckeditor5-engine/tests/conversion/downcast-converters.js

@@ -45,7 +45,7 @@ describe( 'downcast-helpers', () => {
 		viewRoot = controller.view.document.getRoot();
 
 		conversion = new Conversion();
-		conversion.register( 'downcast', [ controller.downcastDispatcher ] );
+		conversion.register( { name: 'downcast', dispatcher: controller.downcastDispatcher } );
 	} );
 
 	describe( 'downcastElementToElement', () => {

+ 1 - 1
packages/ckeditor5-engine/tests/conversion/upcast-converters.js

@@ -49,7 +49,7 @@ describe( 'upcast-helpers', () => {
 		upcastDispatcher.on( 'documentFragment', convertToModelFragment(), { priority: 'lowest' } );
 
 		conversion = new Conversion();
-		conversion.register( 'upcast', [ upcastDispatcher ] );
+		conversion.register( { name: 'upcast', dispatcher: upcastDispatcher } );
 	} );
 
 	describe( 'upcastElementToElement', () => {