@@ -14,7 +14,9 @@ import {
1414} from "./internal.js" ;
1515import {
1616 BlockConfig ,
17+ BlockConfigOrCreator ,
1718 BlockImplementation ,
19+ BlockImplementationOrCreator ,
1820 BlockSpec ,
1921 LooseBlockSpec ,
2022} from "./types.js" ;
@@ -297,18 +299,17 @@ export function createBlockSpec<
297299 const TOptions extends Partial < Record < string , any > > | undefined = undefined ,
298300> (
299301 blockConfigOrCreator : BlockConfig < TName , TProps , TContent > ,
300- blockImplementationOrCreator :
301- | BlockImplementation < TName , TProps , TContent >
302+ blockImplementationOrCreator : BlockImplementationOrCreator <
303+ BlockConfig < TName , TProps , TContent > ,
304+ TOptions
305+ > ,
306+ extensionsOrCreator ?:
307+ | ( ExtensionFactoryInstance | Extension ) [ ]
302308 | ( TOptions extends undefined
303- ? ( ) => BlockImplementation < TName , TProps , TContent >
309+ ? ( ) => ( ExtensionFactoryInstance | Extension ) [ ]
304310 : (
305311 options : Partial < TOptions > ,
306- ) => BlockImplementation < TName , TProps , TContent > ) ,
307- extensionsOrCreator ?:
308- | ExtensionFactoryInstance [ ]
309- | ( TOptions extends undefined
310- ? ( ) => ExtensionFactoryInstance [ ]
311- : ( options : Partial < TOptions > ) => ExtensionFactoryInstance [ ] ) ,
312+ ) => ( ExtensionFactoryInstance | Extension ) [ ] ) ,
312313) : ( options ?: Partial < TOptions > ) => BlockSpec < TName , TProps , TContent > ;
313314export function createBlockSpec <
314315 const TName extends string ,
@@ -318,30 +319,17 @@ export function createBlockSpec<
318319 const TOptions extends Partial < Record < string , any > > ,
319320> (
320321 blockCreator : ( options : Partial < TOptions > ) => BlockConf ,
321- blockImplementationOrCreator :
322- | BlockImplementation <
323- BlockConf [ "type" ] ,
324- BlockConf [ "propSchema" ] ,
325- BlockConf [ "content" ]
326- >
322+ blockImplementationOrCreator : BlockImplementationOrCreator <
323+ BlockConf ,
324+ TOptions
325+ > ,
326+ extensionsOrCreator ?:
327+ | ( ExtensionFactoryInstance | Extension ) [ ]
327328 | ( TOptions extends undefined
328- ? ( ) => BlockImplementation <
329- BlockConf [ "type" ] ,
330- BlockConf [ "propSchema" ] ,
331- BlockConf [ "content" ]
332- >
329+ ? ( ) => ( ExtensionFactoryInstance | Extension ) [ ]
333330 : (
334331 options : Partial < TOptions > ,
335- ) => BlockImplementation <
336- BlockConf [ "type" ] ,
337- BlockConf [ "propSchema" ] ,
338- BlockConf [ "content" ]
339- > ) ,
340- extensionsOrCreator ?:
341- | ExtensionFactoryInstance [ ]
342- | ( TOptions extends undefined
343- ? ( ) => ExtensionFactoryInstance [ ]
344- : ( options : Partial < TOptions > ) => ExtensionFactoryInstance [ ] ) ,
332+ ) => ( ExtensionFactoryInstance | Extension ) [ ] ) ,
345333) : (
346334 options ?: Partial < TOptions > ,
347335) => BlockSpec <
@@ -355,23 +343,18 @@ export function createBlockSpec<
355343 const TContent extends "inline" | "none" ,
356344 const TOptions extends Partial < Record < string , any > > | undefined = undefined ,
357345> (
358- blockConfigOrCreator :
359- | BlockConfig < TName , TProps , TContent >
360- | ( TOptions extends undefined
361- ? ( ) => BlockConfig < TName , TProps , TContent >
362- : ( options : Partial < TOptions > ) => BlockConfig < TName , TProps , TContent > ) ,
363- blockImplementationOrCreator :
364- | BlockImplementation < TName , TProps , TContent >
346+ blockConfigOrCreator : BlockConfigOrCreator < TName , TProps , TContent , TOptions > ,
347+ blockImplementationOrCreator : BlockImplementationOrCreator <
348+ BlockConfig < TName , TProps , TContent > ,
349+ TOptions
350+ > ,
351+ extensionsOrCreator ? :
352+ | ( ExtensionFactoryInstance | Extension ) [ ]
365353 | ( TOptions extends undefined
366- ? ( ) => BlockImplementation < TName , TProps , TContent >
354+ ? ( ) => ( ExtensionFactoryInstance | Extension ) [ ]
367355 : (
368356 options : Partial < TOptions > ,
369- ) => BlockImplementation < TName , TProps , TContent > ) ,
370- extensionsOrCreator ?:
371- | ExtensionFactoryInstance [ ]
372- | ( TOptions extends undefined
373- ? ( ) => ExtensionFactoryInstance [ ]
374- : ( options : Partial < TOptions > ) => ExtensionFactoryInstance [ ] ) ,
357+ ) => ( ExtensionFactoryInstance | Extension ) [ ] ) ,
375358) : ( options ?: Partial < TOptions > ) => BlockSpec < TName , TProps , TContent > {
376359 return ( options = { } as TOptions ) => {
377360 const blockConfig =
0 commit comments