mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-12-27 12:51:41 +00:00
Compare commits
1 Commits
fix_exlint
...
fix_eslint
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
646bbeb40f |
@@ -40,8 +40,10 @@ src/Explorer/Controls/DiffEditor/DiffEditorComponent.ts
|
||||
|
||||
src/Explorer/Controls/Editor/EditorComponent.ts
|
||||
src/Explorer/Controls/JsonEditor/JsonEditorComponent.ts
|
||||
src/Explorer/DataSamples/ContainerSampleGenerator.test.ts
|
||||
src/Explorer/DataSamples/ContainerSampleGenerator.ts
|
||||
# src/Explorer/DataSamples/ContainerSampleGenerator.test.ts
|
||||
# src/Explorer/DataSamples/ContainerSampleGenerator.ts
|
||||
src/Explorer/DataSamples/DataSamplesUtil.test.ts
|
||||
src/Explorer/DataSamples/DataSamplesUtil.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.test.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/ArraysByKeyCache.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.test.ts
|
||||
@@ -52,6 +54,8 @@ src/Explorer/Graph/GraphExplorerComponent/GraphData.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.test.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/GremlinSimpleClient.test.ts
|
||||
src/Explorer/Graph/GraphExplorerComponent/GremlinSimpleClient.ts
|
||||
src/Explorer/Menus/ContextMenu.ts
|
||||
src/Explorer/MostRecentActivity/MostRecentActivity.ts
|
||||
src/Explorer/Notebook/NotebookClientV2.ts
|
||||
src/Explorer/Notebook/NotebookComponent/NotebookContentProvider.ts
|
||||
@@ -60,8 +64,11 @@ src/Explorer/Notebook/NotebookComponent/actions.ts
|
||||
src/Explorer/Notebook/NotebookComponent/epics.test.ts
|
||||
src/Explorer/Notebook/NotebookComponent/epics.ts
|
||||
src/Explorer/Notebook/NotebookComponent/loadTransform.ts
|
||||
src/Explorer/Notebook/NotebookComponent/reducers.ts
|
||||
src/Explorer/Notebook/NotebookComponent/store.ts
|
||||
src/Explorer/Notebook/NotebookComponent/types.ts
|
||||
src/Explorer/Notebook/NotebookContainerClient.ts
|
||||
src/Explorer/Notebook/NotebookContentClient.ts
|
||||
src/Explorer/Notebook/NotebookContentItem.ts
|
||||
src/Explorer/Notebook/NotebookUtil.ts
|
||||
src/Explorer/OpenActionsStubs.ts
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/*eslint-disable @typescript-eslint/no-empty-function*/
|
||||
jest.mock("../Graph/GraphExplorerComponent/GremlinClient");
|
||||
jest.mock("../../Common/dataAccess/createCollection");
|
||||
jest.mock("../../Common/dataAccess/createDocument");
|
||||
@@ -69,6 +70,7 @@ describe("ContainerSampleGenerator", () => {
|
||||
expect(createDocument).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
// eslint-disable-next-line jest/expect-expect
|
||||
it("should send gremlin queries for Graph API account", async () => {
|
||||
updateUserContext({
|
||||
databaseAccount: {
|
||||
@@ -134,6 +136,7 @@ describe("ContainerSampleGenerator", () => {
|
||||
});
|
||||
|
||||
// Rejects with error that contains experience
|
||||
// eslint-disable-next-line jest/valid-expect
|
||||
expect(ContainerSampleGenerator.createSampleGeneratorAsync(explorerStub)).rejects.toMatch(experience);
|
||||
});
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import { GremlinClient } from "../Graph/GraphExplorerComponent/GremlinClient";
|
||||
import { useDatabases } from "../useDatabases";
|
||||
|
||||
interface SampleDataFile extends DataModels.CreateCollectionParams {
|
||||
//eslint-disable-next-line
|
||||
data: any[];
|
||||
}
|
||||
|
||||
@@ -23,6 +24,7 @@ export class ContainerSampleGenerator {
|
||||
*/
|
||||
public static async createSampleGeneratorAsync(container: Explorer): Promise<ContainerSampleGenerator> {
|
||||
const generator = new ContainerSampleGenerator(container);
|
||||
//eslint-disable-next-line
|
||||
let dataFileContent: any;
|
||||
if (userContext.apiType === "Gremlin") {
|
||||
dataFileContent = await import(
|
||||
@@ -72,7 +74,7 @@ export class ContainerSampleGenerator {
|
||||
if (!collection) {
|
||||
throw new Error("No container to populate");
|
||||
}
|
||||
const promises: Q.Promise<any>[] = [];
|
||||
// const promises: Q.Promise<any>[] = [];
|
||||
|
||||
if (userContext.apiType === "Gremlin") {
|
||||
// For Gremlin, all queries are executed sequentially, because some queries might be dependent on other queries
|
||||
@@ -113,7 +115,7 @@ export class ContainerSampleGenerator {
|
||||
* public for unit testing
|
||||
* @param data
|
||||
*/
|
||||
public setData(data: SampleDataFile) {
|
||||
public setData(data: SampleDataFile): void {
|
||||
this.sampleDataFile = data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ describe("DataSampleUtils", () => {
|
||||
const explorer = {} as Explorer;
|
||||
useDatabases.getState().addDatabases([database]);
|
||||
const dataSamplesUtil = new DataSamplesUtil(explorer);
|
||||
//eslint-disable-next-line
|
||||
|
||||
const fakeGenerator = sinon.createStubInstance<ContainerSampleGenerator>(ContainerSampleGenerator as any);
|
||||
fakeGenerator.getCollectionId.returns(sampleCollectionId);
|
||||
fakeGenerator.getDatabaseId.returns(sampleDatabaseId);
|
||||
|
||||
@@ -18,7 +18,6 @@ export interface GremlinSimpleClientParameters {
|
||||
|
||||
export interface Result {
|
||||
requestId: string; // Can be null
|
||||
//eslint-disable-next-line
|
||||
data: any;
|
||||
requestCharge: number; // RU cost
|
||||
}
|
||||
@@ -31,7 +30,6 @@ export interface GremlinRequestMessage {
|
||||
args:
|
||||
| {
|
||||
gremlin: string;
|
||||
//eslint-disable-next-line
|
||||
bindings: {};
|
||||
language: string;
|
||||
}
|
||||
@@ -56,7 +54,6 @@ export interface GremlinResponseMessage {
|
||||
message: string;
|
||||
};
|
||||
result: {
|
||||
//eslint-disable-next-line
|
||||
data: any;
|
||||
};
|
||||
}
|
||||
@@ -77,7 +74,7 @@ export class GremlinSimpleClient {
|
||||
this.requestsToSend = {};
|
||||
}
|
||||
|
||||
public connect(): void {
|
||||
public connect() {
|
||||
if (this.ws) {
|
||||
if (this.ws.readyState === WebSocket.CONNECTING) {
|
||||
// Wait until it connects to execute all requests
|
||||
@@ -109,10 +106,9 @@ export class GremlinSimpleClient {
|
||||
return new WebSocket(endpoint);
|
||||
}
|
||||
|
||||
public close(): void {
|
||||
public close() {
|
||||
if (this.ws && this.ws.readyState !== WebSocket.CLOSING && this.ws.readyState !== WebSocket.CLOSED) {
|
||||
const msg = `Disconnecting from ${this.params.endpoint} as ${this.params.user}`;
|
||||
//eslint-disable-next-line
|
||||
console.log(msg);
|
||||
if (this.params.infoCallback) {
|
||||
this.params.infoCallback(msg);
|
||||
@@ -147,7 +143,7 @@ export class GremlinSimpleClient {
|
||||
}
|
||||
}
|
||||
|
||||
public onMessage(msg: MessageEvent): void {
|
||||
public onMessage(msg: MessageEvent) {
|
||||
if (!msg) {
|
||||
if (this.params.failureCallback) {
|
||||
this.params.failureCallback(null, "onMessage called with no message");
|
||||
@@ -198,10 +194,8 @@ export class GremlinSimpleClient {
|
||||
}
|
||||
break;
|
||||
case 407: // Request authentication
|
||||
{
|
||||
const challengeResponse = this.buildChallengeResponse(this.pendingRequests[requestId]);
|
||||
this.sendGremlinMessage(challengeResponse);
|
||||
}
|
||||
const challengeResponse = this.buildChallengeResponse(this.pendingRequests[requestId]);
|
||||
this.sendGremlinMessage(challengeResponse);
|
||||
break;
|
||||
case 401: // Unauthorized
|
||||
delete this.pendingRequests[requestId];
|
||||
@@ -273,7 +267,7 @@ export class GremlinSimpleClient {
|
||||
}
|
||||
|
||||
public buildChallengeResponse(request: GremlinRequestMessage): GremlinRequestMessage {
|
||||
const args = {
|
||||
var args = {
|
||||
SASL: GremlinSimpleClient.utf8ToB64("\0" + this.params.user + "\0" + this.params.password),
|
||||
};
|
||||
return {
|
||||
@@ -284,9 +278,9 @@ export class GremlinSimpleClient {
|
||||
};
|
||||
}
|
||||
|
||||
public static utf8ToB64(utf8Str: string): string {
|
||||
public static utf8ToB64(utf8Str: string) {
|
||||
return btoa(
|
||||
encodeURIComponent(utf8Str).replace(/%([0-9A-F]{2})/g, (match, p1) => {
|
||||
encodeURIComponent(utf8Str).replace(/%([0-9A-F]{2})/g, function (match, p1) {
|
||||
return String.fromCharCode(parseInt(p1, 16));
|
||||
})
|
||||
);
|
||||
@@ -297,13 +291,12 @@ export class GremlinSimpleClient {
|
||||
* mimeLength + mimeType + serialized message
|
||||
* @param requestMessage
|
||||
*/
|
||||
//eslint-disable-next-line
|
||||
public static buildGremlinMessage(requestMessage: {}): Uint8Array {
|
||||
const mimeType = "application/json";
|
||||
const serializedMessage = mimeType + JSON.stringify(requestMessage);
|
||||
let serializedMessage = mimeType + JSON.stringify(requestMessage);
|
||||
const encodedMessage = new TextEncoder().encode(serializedMessage);
|
||||
|
||||
const binaryMessage = new Uint8Array(1 + encodedMessage.length);
|
||||
let binaryMessage = new Uint8Array(1 + encodedMessage.length);
|
||||
binaryMessage[0] = mimeType.length;
|
||||
|
||||
for (let i = 0; i < encodedMessage.length; i++) {
|
||||
@@ -312,19 +305,19 @@ export class GremlinSimpleClient {
|
||||
return binaryMessage;
|
||||
}
|
||||
|
||||
private onOpen() {
|
||||
private onOpen(event: any) {
|
||||
this.executeRequestsToSend();
|
||||
}
|
||||
|
||||
private executeRequestsToSend() {
|
||||
for (const requestId in this.requestsToSend) {
|
||||
for (let requestId in this.requestsToSend) {
|
||||
const request = this.requestsToSend[requestId];
|
||||
this.sendGremlinMessage(request);
|
||||
this.pendingRequests[request.requestId] = request;
|
||||
delete this.requestsToSend[request.requestId];
|
||||
}
|
||||
}
|
||||
//eslint-disable-next-line
|
||||
|
||||
private onError(err: any) {
|
||||
if (this.params.failureCallback) {
|
||||
this.params.failureCallback(null, err);
|
||||
@@ -346,9 +339,9 @@ export class GremlinSimpleClient {
|
||||
* RFC4122 version 4 compliant UUID
|
||||
*/
|
||||
private static uuidv4() {
|
||||
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
||||
const r = (Math.random() * 16) | 0,
|
||||
v = c === "x" ? r : (r & 0x3) | 0x8;
|
||||
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
|
||||
var r = (Math.random() * 16) | 0,
|
||||
v = c == "x" ? r : (r & 0x3) | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ export const coreReducer = (state: CoreRecord, action: Action) => {
|
||||
.setIn(path.concat("language"), kernelspecs.language);
|
||||
}
|
||||
default:
|
||||
//eslint-disable-next-line
|
||||
return nteractReducers.core(state as any, action as any);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -228,12 +228,11 @@ export class NotebookContentClient {
|
||||
|
||||
public async readFileContent(filePath: string): Promise<string> {
|
||||
const xhr = await this.contentProvider.get(this.getServerConfig(), filePath, { content: 1 }).toPromise();
|
||||
//eslint-disable-next-line
|
||||
const content = (xhr.response as any).content;
|
||||
if (!content) {
|
||||
throw new Error("No content read");
|
||||
}
|
||||
//eslint-disable-next-line
|
||||
|
||||
const format = (xhr.response as any).format;
|
||||
switch (format) {
|
||||
case "text":
|
||||
|
||||
Reference in New Issue
Block a user