@@ -162,7 +162,16 @@ const codeFontRange = {
162162
163163const defaultAbout = ( yaml . load ( readFileSync ( join ( __dirname , 'setting.yaml' ) , 'utf-8' ) ) as any ) . about . value ;
164164
165- export function apply ( ctx : Context ) {
165+ export const name = 'ui-default' ;
166+ export const Config = Schema . object ( {
167+ serviceWorker : Schema . object ( {
168+ preload : Schema . string ( ) . default ( '' ) ,
169+ assets : Schema . array ( Schema . string ( ) ) . default ( [ ] ) ,
170+ domains : Schema . array ( Schema . string ( ) ) . default ( [ ] ) ,
171+ } ) . description ( 'Service worker optimization settings' ) . experimental ( ) ,
172+ } ) ;
173+
174+ export function apply ( ctx : Context , config : ReturnType < typeof Config > ) {
166175 ctx . inject ( [ 'setting' ] , ( c ) => {
167176 c . setting . PreferenceSetting (
168177 SettingModel . Setting ( 'setting_display' , 'rounded' , false , 'boolean' , 'Rounded Corners' ) ,
@@ -179,7 +188,6 @@ export function apply(ctx: Context) {
179188 'ui-default' : Schema . object ( {
180189 footer_extra_html : Schema . string ( ) . role ( 'textarea' ) . default ( '' ) ,
181190 nav_logo_dark : Schema . string ( ) . default ( '/components/navigation/nav-logo-small_dark.png' ) ,
182- preload : Schema . string ( ) . default ( '' ) ,
183191 domainNavigation : Schema . boolean ( ) . default ( true ) . description ( 'Show Domain Navigation' ) ,
184192 about : Schema . string ( ) . role ( 'markdown' ) . default ( defaultAbout ) ,
185193 enableScratchpad : Schema . boolean ( ) . default ( true ) . description ( 'Enable Scratchpad Mode' ) ,
@@ -202,15 +210,15 @@ export function apply(ctx: Context) {
202210 } ) ;
203211 ctx . on ( 'handler/after' , async ( that ) => {
204212 that . UiContext . SWConfig = {
205- preload : SystemModel . get ( 'ui-default .preload' ) ,
213+ preload : config . serviceWorker . preload ,
206214 hosts : [
207215 `http://${ that . request . host } ` ,
208216 `https://${ that . request . host } ` ,
209217 SystemModel . get ( 'server.url' ) ,
210218 SystemModel . get ( 'server.cdn' ) ,
211219 ] ,
212- assets : ( ( SystemModel . get ( 'ui-default .assets' ) || '' ) . split ( ',' ) ) . filter ( ( i ) => i ) || [ ] ,
213- domains : SystemModel . get ( 'ui-default .domains' ) || [ ] ,
220+ assets : config . serviceWorker . assets ,
221+ domains : config . serviceWorker . domains ,
214222 } ;
215223 } ) ;
216224 ctx . plugin ( TemplateService ) ;
0 commit comments