@@ -71,56 +71,83 @@ export async function register(name: string, script: string): Promise<void> {
7171 }
7272}
7373
74- export function getSource ( expr : string , conf : Config ) : Source {
75- const [ name ] = expr . split ( ":" , 1 ) ;
76- const mod = registry . source . get ( name ) ;
77- if ( ! mod ) {
78- throw new Error ( `No source '${ name } ' is registered` ) ;
74+ export function getSource ( expr : string , conf : Config ) : Source | undefined {
75+ try {
76+ const [ name ] = expr . split ( ":" , 1 ) ;
77+ const mod = registry . source . get ( name ) ;
78+ if ( ! mod ) {
79+ throw new Error ( `No source '${ name } ' is registered` ) ;
80+ }
81+ return mod . getSource ( config . getSourceOptions ( expr , conf ) ) ;
82+ } catch ( err ) {
83+ console . error ( `[fall] ${ err . message ?? err } ` ) ;
7984 }
80- return mod . getSource ( config . getSourceOptions ( expr , conf ) ) ;
8185}
8286
83- export function getFilter ( expr : string , conf : Config ) : Filter {
84- const [ name ] = expr . split ( ":" , 1 ) ;
85- const mod = registry . filter . get ( name ) ;
86- if ( ! mod ) {
87- throw new Error ( `No filter '${ name } ' is registered` ) ;
87+ export function getFilter ( expr : string , conf : Config ) : Filter | undefined {
88+ try {
89+ const [ name ] = expr . split ( ":" , 1 ) ;
90+ const mod = registry . filter . get ( name ) ;
91+ if ( ! mod ) {
92+ throw new Error ( `No filter '${ name } ' is registered` ) ;
93+ }
94+ return mod . getFilter ( config . getFilterOptions ( expr , conf ) ) ;
95+ } catch ( err ) {
96+ console . warn ( `[fall] ${ err . message ?? err } ` ) ;
8897 }
89- return mod . getFilter ( config . getFilterOptions ( expr , conf ) ) ;
9098}
9199
92- export function getSorter ( expr : string , conf : Config ) : Sorter {
93- const [ name ] = expr . split ( ":" , 1 ) ;
94- const mod = registry . sorter . get ( name ) ;
95- if ( ! mod ) {
96- throw new Error ( `No sorter '${ name } ' is registered` ) ;
100+ export function getSorter ( expr : string , conf : Config ) : Sorter | undefined {
101+ try {
102+ const [ name ] = expr . split ( ":" , 1 ) ;
103+ const mod = registry . sorter . get ( name ) ;
104+ if ( ! mod ) {
105+ throw new Error ( `No sorter '${ name } ' is registered` ) ;
106+ }
107+ return mod . getSorter ( config . getSorterOptions ( expr , conf ) ) ;
108+ } catch ( err ) {
109+ console . warn ( `[fall] ${ err . message ?? err } ` ) ;
97110 }
98- return mod . getSorter ( config . getSorterOptions ( expr , conf ) ) ;
99111}
100112
101- export function getRenderer ( expr : string , conf : Config ) : Renderer {
102- const [ name ] = expr . split ( ":" , 1 ) ;
103- const mod = registry . renderer . get ( name ) ;
104- if ( ! mod ) {
105- throw new Error ( `No renderer '${ name } ' is registered` ) ;
113+ export function getRenderer ( expr : string , conf : Config ) : Renderer | undefined {
114+ try {
115+ const [ name ] = expr . split ( ":" , 1 ) ;
116+ const mod = registry . renderer . get ( name ) ;
117+ if ( ! mod ) {
118+ throw new Error ( `No renderer '${ name } ' is registered` ) ;
119+ }
120+ return mod . getRenderer ( config . getRendererOptions ( expr , conf ) ) ;
121+ } catch ( err ) {
122+ console . warn ( `[fall] ${ err . message ?? err } ` ) ;
106123 }
107- return mod . getRenderer ( config . getRendererOptions ( expr , conf ) ) ;
108124}
109125
110- export function getPreviewer ( expr : string , conf : Config ) : Previewer {
111- const [ name ] = expr . split ( ":" , 1 ) ;
112- const mod = registry . previewer . get ( name ) ;
113- if ( ! mod ) {
114- throw new Error ( `No previewer '${ name } ' is registered` ) ;
126+ export function getPreviewer (
127+ expr : string ,
128+ conf : Config ,
129+ ) : Previewer | undefined {
130+ try {
131+ const [ name ] = expr . split ( ":" , 1 ) ;
132+ const mod = registry . previewer . get ( name ) ;
133+ if ( ! mod ) {
134+ throw new Error ( `No previewer '${ name } ' is registered` ) ;
135+ }
136+ return mod . getPreviewer ( config . getPreviewerOptions ( expr , conf ) ) ;
137+ } catch ( err ) {
138+ console . warn ( `[fall] ${ err . message ?? err } ` ) ;
115139 }
116- return mod . getPreviewer ( config . getPreviewerOptions ( expr , conf ) ) ;
117140}
118141
119- export function getAction ( expr : string , conf : Config ) : Action {
120- const [ name ] = expr . split ( ":" , 1 ) ;
121- const mod = registry . action . get ( name ) ;
122- if ( ! mod ) {
123- throw new Error ( `No action '${ name } ' is registered` ) ;
142+ export function getAction ( expr : string , conf : Config ) : Action | undefined {
143+ try {
144+ const [ name ] = expr . split ( ":" , 1 ) ;
145+ const mod = registry . action . get ( name ) ;
146+ if ( ! mod ) {
147+ throw new Error ( `No action '${ name } ' is registered` ) ;
148+ }
149+ return mod . getAction ( config . getActionOptions ( expr , conf ) ) ;
150+ } catch ( err ) {
151+ console . warn ( `[fall] ${ err . message ?? err } ` ) ;
124152 }
125- return mod . getAction ( config . getActionOptions ( expr , conf ) ) ;
126153}
0 commit comments