11import { defaultConfig } from '../config/default-config' ;
22import { languages , parserPlugins , prettierUrl } from '../languages' ;
3- import type { FormatFn , FormatterConfig , Language , Parser } from '../models' ;
3+ import type { Config , FormatFn , FormatterConfig , Language , Parser } from '../models' ;
44import type { FormatterMessage , FormatterMessageEvent } from './models' ;
55
66const worker : Worker = self as any ;
@@ -9,6 +9,7 @@ declare const prettierPlugins: { [key: string]: { parsers: any } };
99declare const importScripts : ( ...args : string [ ] ) => void ;
1010
1111let baseUrl : string ;
12+ let initialConfig : Config ;
1213const parsers : { [ key : string ] : Parser } = { } ;
1314const plugins : { [ key : string ] : any } = { } ;
1415const formatters : { [ key : string ] : FormatFn } = { } ;
@@ -94,15 +95,15 @@ async function loadParser(language: Language): Promise<Parser | undefined> {
9495 return parser ;
9596}
9697
97- const loadFormatter = ( language : Language ) : FormatFn | undefined => {
98+ const loadFormatter = async ( language : Language ) : Promise < FormatFn | undefined > => {
9899 if ( language in formatters ) {
99100 return formatters [ language ] ;
100101 }
101102
102103 const formatter = getFormatter ( language ) ;
103104 if ( ! formatter ) return ;
104105
105- formatters [ language ] = formatter . factory ( baseUrl , language ) ;
106+ formatters [ language ] = await formatter . factory ( baseUrl , language , initialConfig ) ;
106107 return formatters [ language ] ;
107108} ;
108109
@@ -135,7 +136,7 @@ const format = async (
135136 return formatted || unFormatted ;
136137 }
137138 if ( getFormatter ( language ) != null ) {
138- const formatFn = loadFormatter ( language ) ;
139+ const formatFn = await loadFormatter ( language ) ;
139140 const result = await formatFn ?.( value , cursorOffset ) ;
140141 return result || unFormatted ;
141142 }
@@ -148,7 +149,8 @@ worker.addEventListener(
148149 const message = event . data ;
149150
150151 if ( message . type === 'init' ) {
151- baseUrl = message . baseUrl ;
152+ baseUrl = message . payload . baseUrl ;
153+ initialConfig = message . payload . config ;
152154 }
153155
154156 if ( message . type === 'load' ) {
0 commit comments