mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-02-16 17:25:58 +00:00
fixed eslint GraphUtil and removed files from eslintignore (#482)
This commit is contained in:
parent
7eb2817acc
commit
588c1d3ec3
@ -11,8 +11,6 @@ src/Common/CosmosClient.test.ts
|
|||||||
src/Common/CosmosClient.ts
|
src/Common/CosmosClient.ts
|
||||||
src/Common/DataAccessUtilityBase.test.ts
|
src/Common/DataAccessUtilityBase.test.ts
|
||||||
src/Common/DataAccessUtilityBase.ts
|
src/Common/DataAccessUtilityBase.ts
|
||||||
src/Common/DeleteFeedback.ts
|
|
||||||
src/Common/DocumentClientUtilityBase.ts
|
|
||||||
src/Common/EditableUtility.ts
|
src/Common/EditableUtility.ts
|
||||||
src/Common/HashMap.test.ts
|
src/Common/HashMap.test.ts
|
||||||
src/Common/HashMap.ts
|
src/Common/HashMap.ts
|
||||||
@ -55,8 +53,6 @@ src/Explorer/ComponentRegisterer.test.ts
|
|||||||
src/Explorer/ComponentRegisterer.ts
|
src/Explorer/ComponentRegisterer.ts
|
||||||
src/Explorer/ContextMenuButtonFactory.ts
|
src/Explorer/ContextMenuButtonFactory.ts
|
||||||
src/Explorer/Controls/CollapsiblePanel/CollapsiblePanelComponent.ts
|
src/Explorer/Controls/CollapsiblePanel/CollapsiblePanelComponent.ts
|
||||||
src/Explorer/Controls/CommandButton/CommandButton.test.ts
|
|
||||||
src/Explorer/Controls/CommandButton/CommandButton.ts
|
|
||||||
src/Explorer/Controls/DiffEditor/DiffEditorComponent.ts
|
src/Explorer/Controls/DiffEditor/DiffEditorComponent.ts
|
||||||
src/Explorer/Controls/DynamicList/DynamicList.test.ts
|
src/Explorer/Controls/DynamicList/DynamicList.test.ts
|
||||||
src/Explorer/Controls/DynamicList/DynamicListComponent.ts
|
src/Explorer/Controls/DynamicList/DynamicListComponent.ts
|
||||||
@ -92,8 +88,6 @@ src/Explorer/Graph/GraphExplorerComponent/D3ForceGraph.ts
|
|||||||
src/Explorer/Graph/GraphExplorerComponent/EdgeInfoCache.ts
|
src/Explorer/Graph/GraphExplorerComponent/EdgeInfoCache.ts
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GraphData.test.ts
|
src/Explorer/Graph/GraphExplorerComponent/GraphData.test.ts
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GraphData.ts
|
src/Explorer/Graph/GraphExplorerComponent/GraphData.ts
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GraphUtil.test.ts
|
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GraphUtil.ts
|
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.test.ts
|
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.test.ts
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.ts
|
src/Explorer/Graph/GraphExplorerComponent/GremlinClient.ts
|
||||||
src/Explorer/Graph/GraphExplorerComponent/GremlinSimpleClient.test.ts
|
src/Explorer/Graph/GraphExplorerComponent/GremlinSimpleClient.test.ts
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { NeighborVertexBasicInfo, EditedEdges, GraphNewEdgeData, PossibleVertex } from "./GraphExplorer";
|
import { NeighborVertexBasicInfo, EditedEdges, GraphNewEdgeData, PossibleVertex } from "./GraphExplorer";
|
||||||
import { GraphUtil } from "./GraphUtil";
|
import * as GraphUtil from "./GraphUtil";
|
||||||
import * as InputTypeaheadComponent from "../../Controls/InputTypeahead/InputTypeaheadComponent";
|
import * as InputTypeaheadComponent from "../../Controls/InputTypeahead/InputTypeaheadComponent";
|
||||||
import DeleteIcon from "../../../../images/delete.svg";
|
import DeleteIcon from "../../../../images/delete.svg";
|
||||||
import AddPropertyIcon from "../../../../images/Add-property.svg";
|
import AddPropertyIcon from "../../../../images/Add-property.svg";
|
||||||
|
@ -9,7 +9,7 @@ import { GraphVizComponentProps } from "./GraphVizComponent";
|
|||||||
import * as GraphData from "./GraphData";
|
import * as GraphData from "./GraphData";
|
||||||
import { ConsoleDataType } from "../../Menus/NotificationConsole/NotificationConsoleComponent";
|
import { ConsoleDataType } from "../../Menus/NotificationConsole/NotificationConsoleComponent";
|
||||||
import * as NotificationConsoleUtils from "../../../Utils/NotificationConsoleUtils";
|
import * as NotificationConsoleUtils from "../../../Utils/NotificationConsoleUtils";
|
||||||
import { GraphUtil } from "./GraphUtil";
|
import * as GraphUtil from "./GraphUtil";
|
||||||
import * as DataModels from "../../../Contracts/DataModels";
|
import * as DataModels from "../../../Contracts/DataModels";
|
||||||
import * as ViewModels from "../../../Contracts/ViewModels";
|
import * as ViewModels from "../../../Contracts/ViewModels";
|
||||||
import * as GremlinClient from "./GremlinClient";
|
import * as GremlinClient from "./GremlinClient";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { GraphUtil } from "./GraphUtil";
|
import * as GraphUtil from "./GraphUtil";
|
||||||
import { GraphData, GremlinVertex, GremlinEdge } from "./GraphData";
|
import { GraphData, GremlinVertex, GremlinEdge } from "./GraphData";
|
||||||
import * as sinon from "sinon";
|
import * as sinon from "sinon";
|
||||||
import { GraphExplorer } from "./GraphExplorer";
|
import { GraphExplorer } from "./GraphExplorer";
|
||||||
@ -69,7 +69,7 @@ describe("Process Gremlin vertex", () => {
|
|||||||
describe("getLimitedArrayString()", () => {
|
describe("getLimitedArrayString()", () => {
|
||||||
const expectedEmptyResult = { result: "", consumedCount: 0 };
|
const expectedEmptyResult = { result: "", consumedCount: 0 };
|
||||||
it("should handle null array", () => {
|
it("should handle null array", () => {
|
||||||
expect(GraphUtil.getLimitedArrayString(null, 10)).toEqual(expectedEmptyResult);
|
expect(GraphUtil.getLimitedArrayString(undefined, 10)).toEqual(expectedEmptyResult);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should handle empty array", () => {
|
it("should handle empty array", () => {
|
||||||
|
@ -7,8 +7,13 @@ interface JoinArrayMaxCharOutput {
|
|||||||
consumedCount: number; // Number of items consumed
|
consumedCount: number; // Number of items consumed
|
||||||
}
|
}
|
||||||
|
|
||||||
export class GraphUtil {
|
interface EdgePropertyType {
|
||||||
public static getNeighborTitle(neighbor: NeighborVertexBasicInfo): string {
|
id: string;
|
||||||
|
outV?: string;
|
||||||
|
inV?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getNeighborTitle(neighbor: NeighborVertexBasicInfo): string {
|
||||||
return `edge id: ${neighbor.edgeId}, vertex id: ${neighbor.id}`;
|
return `edge id: ${neighbor.edgeId}, vertex id: ${neighbor.id}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18,17 +23,17 @@ export class GraphUtil {
|
|||||||
* @param graphData
|
* @param graphData
|
||||||
* @param newNodes (optional) object describing new nodes encountered
|
* @param newNodes (optional) object describing new nodes encountered
|
||||||
*/
|
*/
|
||||||
public static createEdgesfromNode(
|
export function createEdgesfromNode(
|
||||||
vertex: GraphData.GremlinVertex,
|
vertex: GraphData.GremlinVertex,
|
||||||
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>,
|
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>,
|
||||||
newNodes?: { [id: string]: boolean }
|
newNodes?: { [id: string]: boolean }
|
||||||
): void {
|
): void {
|
||||||
if (vertex.hasOwnProperty("outE")) {
|
if (Object.prototype.hasOwnProperty.call(vertex, "outE")) {
|
||||||
let outE = vertex.outE;
|
const outE = vertex.outE;
|
||||||
for (var label in outE) {
|
for (const label in outE) {
|
||||||
$.each(outE[label], (index: number, edge: any) => {
|
$.each(outE[label], (index: number, edge: EdgePropertyType) => {
|
||||||
// We create our own edge. No need to fetch
|
// We create our own edge. No need to fetch
|
||||||
let e = {
|
const e = {
|
||||||
id: edge.id,
|
id: edge.id,
|
||||||
label: label,
|
label: label,
|
||||||
inV: edge.inV,
|
inV: edge.inV,
|
||||||
@ -42,12 +47,12 @@ export class GraphUtil {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (vertex.hasOwnProperty("inE")) {
|
if (Object.prototype.hasOwnProperty.call(vertex, "inE")) {
|
||||||
let inE = vertex.inE;
|
const inE = vertex.inE;
|
||||||
for (var label in inE) {
|
for (const label in inE) {
|
||||||
$.each(inE[label], (index: number, edge: any) => {
|
$.each(inE[label], (index: number, edge: EdgePropertyType) => {
|
||||||
// We create our own edge. No need to fetch
|
// We create our own edge. No need to fetch
|
||||||
let e = {
|
const e = {
|
||||||
id: edge.id,
|
id: edge.id,
|
||||||
label: label,
|
label: label,
|
||||||
inV: vertex.id,
|
inV: vertex.id,
|
||||||
@ -70,7 +75,7 @@ export class GraphUtil {
|
|||||||
* @param maxSize
|
* @param maxSize
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static getLimitedArrayString(array: string[], maxSize: number): JoinArrayMaxCharOutput {
|
export function getLimitedArrayString(array: string[], maxSize: number): JoinArrayMaxCharOutput {
|
||||||
if (!array || array.length === 0 || array[0].length + 2 > maxSize) {
|
if (!array || array.length === 0 || array[0].length + 2 > maxSize) {
|
||||||
return { result: "", consumedCount: 0 };
|
return { result: "", consumedCount: 0 };
|
||||||
}
|
}
|
||||||
@ -93,7 +98,7 @@ export class GraphUtil {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static createFetchEdgePairQuery(
|
export function createFetchEdgePairQuery(
|
||||||
outE: boolean,
|
outE: boolean,
|
||||||
pkid: string,
|
pkid: string,
|
||||||
excludedEdgeIds: string[],
|
excludedEdgeIds: string[],
|
||||||
@ -104,8 +109,8 @@ export class GraphUtil {
|
|||||||
let gremlinQuery: string;
|
let gremlinQuery: string;
|
||||||
if (excludedEdgeIds.length > 0) {
|
if (excludedEdgeIds.length > 0) {
|
||||||
// build a string up to max char
|
// build a string up to max char
|
||||||
const joined = GraphUtil.getLimitedArrayString(excludedEdgeIds, withoutStepArgMaxLenght);
|
const joined = getLimitedArrayString(excludedEdgeIds, withoutStepArgMaxLenght);
|
||||||
const hasWithoutStep = !!joined.result ? `.has(id, without(${joined.result}))` : "";
|
const hasWithoutStep = joined.result ? `.has(id, without(${joined.result}))` : "";
|
||||||
|
|
||||||
if (joined.consumedCount === excludedEdgeIds.length) {
|
if (joined.consumedCount === excludedEdgeIds.length) {
|
||||||
gremlinQuery = `g.V(${pkid}).${outE ? "outE" : "inE"}()${hasWithoutStep}.limit(${pageSize}).as('e').${
|
gremlinQuery = `g.V(${pkid}).${outE ? "outE" : "inE"}()${hasWithoutStep}.limit(${pageSize}).as('e').${
|
||||||
@ -128,7 +133,7 @@ export class GraphUtil {
|
|||||||
/**
|
/**
|
||||||
* Trim graph
|
* Trim graph
|
||||||
*/
|
*/
|
||||||
public static trimGraph(
|
export function trimGraph(
|
||||||
currentRoot: GraphData.GremlinVertex,
|
currentRoot: GraphData.GremlinVertex,
|
||||||
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>
|
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>
|
||||||
) {
|
) {
|
||||||
@ -141,14 +146,14 @@ export class GraphUtil {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static addRootChildToGraph(
|
export function addRootChildToGraph(
|
||||||
root: GraphData.GremlinVertex,
|
root: GraphData.GremlinVertex,
|
||||||
child: GraphData.GremlinVertex,
|
child: GraphData.GremlinVertex,
|
||||||
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>
|
graphData: GraphData.GraphData<GraphData.GremlinVertex, GraphData.GremlinEdge>
|
||||||
) {
|
) {
|
||||||
child._ancestorsId = (root._ancestorsId || []).concat([root.id]);
|
child._ancestorsId = (root._ancestorsId || []).concat([root.id]);
|
||||||
graphData.addVertex(child);
|
graphData.addVertex(child);
|
||||||
GraphUtil.createEdgesfromNode(child, graphData);
|
createEdgesfromNode(child, graphData);
|
||||||
graphData.addNeighborInfo(child);
|
graphData.addNeighborInfo(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -156,23 +161,23 @@ export class GraphUtil {
|
|||||||
* TODO Perform minimal substitution to prevent breaking gremlin query and allow \"" for now.
|
* TODO Perform minimal substitution to prevent breaking gremlin query and allow \"" for now.
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
public static escapeDoubleQuotes(value: string): string {
|
export function escapeDoubleQuotes(value: string): string {
|
||||||
return value == null ? value : value.replace(/"/g, '\\"');
|
return value === undefined ? value : value.replace(/"/g, '\\"');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Surround with double-quotes if val is a string.
|
* Surround with double-quotes if val is a string.
|
||||||
* @param val
|
* @param val
|
||||||
*/
|
*/
|
||||||
public static getQuotedPropValue(ip: ViewModels.InputPropertyValue): string {
|
export function getQuotedPropValue(ip: ViewModels.InputPropertyValue): string {
|
||||||
switch (ip.type) {
|
switch (ip.type) {
|
||||||
case "number":
|
case "number":
|
||||||
case "boolean":
|
case "boolean":
|
||||||
return `${ip.value}`;
|
return `${ip.value}`;
|
||||||
case "null":
|
case "null":
|
||||||
return null;
|
return undefined;
|
||||||
default:
|
default:
|
||||||
return `"${GraphUtil.escapeDoubleQuotes(ip.value as string)}"`;
|
return `"${escapeDoubleQuotes(ip.value as string)}"`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +185,6 @@ export class GraphUtil {
|
|||||||
* TODO Perform minimal substitution to prevent breaking gremlin query and allow \' for now.
|
* TODO Perform minimal substitution to prevent breaking gremlin query and allow \' for now.
|
||||||
* @param value
|
* @param value
|
||||||
*/
|
*/
|
||||||
public static escapeSingleQuotes(value: string): string {
|
export function escapeSingleQuotes(value: string): string {
|
||||||
return value == null ? value : value.replace(/'/g, "\\'");
|
return value === undefined ? value : value.replace(/'/g, "\\'");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import { GraphHighlightedNodeData, NeighborVertexBasicInfo } from "./GraphExplorer";
|
import { GraphHighlightedNodeData, NeighborVertexBasicInfo } from "./GraphExplorer";
|
||||||
import { GraphUtil } from "./GraphUtil";
|
import * as GraphUtil from "./GraphUtil";
|
||||||
import { AccessibleElement } from "../../Controls/AccessibleElement/AccessibleElement";
|
import { AccessibleElement } from "../../Controls/AccessibleElement/AccessibleElement";
|
||||||
|
|
||||||
export interface ReadOnlyNeighborsComponentProps {
|
export interface ReadOnlyNeighborsComponentProps {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user