Best JavaScript code snippet using best
outputServices.ts
Source:outputServices.ts
1/*---------------------------------------------------------------------------------------------2 * Copyright (c) Microsoft Corporation. All rights reserved.3 * Licensed under the MIT License. See License.txt in the project root for license information.4 *--------------------------------------------------------------------------------------------*/5import { Event, Emitter } from 'vs/base/common/event';6import { URI } from 'vs/base/common/uri';7import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';8import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';9import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage';10import { Registry } from 'vs/platform/registry/common/platform';11import { IOutputChannel, IOutputService, OUTPUT_VIEW_ID, OUTPUT_SCHEME, LOG_SCHEME, LOG_MIME, OUTPUT_MIME, OutputChannelUpdateMode, IOutputChannelDescriptor, Extensions, IOutputChannelRegistry } from 'vs/workbench/services/output/common/output';12import { OutputLinkProvider } from 'vs/workbench/contrib/output/browser/outputLinkProvider';13import { ITextModelService, ITextModelContentProvider } from 'vs/editor/common/services/resolverService';14import { ITextModel } from 'vs/editor/common/model';15import { ILogService } from 'vs/platform/log/common/log';16import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle';17import { IOutputChannelModel } from 'vs/workbench/contrib/output/common/outputChannelModel';18import { IViewsService } from 'vs/workbench/common/views';19import { OutputViewPane } from 'vs/workbench/contrib/output/browser/outputView';20import { IOutputChannelModelService } from 'vs/workbench/contrib/output/common/outputChannelModelService';21import { ILanguageService } from 'vs/editor/common/languages/language';22const OUTPUT_ACTIVE_CHANNEL_KEY = 'output.activechannel';23class OutputChannel extends Disposable implements IOutputChannel {24 scrollLock: boolean = false;25 readonly model: IOutputChannelModel;26 readonly id: string;27 readonly label: string;28 readonly uri: URI;29 constructor(30 readonly outputChannelDescriptor: IOutputChannelDescriptor,31 @IOutputChannelModelService outputChannelModelService: IOutputChannelModelService,32 @ILanguageService languageService: ILanguageService,33 ) {34 super();35 this.id = outputChannelDescriptor.id;36 this.label = outputChannelDescriptor.label;37 this.uri = URI.from({ scheme: OUTPUT_SCHEME, path: this.id });38 this.model = this._register(outputChannelModelService.createOutputChannelModel(this.id, this.uri, outputChannelDescriptor.languageId ? languageService.createById(outputChannelDescriptor.languageId) : languageService.createByMimeType(outputChannelDescriptor.log ? LOG_MIME : OUTPUT_MIME), outputChannelDescriptor.file));39 }40 append(output: string): void {41 this.model.append(output);42 }43 update(mode: OutputChannelUpdateMode, till?: number): void {44 this.model.update(mode, till, true);45 }46 clear(): void {47 this.model.clear();48 }49 replace(value: string): void {50 this.model.replace(value);51 }52}53export class OutputService extends Disposable implements IOutputService, ITextModelContentProvider {54 declare readonly _serviceBrand: undefined;55 private channels: Map<string, OutputChannel> = new Map<string, OutputChannel>();56 private activeChannelIdInStorage: string;57 private activeChannel?: OutputChannel;58 private readonly _onActiveOutputChannel = this._register(new Emitter<string>());59 readonly onActiveOutputChannel: Event<string> = this._onActiveOutputChannel.event;60 constructor(61 @IStorageService private readonly storageService: IStorageService,62 @IInstantiationService private readonly instantiationService: IInstantiationService,63 @ITextModelService textModelResolverService: ITextModelService,64 @ILogService private readonly logService: ILogService,65 @ILifecycleService private readonly lifecycleService: ILifecycleService,66 @IViewsService private readonly viewsService: IViewsService,67 ) {68 super();69 this.activeChannelIdInStorage = this.storageService.get(OUTPUT_ACTIVE_CHANNEL_KEY, StorageScope.WORKSPACE, '');70 // Register as text model content provider for output71 textModelResolverService.registerTextModelContentProvider(OUTPUT_SCHEME, this);72 instantiationService.createInstance(OutputLinkProvider);73 // Create output channels for already registered channels74 const registry = Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels);75 for (const channelIdentifier of registry.getChannels()) {76 this.onDidRegisterChannel(channelIdentifier.id);77 }78 this._register(registry.onDidRegisterChannel(this.onDidRegisterChannel, this));79 // Set active channel to first channel if not set80 if (!this.activeChannel) {81 const channels = this.getChannelDescriptors();82 this.setActiveChannel(channels && channels.length > 0 ? this.getChannel(channels[0].id) : undefined);83 }84 this._register(this.lifecycleService.onDidShutdown(() => this.dispose()));85 }86 provideTextContent(resource: URI): Promise<ITextModel> | null {87 const channel = <OutputChannel>this.getChannel(resource.path);88 if (channel) {89 return channel.model.loadModel();90 }91 return null;92 }93 async showChannel(id: string, preserveFocus?: boolean): Promise<void> {94 const channel = this.getChannel(id);95 if (this.activeChannel?.id !== channel?.id) {96 this.setActiveChannel(channel);97 this._onActiveOutputChannel.fire(id);98 }99 const outputView = await this.viewsService.openView<OutputViewPane>(OUTPUT_VIEW_ID, !preserveFocus);100 if (outputView && channel) {101 outputView.showChannel(channel, !!preserveFocus);102 }103 }104 getChannel(id: string): OutputChannel | undefined {105 return this.channels.get(id);106 }107 getChannelDescriptor(id: string): IOutputChannelDescriptor | undefined {108 return Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels).getChannel(id);109 }110 getChannelDescriptors(): IOutputChannelDescriptor[] {111 return Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels).getChannels();112 }113 getActiveChannel(): IOutputChannel | undefined {114 return this.activeChannel;115 }116 private async onDidRegisterChannel(channelId: string): Promise<void> {117 const channel = this.createChannel(channelId);118 this.channels.set(channelId, channel);119 if (!this.activeChannel || this.activeChannelIdInStorage === channelId) {120 this.setActiveChannel(channel);121 this._onActiveOutputChannel.fire(channelId);122 const outputView = this.viewsService.getActiveViewWithId<OutputViewPane>(OUTPUT_VIEW_ID);123 outputView?.showChannel(channel, true);124 }125 }126 private createChannel(id: string): OutputChannel {127 const channelDisposables: IDisposable[] = [];128 const channel = this.instantiateChannel(id);129 channel.model.onDispose(() => {130 if (this.activeChannel === channel) {131 const channels = this.getChannelDescriptors();132 const channel = channels.length ? this.getChannel(channels[0].id) : undefined;133 if (channel && this.viewsService.isViewVisible(OUTPUT_VIEW_ID)) {134 this.showChannel(channel.id);135 } else {136 this.setActiveChannel(undefined);137 }138 }139 Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels).removeChannel(id);140 dispose(channelDisposables);141 }, channelDisposables);142 return channel;143 }144 private instantiateChannel(id: string): OutputChannel {145 const channelData = Registry.as<IOutputChannelRegistry>(Extensions.OutputChannels).getChannel(id);146 if (!channelData) {147 this.logService.error(`Channel '${id}' is not registered yet`);148 throw new Error(`Channel '${id}' is not registered yet`);149 }150 return this.instantiationService.createInstance(OutputChannel, channelData);151 }152 private setActiveChannel(channel: OutputChannel | undefined): void {153 this.activeChannel = channel;154 if (this.activeChannel) {155 this.storageService.store(OUTPUT_ACTIVE_CHANNEL_KEY, this.activeChannel.id, StorageScope.WORKSPACE, StorageTarget.USER);156 } else {157 this.storageService.remove(OUTPUT_ACTIVE_CHANNEL_KEY, StorageScope.WORKSPACE);158 }159 }160}161export class LogContentProvider {162 private channelModels: Map<string, IOutputChannelModel> = new Map<string, IOutputChannelModel>();163 constructor(164 @IOutputService private readonly outputService: IOutputService,165 @IOutputChannelModelService private readonly outputChannelModelService: IOutputChannelModelService,166 @ILanguageService private readonly languageService: ILanguageService167 ) {168 }169 provideTextContent(resource: URI): Promise<ITextModel> | null {170 if (resource.scheme === LOG_SCHEME) {171 const channelModel = this.getChannelModel(resource);172 if (channelModel) {173 return channelModel.loadModel();174 }175 }176 return null;177 }178 private getChannelModel(resource: URI): IOutputChannelModel | undefined {179 const channelId = resource.path;180 let channelModel = this.channelModels.get(channelId);181 if (!channelModel) {182 const channelDisposables: IDisposable[] = [];183 const outputChannelDescriptor = this.outputService.getChannelDescriptors().filter(({ id }) => id === channelId)[0];184 if (outputChannelDescriptor && outputChannelDescriptor.file) {185 channelModel = this.outputChannelModelService.createOutputChannelModel(channelId, resource, outputChannelDescriptor.languageId ? this.languageService.createById(outputChannelDescriptor.languageId) : this.languageService.createByMimeType(outputChannelDescriptor.log ? LOG_MIME : OUTPUT_MIME), outputChannelDescriptor.file);186 channelModel.onDispose(() => dispose(channelDisposables), channelDisposables);187 this.channelModels.set(channelId, channelModel);188 }189 }190 return channelModel;191 }...
Channels.js
Source:Channels.js
1import {2 ChannelsHamt,3 AddressesHamt,4 PulseLink,5 Channel,6 Address,7 Interpulse,8} from '.'9import assert from 'assert-fast'10import { IpldStruct } from './IpldStruct'11/**12type Channels struct {13 counter Int14 list HashMapRoot # Map of channelIds to Channels15 addresses HashMapRoot # reverse lookup of channels16 rxs [ Int ]17 txs [ Int ]18}19 */20const FIXED_CHANNEL_COUNT = 321export class Channels extends IpldStruct {22 static classMap = {23 list: ChannelsHamt,24 addresses: AddressesHamt,25 }26 static create() {27 const list = ChannelsHamt.create()28 const counter = FIXED_CHANNEL_COUNT29 const addresses = AddressesHamt.create()30 const rxs = []31 const txs = []32 return super.clone({ counter, list, addresses, rxs, txs })33 }34 assertLogic() {}35 async has(channelId) {36 assert(Number.isInteger(channelId))37 assert(channelId >= 0)38 assert(channelId < this.counter)39 return await this.list.has(channelId)40 }41 async hasAddress(address) {42 assert(address instanceof Address)43 assert(address.isRemote())44 return await this.addresses.has(address)45 }46 async getByAddress(address) {47 assert(address instanceof Address)48 const channelId = await this.addresses.get(address)49 return await this.getChannel(channelId)50 }51 async deleteChannel(channelId) {52 await this.#assertChannelIdValid(channelId)53 const list = this.list.delete(channelId)54 return this.setMap({ list })55 }56 async getChannel(channelId) {57 await this.#assertChannelIdValid(channelId)58 const channel = await this.list.get(channelId)59 assert.strictEqual(channelId, channel.channelId)60 return channel61 }62 async #assertChannelIdValid(channelId) {63 assert(Number.isInteger(channelId))64 assert(channelId >= 0)65 assert(channelId < this.counter)66 if (channelId >= FIXED_CHANNEL_COUNT) {67 assert(await this.list.has(channelId), `channelId not present`)68 }69 }70 async addChannel(channel) {71 assert(channel instanceof Channel)72 assert(Number.isInteger(this.counter))73 assert(this.counter >= FIXED_CHANNEL_COUNT)74 let { counter, addresses } = this75 const channelId = counter++76 assert.strictEqual(channelId, channel.channelId)77 const list = await this.list.set(channelId, channel)78 const { address } = channel79 if (address.isRemote()) {80 addresses = await this.addresses.set(address, channelId)81 }82 const next = this.setMap({ counter, list, addresses })83 return next.updateActives(channelId, channel)84 }85 async updateChannel(channel) {86 const { channelId } = channel87 await this.#assertChannelIdValid(channelId)88 let previous89 const isPrevious = await this.list.has(channelId)90 if (channelId >= FIXED_CHANNEL_COUNT || isPrevious) {91 previous = await this.list.get(channelId)92 assert(previous.isNext(channel))93 // TODO if channel is identical, return94 }95 const list = await this.list.set(channelId, channel)96 let { addresses } = this97 const isResolved = previous && !previous.isRemote() && channel.isRemote()98 const isNewResolved = !previous && channel.isRemote()99 if (isResolved || isNewResolved) {100 const { address } = channel101 addresses = await addresses.set(address, channelId)102 }103 const next = this.setMap({ list, addresses })104 return next.updateActives(channelId, channel)105 }106 updateActives(channelId, channel) {107 assert(Number.isInteger(channelId))108 assert(channelId >= 0)109 assert(channel instanceof Channel)110 const { address } = channel111 let { rxs, txs } = this112 if (!channel.rxIsEmpty()) {113 assert(!address.isRoot())114 if (!rxs.includes(channelId)) {115 rxs = [...rxs, channelId]116 }117 } else {118 if (rxs.includes(channelId)) {119 rxs = rxs.filter((id) => id !== channelId)120 if (address.isInvalid()) {121 // TODO delete the channel from the list and clean up aliases122 }123 }124 }125 if (rxs !== this.rxs) {126 // ensure loopback, parent, and io come before others127 rxs.sort((a, b) => a - b)128 }129 if (!channel.tx.isEmpty()) {130 assert(!address.isRoot())131 if (!txs.includes(channelId) && !address.isIo() && address.isResolved()) {132 txs = [...txs, channelId]133 }134 } else {135 if (txs.includes(channelId)) {136 txs = txs.filter((id) => id !== channelId)137 }138 }139 return this.setMap({ rxs, txs })140 }141 async getTx(channelId) {142 assert(Number.isInteger(channelId))143 assert(channelId >= 0)144 assert(this.txs.includes(channelId))145 const { tx } = await this.list.get(channelId)146 assert(!tx.isEmpty())147 return tx148 }149 async blankTxs(precedent) {150 assert(precedent instanceof PulseLink)151 let { list } = this152 for (const channelId of this.txs) {153 let channel = await list.get(channelId)154 assert(!channel.tx.isEmpty())155 const tx = channel.tx.blank(precedent)156 channel = channel.setMap({ tx })157 list = await list.set(channelId, channel)158 }159 return this.setMap({ list, txs: [] })160 }161 async ingestInterpulse(interpulse) {162 assert(interpulse instanceof Interpulse)163 const { source } = interpulse164 assert(await this.hasAddress(source), `No address: ${source}`)165 let channel = await this.getByAddress(source)166 channel = channel.ingestInterpulse(interpulse)167 return await this.updateChannel(channel)168 }169 async *rxChannels() {170 for (const channelId of this.rxs) {171 const channel = await this.getChannel(channelId)172 assert(!channel.rxIsEmpty())173 yield channel174 }175 }...
channel.js
Source:channel.js
1import { csrfFetch } from "./csrf";2//add, edit, delete3//--------------------------------------------set channels-----------------------4const SET_USER_CHANNELS = "channels/SetUserChannels";5export const setUserChannels = (channels) => {6 return { type: SET_USER_CHANNELS, channels };7};8//------------------------------------add channel---------------------------------9const ADD_CHANNEL = "Channels/AddChannel";10export const addChannel = (channel) => ({11 type: ADD_CHANNEL,12 channel,13});14export const postChannel = (channel) => async (dispatch) => {15 const res = await csrfFetch("/api/channels/", {16 method: "POST",17 body: JSON.stringify(channel),18 });19 const new_channel = await res.json();20 dispatch(addChannel(new_channel));21 return new_channel;22};23//------------------------------------edit channel---------------------------------24const UPDATE_CHANNEL = "channels/UpdateChannel";25export const updateChannel = (channel) => ({26 type: UPDATE_CHANNEL,27 channel,28});29export const putChannel = (channel) => async (dispatch) => {30 const res = await csrfFetch(`/api/channels/${channel.id}`, {31 method: "PUT",32 headers: { "Content-Type": "application/json" },33 body: JSON.stringify(channel),34 });35 const updatedChannel = await res.json();36 dispatch(updateChannel(updatedChannel));37};38//------------------------------------delete channel---------------------------------39const DELETE_CHANNEL = "channels/deleteChannel";40export const removeChannel = (channel_id) => ({41 type: DELETE_CHANNEL,42 channel_id,43});44export const deleteChannel = (channel_id) => async (dispatch) => {45 const res = await fetch(`/api/channels/${channel_id}`, {46 method: "DELETE",47 });48 const channelNum = await res.json();49 dispatch(removeChannel(channelNum));50};51//------------------------------------delete channel---------------------------------52const ADD_CHANNEL_MEMBER = "channels/addChannelMember";53export const addChannelMember = payload => ({54 type: ADD_CHANNEL_MEMBER,55 payload56})57export const addNewChannelMember = (channel_id, username) => async dispatch => {58 const res = await fetch(`/api/channels/${channel_id}/new_member`, {59 method: "POST",60 headers: { "Content-Type": "application/json" },61 body: JSON.stringify(username)62 });63 const newMember = await res.json();64 dispatch(addChannelMember(newMember));65}66//-----------------------------------channel reducer---------------------------------67const channelReducer = (68 state = { currentChannel: {}, currentView: {}, userChannels: {} },69 action70) => {71 let newState = { ...state };72 switch (action.type) {73 case SET_USER_CHANNELS: {74 action.channels.forEach(75 (channel) => (newState.userChannels[channel.channel_id] = channel)76 );77 return newState;78 }79 case ADD_CHANNEL: {80 newState.userChannels[action.channel.channel_id] = { ...action.channel };81 return newState;82 }83 case UPDATE_CHANNEL: {84 newState.userChannels[action.channel.channel_id] = action.channel;85 return newState;86 }87 case DELETE_CHANNEL: {88 delete newState.userChannels[action.channel_id.channel_id];89 return newState;90 }91 case ADD_CHANNEL_MEMBER: {92 if (newState.userChannels[action.payload.channel_id]) {93 newState.userChannels[action.payload.channel_id].channel_data.members = [...newState.userChannels[action.payload.channel_id].channel_data.members, action.payload];94 } else {95 newState.userChannels[action.payload.channel_id] = action.payload;96 }97 return newState;98 }99 default:100 return state;101 }102};...
Using AI Code Generation
1var request = require('request');2request(url, function (error, response, body) {3 if (!error && response.statusCode == 200) {4 }5})6var request = require('request');7request(url, function (error, response, body) {8 if (!error && response.statusCode == 200) {9 var info = JSON.parse(body);10 console.log(info.products[0].name);11 }12})13var request = require('request');14request(url, function (error, response, body) {15 if (!error && response.statusCode == 200) {16 var info = JSON.parse(body);17 console.log(info.products[0].name);18 console.log(info.products[0].sku);19 console.log(info.products[0].salePrice);20 }21})22var request = require('request');
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!