UNPKG

ruru

Version:

Grafast-flavoured GraphiQL distribution

2 lines 6.73 kB
export const __webpack_esm_id__=5281;export const __webpack_esm_ids__=[5281];export const __webpack_esm_modules__={25281(e,t,o){o.d(t,{setupMode:()=>p}),o.r(t);var i=o(62370),n=o(68172);class r{_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:r,completionSettings:s}=this._defaults;this._worker=i.editor.createWebWorker({moduleId:"monaco-graphql/esm/GraphQLWorker.js",label:e,createData:{languageId:e,formattingOptions:t,languageConfig:{schemas:o?.map(n.getStringSchema),externalFragmentDefinitions:r,fillLeafsOnComplete:s.__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 s=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 i=t=>{const i=(0,n.getModelLanguageId)(t);if(i!==this.defaults.languageId)return;const r=t.uri.toString(),s=e.diagnosticSettings.validateVariablesJSON?.[r];o=setTimeout(()=>{this._doValidate(t.uri,i,s)},400),this._listener[r]=t.onDidChangeContent(()=>{clearTimeout(o),o=setTimeout(()=>{this._doValidate(t.uri,i,s)},400)})},r=e=>{s.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(s.editor.onDidCreateModel(i),{dispose(){clearTimeout(o)}},s.editor.onWillDisposeModel(e=>{r(e)}),s.editor.onDidChangeModelLanguage(e=>{r(e.model),i(e.model)}),{dispose:()=>{for(const e of Object.values(this._listener))e.dispose()}},e.onDidChange(()=>{for(const e of s.editor.getModels())(0,n.getModelLanguageId)(e)===this.defaults.languageId&&(r(e),i(e))}));for(const e of s.editor.getModels())(0,n.getModelLanguageId)(e)===this.defaults.languageId&&i(e)}dispose(){for(const e of this._disposables)e.dispose();this._disposables=[]}async _doValidate(e,t,n){const r=await this._worker(e);if(!r)return;const a=await r.doValidation(e.toString());if(s.editor.setModelMarkers(s.editor.getModel(e),t,a),n){if(await Promise.resolve().then(o.bind(o,34878)),!n.length)throw new Error("No variables URI strings provided to validate");const t=await r.doGetVariablesJSONSchema(e.toString());if(!t)return;const s=i.Uri.file(n[0].replace(".json","-schema.json")).toString(),a={uri:s,schema:t,fileMatch:n},l=i.languages.json.jsonDefaults.diagnosticsOptions.schemas?.filter(e=>e.uri!==s)||[];i.languages.json.jsonDefaults.setDiagnosticsOptions({schemaValidation:"error",validate:!0,...this.defaults.diagnosticSettings.jsonDiagnosticSettings,schemas:[...l,a],enableSchemaRequest:!1})}}}const d=i.languages.CompletionItemKind,c={[a.CompletionItemKind.Text]:d.Text,[a.CompletionItemKind.Method]:d.Method,[a.CompletionItemKind.Function]:d.Function,[a.CompletionItemKind.Constructor]:d.Constructor,[a.CompletionItemKind.Field]:d.Field,[a.CompletionItemKind.Variable]:d.Variable,[a.CompletionItemKind.Class]:d.Class,[a.CompletionItemKind.Interface]:d.Interface,[a.CompletionItemKind.Module]:d.Module,[a.CompletionItemKind.Property]:d.Property,[a.CompletionItemKind.Unit]:d.Unit,[a.CompletionItemKind.Value]:d.Value,[a.CompletionItemKind.Enum]:d.Enum,[a.CompletionItemKind.Keyword]:d.Keyword,[a.CompletionItemKind.Snippet]:d.Snippet,[a.CompletionItemKind.Color]:d.Color,[a.CompletionItemKind.File]:d.File,[a.CompletionItemKind.Reference]:d.Reference,[a.CompletionItemKind.Folder]:d.Folder,[a.CompletionItemKind.EnumMember]:d.EnumMember,[a.CompletionItemKind.Constant]:d.Constant,[a.CompletionItemKind.Struct]:d.Struct,[a.CompletionItemKind.Event]:d.Event,[a.CompletionItemKind.Operator]:d.Operator,[a.CompletionItemKind.TypeParameter]:d.TypeParameter};function g(e){var t;return{range:e.range,kind:(t=e.kind,t in c?c[t]:d.Text),label:e.label,insertText:e.insertText??e.label,insertTextRules:e.insertText?i.languages.CompletionItemInsertTextRule.InsertAsSnippet:void 0,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:e.command}}class m{_worker;constructor(e){this._worker=e,this._worker=e}get triggerCharacters(){return[":","$"," ","(","@"]}async provideCompletionItems(e,t,o,i){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 u{_worker;constructor(e){this._worker=e,this._worker=e}async provideDocumentFormattingEdits(e,t,o){const i=await this._worker(e.uri),n=await i.doFormat(e.uri.toString());return n?[{range:e.getFullModelRange(),text:n}]:[]}}class h{_worker;constructor(e){this._worker=e}async provideHover(e,t,o){const i=e.uri,n=await this._worker(e.uri),r=await n.doHover(i.toString(),t);return r?{range:r.range,contents:[{value:r.content}]}:{contents:[]}}dispose(){}}function p(e){const t=[],o=[],n=new r(e);t.push(n);const s=(...e)=>{try{return n.getLanguageServiceWorker(...e)}catch{throw new Error("Error fetching graphql language service worker")}};function a(){const{modeConfiguration:t,languageId:n}=e;t.documentFormattingEdits&&o.push(i.languages.registerDocumentFormattingEditProvider(n,new u(s)))}function d(t){const{modeConfiguration:n,languageId:r}=e;f(o),n.completionItems&&o.push(i.languages.registerCompletionItemProvider(r,new m(s))),n.diagnostics&&o.push(new l(t,s)),n.hovers&&o.push(i.languages.registerHoverProvider(r,new h(s))),a()}let{modeConfiguration:c,formattingOptions:g,diagnosticSettings:p,externalFragmentDefinitions:C,schemas:w}=e;return d(e),e.onDidChange(e=>{e.modeConfiguration!==c&&(c=e.modeConfiguration,d(e)),e.formattingOptions!==g&&(g=e.formattingOptions,a()),e.externalFragmentDefinitions!==C&&(C=e.externalFragmentDefinitions,d(e)),e.diagnosticSettings!==p&&(p=e.diagnosticSettings,d(e)),e.schemas!==w&&(w=e.schemas,d(e))}),t.push(_(o)),_(t)}function _(e){return{dispose:()=>f(e)}}function f(e){for(;e.length;)e.pop().dispose()}}}; //# sourceMappingURL=5281.js.map