UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 3.08 kB
import*as i18n from"../i18n/i18n.js";import{CategorizedBreakpoint}from"./CategorizedBreakpoint.js";import{Capability}from"./Target.js";import{SDKModel}from"./SDKModel.js";import{TargetManager}from"./TargetManager.js";const UIStrings={auctionWorklet:"Ad Auction Worklet",beforeBidderWorkletBiddingStart:"Bidder Bidding Phase Start",beforeBidderWorkletReportingStart:"Bidder Reporting Phase Start",beforeSellerWorkletScoringStart:"Seller Scoring Phase Start",beforeSellerWorkletReportingStart:"Seller Reporting Phase Start"},str_=i18n.i18n.registerUIStrings("core/sdk/EventBreakpointsModel.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);function getTitleForInstrumentationName(e){switch(e){case"beforeBidderWorkletBiddingStart":return i18nString(UIStrings.beforeBidderWorkletBiddingStart);case"beforeBidderWorkletReportingStart":return i18nString(UIStrings.beforeBidderWorkletReportingStart);case"beforeSellerWorkletScoringStart":return i18nString(UIStrings.beforeSellerWorkletScoringStart);case"beforeSellerWorkletReportingStart":return i18nString(UIStrings.beforeSellerWorkletReportingStart)}}export class EventBreakpointsModel extends SDKModel{agent;constructor(e){super(e),this.agent=e.eventBreakpointsAgent()}}class EventListenerBreakpoint extends CategorizedBreakpoint{instrumentationName;constructor(e,t){super(t,getTitleForInstrumentationName(e)),this.instrumentationName=e}setEnabled(e){if(this.enabled()!==e){super.setEnabled(e);for(const e of TargetManager.instance().models(EventBreakpointsModel))this.updateOnModel(e)}}updateOnModel(e){this.enabled()?e.agent.invoke_setInstrumentationBreakpoint({eventName:this.instrumentationName}):e.agent.invoke_removeInstrumentationBreakpoint({eventName:this.instrumentationName})}static instrumentationPrefix="instrumentation:"}let eventBreakpointManagerInstance;export class EventBreakpointsManager{#e=[];constructor(){this.createInstrumentationBreakpoints(i18nString(UIStrings.auctionWorklet),["beforeBidderWorkletBiddingStart","beforeBidderWorkletReportingStart","beforeSellerWorkletScoringStart","beforeSellerWorkletReportingStart"]),TargetManager.instance().observeModels(EventBreakpointsModel,this)}static instance(e={forceNew:null}){const{forceNew:t}=e;return eventBreakpointManagerInstance&&!t||(eventBreakpointManagerInstance=new EventBreakpointsManager),eventBreakpointManagerInstance}createInstrumentationBreakpoints(e,t){for(const r of t)this.#e.push(new EventListenerBreakpoint(r,e))}eventListenerBreakpoints(){return this.#e.slice()}resolveEventListenerBreakpointTitle(e){const t=this.resolveEventListenerBreakpoint(e);return t?t.title():null}resolveEventListenerBreakpoint(e){const t=e.eventName;if(!t.startsWith(EventListenerBreakpoint.instrumentationPrefix))return null;const r=t.substring(EventListenerBreakpoint.instrumentationPrefix.length);return this.#e.find((e=>e.instrumentationName===r))||null}modelAdded(e){for(const t of this.#e)t.enabled()&&t.updateOnModel(e)}modelRemoved(e){}}SDKModel.register(EventBreakpointsModel,{capabilities:Capability.EventBreakpoints,autostart:!1});