UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.74 kB
import*as Common from"../../core/common/common.js";import*as Bindings from"../../models/bindings/bindings.js";import*as Workspace from"../../models/workspace/workspace.js";import{ContentSecurityPolicyIssue,trustedTypesPolicyViolationCode,trustedTypesSinkViolationCode}from"./ContentSecurityPolicyIssue.js";import{toZeroBasedLocation}from"./Issue.js";import{getIssueTitleFromMarkdownDescription}from"./MarkdownIssueDescription.js";import{lateImportStylesheetLoadingCode}from"./StylesheetLoadingIssue.js";export class SourceFrameIssuesManager{issuesManager;#e=new Bindings.PresentationConsoleMessageHelper.PresentationSourceFrameMessageManager;constructor(e){this.issuesManager=e,this.issuesManager.addEventListener("IssueAdded",this.#s,this),this.issuesManager.addEventListener("FullUpdateRequired",this.#o,this)}#s(e){const{issue:s}=e.data;this.#t(s)}async#t(e){if(!this.#r(e)&&!this.#i(e))return;const s=e.model();if(!s)return;const o=toZeroBasedLocation(e.details().sourceCodeLocation),t=e.getDescription();if(!t||!o)return;const r=await getIssueTitleFromMarkdownDescription(t);if(!r)return;this.#e.addMessage(new IssueMessage(r,e.getKind(),(()=>{Common.Revealer.reveal(e)})),{line:o.lineNumber,column:o.columnNumber??-1,url:o.url,scriptId:o.scriptId},s.target())}#o(){this.#n();const e=this.issuesManager.issues();for(const s of e)this.#t(s)}#r(e){return e instanceof ContentSecurityPolicyIssue&&e.code()===trustedTypesSinkViolationCode||e.code()===trustedTypesPolicyViolationCode}#i(e){return e.code()===lateImportStylesheetLoadingCode}#n(){this.#e.clear()}}export class IssueMessage extends Workspace.UISourceCode.Message{#a;constructor(e,s,o){super(Workspace.UISourceCode.Message.Level.Issue,e,o),this.#a=s}getIssueKind(){return this.#a}}