0.0.176 • Published 2 years ago

graphxr-api v0.0.176

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
2 years ago

graphxr-api

npm version

graphxr-api is a module which provides an API to GraphXR internals

Documentation

Documentation is hosted on GitHub

Usage

// Latest
GraphXR = (await require('graphxr-api')).init()

// Target a version
GraphXR = (await require('graphxr-api@0.0.3')).init()

// Get nodes
GraphXR.getNodes()

Minimum Version Requirements

If a version of the API depends on a version of GraphXR which has not been released, please increase the minimum required version in src/minimumRequirements.ts. For example:

export const MINIMUM_GRAPHXR_VERSION = "2.11.0";

On init, the API will ask GraphXR for its version by fetching /api/install/version. If the version is greater than the minimum version, the API will throw an exception.

If GraphXR cannot be detected, init will log a warning to the console.

If the minimum requirements are met, init will return the API.

Build

yarn build

Testing

Unit (src/__tests__/)

These are fast and mock GraphXR internals.

Run once: yarn test

Run on save: yarn test:watch

Integration (cypress/)

The integration tests are slower and run the API against a local GraphXR instance.

First create file .env in the root folder (web/api/.env) with contents.

# Points at a GraphXR instance
CYPRESS_baseUrl=https://localhost:3000

# A GraphXR user's username
CYPRESS_ADMIN_EMAIL=cypress@kineviz.com

# A GraphXR user's password
CYPRESS_ADMIN_PASSWORD=4SuG2GvbZs2K4fN

Run once: yarn test:integration

Coverage

Running the tests will result in a text report:

-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------------|---------|----------|---------|---------|-------------------
All files          |     100 |      100 |     100 |     100 |
 addNodes.ts       |     100 |      100 |     100 |     100 |
 clearGraph.ts     |     100 |      100 |     100 |     100 |
 getNodes.ts       |     100 |      100 |     100 |     100 |
 getScene.ts       |     100 |      100 |     100 |     100 |
 index.ts          |     100 |      100 |     100 |     100 |
 makeNode.ts       |     100 |      100 |     100 |     100 |
 removeNodeById.ts |     100 |      100 |     100 |     100 |
 setRuntime.ts     |     100 |      100 |     100 |     100 |
-------------------|---------|----------|---------|---------|-------------------

This project enforces 100% coverage across the board.

A more detailed report is located at coverage/lcov-report/index.html.

Documentation

yarn build:docs will run tsdoc and generate html at docs/index.html

Contributing

This project enforces code linting and styling rules via pre-commit hooks.

How to add a function

  1. Create a new file for the function e.g. src/myFunction.ts
  2. Write a unit test e.g. src/__tests__/myFunction.spec.ts
  3. Write an integration test e.g. cypress/integration/graphxr-api.spec.ts
  4. Run unit tests: yarn test
  5. Start a GraphXR instance and run integration tests: yarn test:integration
  6. Commit your change
  7. [optional] Publish a new version to NPM

How to edit existing code.

  1. Make changes to one or more files
  2. Update unit and integration tests appropriately
  3. Run unit and integration tests

Publishing to NPM

This process will do the following

  • ensure you are logged into npm
  • ensure working directory is clean
  • run tests
  • build the API bundle
  • build the documentation
  • bump the package.json version
  • commit the bundle, docs, and package.json
  • tag the commit with the new version
  • push the commits
  • push the tag
  • publish the package to npm

In a terminal:

  1. yarn login
  2. yarn release

Most of the time you will run yarn release

Optional arguments to yarn release

  • --no-verify Optional. Skips the tests
  • --no-publish-docs Optional. Skips building and publishing docs
  • -v, --version <version> Optional. Release type: v1.0.34 | patch | minor | major
  • -m, --tag-message <message> Optional. Tag message.
0.0.159

2 years ago

0.0.158

2 years ago

0.0.153

2 years ago

0.0.152

2 years ago

0.0.151

2 years ago

0.0.150

2 years ago

0.0.157

2 years ago

0.0.156

2 years ago

0.0.155

2 years ago

0.0.154

2 years ago

0.0.169

2 years ago

0.0.164

2 years ago

0.0.163

2 years ago

0.0.162

2 years ago

0.0.161

2 years ago

0.0.168

2 years ago

0.0.167

2 years ago

0.0.166

2 years ago

0.0.165

2 years ago

0.0.160

2 years ago

0.0.175

2 years ago

0.0.174

2 years ago

0.0.173

2 years ago

0.0.172

2 years ago

0.0.176

2 years ago

0.0.171

2 years ago

0.0.170

2 years ago

0.0.139

2 years ago

0.0.138

2 years ago

0.0.137

2 years ago

0.0.136

2 years ago

0.0.135

2 years ago

0.0.134

2 years ago

0.0.133

2 years ago

0.0.149

2 years ago

0.0.148

2 years ago

0.0.147

2 years ago

0.0.142

2 years ago

0.0.141

2 years ago

0.0.140

2 years ago

0.0.146

2 years ago

0.0.145

2 years ago

0.0.144

2 years ago

0.0.143

2 years ago

0.0.128

2 years ago

0.0.127

2 years ago

0.0.131

2 years ago

0.0.130

2 years ago

0.0.132

2 years ago

0.0.124

2 years ago

0.0.106

3 years ago

0.0.105

3 years ago

0.0.109

3 years ago

0.0.108

3 years ago

0.0.107

3 years ago

0.0.114

3 years ago

0.0.113

3 years ago

0.0.112

3 years ago

0.0.111

3 years ago

0.0.110

3 years ago

0.0.104

3 years ago

0.0.103

3 years ago

0.0.102

3 years ago

0.0.101

3 years ago

0.0.100

3 years ago

0.0.95

3 years ago

0.0.96

3 years ago

0.0.97

3 years ago

0.0.98

3 years ago

0.0.99

3 years ago

0.0.94

3 years ago

0.0.89

3 years ago

0.0.90

3 years ago

0.0.91

3 years ago

0.0.92

3 years ago

0.0.93

3 years ago

0.0.84

3 years ago

0.0.85

3 years ago

0.0.86

3 years ago

0.0.87

3 years ago

0.0.88

3 years ago

0.0.80

3 years ago

0.0.81

3 years ago

0.0.82

3 years ago

0.0.83

3 years ago

0.0.78

3 years ago

0.0.79

3 years ago

0.0.73

3 years ago

0.0.74

3 years ago

0.0.75

3 years ago

0.0.76

3 years ago

0.0.77

3 years ago

0.0.71

3 years ago

0.0.72

3 years ago

0.0.70

3 years ago

0.0.69

3 years ago

0.0.64

3 years ago

0.0.65

3 years ago

0.0.66

3 years ago

0.0.67

3 years ago

0.0.68

3 years ago

0.0.62

3 years ago

0.0.63

3 years ago

0.0.60

3 years ago

0.0.61

3 years ago

0.0.59

3 years ago

0.0.58

3 years ago

0.0.54

3 years ago

0.0.55

3 years ago

0.0.56

3 years ago

0.0.57

3 years ago

0.0.51

3 years ago

0.0.52

3 years ago

0.0.53

3 years ago

0.0.50

3 years ago

0.0.48

3 years ago

0.0.49

3 years ago

0.0.47

3 years ago

0.0.43

3 years ago

0.0.44

3 years ago

0.0.45

3 years ago

0.0.46

3 years ago

0.0.42

3 years ago

0.0.40

3 years ago

0.0.41

3 years ago

0.0.39

3 years ago

0.0.37

3 years ago

0.0.38

3 years ago

0.0.36

3 years ago

0.0.34

3 years ago

0.0.35

3 years ago

0.0.30

3 years ago

0.0.31

3 years ago

0.0.32

3 years ago

0.0.33

3 years ago

0.0.26

3 years ago

0.0.27

3 years ago

0.0.28

3 years ago

0.0.29

3 years ago

0.0.25

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.20

3 years ago

0.0.21

3 years ago

0.0.22

3 years ago

0.0.16

3 years ago

0.0.17

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.15

3 years ago

0.0.12

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.5

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago