mirror of
				https://github.com/videojs/video.js.git
				synced 2025-10-31 00:08:01 +02:00 
			
		
		
		
	fix: Improves types for registerPlugin and getPlugin (#8058)
* fix: improves types for registerPlugin and getPlugin
* fix: corrects parameter type for registerPlugin
* docs(fix): add support for {typeof class} expression
* chore: move js-doc-typeof-plugin to build dir
			
			
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							509b3d0757
						
					
				
				
					commit
					2e96253632
				
			| @@ -33,7 +33,7 @@ | ||||
|       "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" | ||||
|     ] | ||||
|   }, | ||||
|   "plugins": ["plugins/markdown"], | ||||
|   "plugins": ["plugins/markdown", "build/jsdoc-typeof-plugin"], | ||||
|   "markdown": { | ||||
|     "tags": ["example"], | ||||
|     "idInHeadings": true | ||||
|   | ||||
							
								
								
									
										12
									
								
								build/jsdoc-typeof-plugin.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								build/jsdoc-typeof-plugin.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| /** | ||||
|  * The jsdoc plugin that will convert types like {typeof ClassName} into {Class<ClassName>} | ||||
|  */ | ||||
| exports.handlers = { | ||||
|   jsdocCommentFound: event => { | ||||
|     event.comment = (event.comment || '').replace(/\{.*typeof\s+([^\s\|]+).*\}/g, typeExpression => { | ||||
|       return typeExpression.replace(/typeof\s+([^\s\|\}]+)/g, (expression, className) => { | ||||
|         return 'Class<' + className + '>'; | ||||
|       }); | ||||
|     }); | ||||
|   } | ||||
| }; | ||||
| @@ -52,7 +52,7 @@ const pluginExists = (name) => pluginStorage.hasOwnProperty(name); | ||||
|  * @param   {string} name | ||||
|  *          The name of a plugin. | ||||
|  * | ||||
|  * @return {Function|undefined} | ||||
|  * @return {typeof Plugin|Function|undefined} | ||||
|  *          The plugin (or undefined). | ||||
|  */ | ||||
| const getPlugin = (name) => pluginExists(name) ? pluginStorage[name] : undefined; | ||||
| @@ -336,10 +336,10 @@ class Plugin { | ||||
|    *          must not match an existing plugin or a method on the `Player` | ||||
|    *          prototype. | ||||
|    * | ||||
|    * @param   {Function} plugin | ||||
|    * @param   {typeof Plugin|Function} plugin | ||||
|    *          A sub-class of `Plugin` or a function for basic plugins. | ||||
|    * | ||||
|    * @return {Function} | ||||
|    * @return {typeof Plugin|Function} | ||||
|    *          For advanced plugins, a factory function for that plugin. For | ||||
|    *          basic plugins, a wrapper function that initializes the plugin. | ||||
|    */ | ||||
| @@ -444,7 +444,7 @@ class Plugin { | ||||
|  * @param    {string} name | ||||
|  *           The name of a plugin. | ||||
|  * | ||||
|  * @returns  {Function|undefined} | ||||
|  * @returns  {typeof Plugin|Function|undefined} | ||||
|  *           The plugin (or `undefined`). | ||||
|  */ | ||||
| Plugin.getPlugin = getPlugin; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user