ruru
Version:
Grafast-flavoured GraphiQL distribution
2 lines • 6.26 kB
JavaScript
export const __webpack_id__=5281;export const __webpack_ids__=[5281];export const __webpack_modules__={25281:(e,t,o)=>{o.r(t),o.d(t,{setupMode:()=>p});var r=o(62370),i=o(68172);class s{_defaults;_idleCheckInterval;_lastUsedTime=0;_configChangeListener;_worker=null;_client=null;constructor(e){this._defaults=e,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),3e4),this._configChangeListener=this._defaults.onDidChange(()=>{this._stopWorker()})}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>12e4&&this._stopWorker()}async _getClient(){if(this._lastUsedTime=Date.now(),!this._client&&!this._worker)try{const{languageId:e,formattingOptions:t,schemas:o,externalFragmentDefinitions:s,completionSettings:n}=this._defaults;this._worker=r.editor.createWebWorker({moduleId:"monaco-graphql/esm/GraphQLWorker.js",label:e,createData:{languageId:e,formattingOptions:t,languageConfig:{schemas:o?.map(i.pu),externalFragmentDefinitions:s,fillLeafsOnComplete:n.__experimental__fillLeafsOnComplete}}}),this._client=this._worker.getProxy()}catch(e){console.error("error loading worker",e)}return this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return await this._worker.withSyncedResources(e),t}}var n=o(33672),a=o(37066);class l{defaults;_worker;_disposables=[];_listener=Object.create(null);constructor(e,t){let o;this.defaults=e,this._worker=t,this._worker=t;const r=t=>{const r=(0,i.ph)(t);if(r!==this.defaults.languageId)return;const s=t.uri.toString(),n=e.diagnosticSettings.validateVariablesJSON?.[s];o=setTimeout(()=>{this._doValidate(t.uri,r,n)},400),this._listener[s]=t.onDidChangeContent(()=>{clearTimeout(o),o=setTimeout(()=>{this._doValidate(t.uri,r,n)},400)})},s=e=>{n.editor.setModelMarkers(e,this.defaults.languageId,[]);const t=e.uri.toString(),o=this._listener[t];o&&(o.dispose(),delete this._listener[t])};this._disposables.push(n.editor.onDidCreateModel(r),{dispose(){clearTimeout(o)}},n.editor.onWillDisposeModel(e=>{s(e)}),n.editor.onDidChangeModelLanguage(e=>{s(e.model),r(e.model)}),{dispose:()=>{for(const e of Object.values(this._listener))e.dispose()}},e.onDidChange(()=>{for(const e of n.editor.getModels())(0,i.ph)(e)===this.defaults.languageId&&(s(e),r(e))}));for(const e of n.editor.getModels())(0,i.ph)(e)===this.defaults.languageId&&r(e)}dispose(){for(const e of this._disposables)e.dispose();this._disposables=[]}async _doValidate(e,t,i){const s=await this._worker(e);if(!s)return;const a=await s.doValidation(e.toString());if(n.editor.setModelMarkers(n.editor.getModel(e),t,a),i){if(await Promise.resolve().then(o.bind(o,34878)),!i.length)throw new Error("No variables URI strings provided to validate");const t=await s.doGetVariablesJSONSchema(e.toString());if(!t)return;const n=r.Uri.file(i[0].replace(".json","-schema.json")).toString(),a={uri:n,schema:t,fileMatch:i},l=r.languages.json.jsonDefaults.diagnosticsOptions.schemas?.filter(e=>e.uri!==n)||[];r.languages.json.jsonDefaults.setDiagnosticsOptions({schemaValidation:"error",validate:!0,...this.defaults.diagnosticSettings.jsonDiagnosticSettings,schemas:[...l,a],enableSchemaRequest:!1})}}}const c=r.languages.CompletionItemKind,d={[a.Io.Text]:c.Text,[a.Io.Method]:c.Method,[a.Io.Function]:c.Function,[a.Io.Constructor]:c.Constructor,[a.Io.Field]:c.Field,[a.Io.Variable]:c.Variable,[a.Io.Class]:c.Class,[a.Io.Interface]:c.Interface,[a.Io.Module]:c.Module,[a.Io.Property]:c.Property,[a.Io.Unit]:c.Unit,[a.Io.Value]:c.Value,[a.Io.Enum]:c.Enum,[a.Io.Keyword]:c.Keyword,[a.Io.Snippet]:c.Snippet,[a.Io.Color]:c.Color,[a.Io.File]:c.File,[a.Io.Reference]:c.Reference,[a.Io.Folder]:c.Folder,[a.Io.EnumMember]:c.EnumMember,[a.Io.Constant]:c.Constant,[a.Io.Struct]:c.Struct,[a.Io.Event]:c.Event,[a.Io.Operator]:c.Operator,[a.Io.TypeParameter]:c.TypeParameter};function g(e){var t;return{range:e.range,kind:(t=e.kind,t in d?d[t]:c.Text),label:e.label,insertText:e.insertText??e.label,insertTextRules:e.insertText?r.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:e.command}}class u{_worker;constructor(e){this._worker=e,this._worker=e}get triggerCharacters(){return[":","$"," ","(","@"]}async provideCompletionItems(e,t,o,r){try{const o=await this._worker(e.uri);return{incomplete:!0,suggestions:(await o.doComplete(e.uri.toString(),t)).map(g)}}catch(e){return console.error("Error fetching completion items",e),{suggestions:[]}}}}class h{_worker;constructor(e){this._worker=e,this._worker=e}async provideDocumentFormattingEdits(e,t,o){const r=await this._worker(e.uri),i=await r.doFormat(e.uri.toString());return i?[{range:e.getFullModelRange(),text:i}]:[]}}class m{_worker;constructor(e){this._worker=e}async provideHover(e,t,o){const r=e.uri,i=await this._worker(e.uri),s=await i.doHover(r.toString(),t);return s?{range:s.range,contents:[{value:s.content}]}:{contents:[]}}dispose(){}}function p(e){const t=[],o=[],i=new s(e);t.push(i);const n=(...e)=>{try{return i.getLanguageServiceWorker(...e)}catch{throw new Error("Error fetching graphql language service worker")}};function a(){const{modeConfiguration:t,languageId:i}=e;t.documentFormattingEdits&&o.push(r.languages.registerDocumentFormattingEditProvider(i,new h(n)))}function c(t){const{modeConfiguration:i,languageId:s}=e;f(o),i.completionItems&&o.push(r.languages.registerCompletionItemProvider(s,new u(n))),i.diagnostics&&o.push(new l(t,n)),i.hovers&&o.push(r.languages.registerHoverProvider(s,new m(n))),a()}let{modeConfiguration:d,formattingOptions:g,diagnosticSettings:p,externalFragmentDefinitions:w,schemas:I}=e;return c(e),e.onDidChange(e=>{e.modeConfiguration!==d&&(d=e.modeConfiguration,c(e)),e.formattingOptions!==g&&(g=e.formattingOptions,a()),e.externalFragmentDefinitions!==w&&(w=e.externalFragmentDefinitions,c(e)),e.diagnosticSettings!==p&&(p=e.diagnosticSettings,c(e)),e.schemas!==I&&(I=e.schemas,c(e))}),t.push(_(o)),_(t)}function _(e){return{dispose:()=>f(e)}}function f(e){for(;e.length;)e.pop().dispose()}}};
//# sourceMappingURL=5281.js.map