forked from cerc-io/laconic-console
Merge pull request #27 from cerc-io/dboreham/remove-lerna
Remove lerna and update dependencies to modern versions
This commit is contained in:
commit
0266e7614e
23
README.md
23
README.md
@ -4,8 +4,6 @@ Laconic Kubenet GraphQL server and console application.
|
|||||||
|
|
||||||
User interface for submitting and reading records registered on Laconic.
|
User interface for submitting and reading records registered on Laconic.
|
||||||
|
|
||||||
![Console](./docs/images/console.png)
|
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
* Clone the required repos:
|
* Clone the required repos:
|
||||||
@ -21,9 +19,14 @@ User interface for submitting and reading records registered on Laconic.
|
|||||||
```bash
|
```bash
|
||||||
./init.sh
|
./init.sh
|
||||||
```
|
```
|
||||||
|
* For auction functionality enabled, add this environment variable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
TEST_AUCTION_ENABLED=true ./init.sh
|
||||||
|
```
|
||||||
|
|
||||||
* Run the laconic-console app
|
* Run the laconic-console app
|
||||||
* In [laconic-console](https://github.com/cerc-io/laconic-console) repo, install dependencies
|
* From the root of this repo, run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn
|
yarn
|
||||||
@ -40,19 +43,15 @@ User interface for submitting and reading records registered on Laconic.
|
|||||||
|
|
||||||
This can be ignored as it is an error for installing optional dependency
|
This can be ignored as it is an error for installing optional dependency
|
||||||
|
|
||||||
* Change directory to [packages/console-app](https://github.com/cerc-io/laconic-console/tree/main/packages/console-app) and start the react app
|
* Start the app:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Change directory
|
|
||||||
cd packages/console-app/
|
|
||||||
|
|
||||||
# Start app
|
|
||||||
CONFIG_FILE=config-local.yml yarn start
|
CONFIG_FILE=config-local.yml yarn start
|
||||||
```
|
```
|
||||||
|
|
||||||
* Open console-app at <http://localhost:8080>
|
* Open console at <http://localhost:8080>
|
||||||
|
|
||||||
* To view records in the app, test suite in laconic-sdk can be run
|
* To view records in the console, the test suite in laconic-sdk can be run
|
||||||
|
|
||||||
* Clone the [laconic-sdk](https://github.com/cerc-io/laconic-sdk) repo:
|
* Clone the [laconic-sdk](https://github.com/cerc-io/laconic-sdk) repo:
|
||||||
|
|
||||||
@ -88,4 +87,4 @@ User interface for submitting and reading records registered on Laconic.
|
|||||||
|
|
||||||
*NOTE*: One test from [util.test.ts](https://github.com/cerc-io/laconic-sdk/blob/main/src/util.test.ts) fails as mentioned in the [PR](https://github.com/cerc-io/laconic-sdk/pull/5#issuecomment-1299572012)
|
*NOTE*: One test from [util.test.ts](https://github.com/cerc-io/laconic-sdk/blob/main/src/util.test.ts) fails as mentioned in the [PR](https://github.com/cerc-io/laconic-sdk/pull/5#issuecomment-1299572012)
|
||||||
|
|
||||||
* Open console-app at <http://localhost:8080> to view the records.
|
* Open console at <http://localhost:8080> to view the records.
|
||||||
|
@ -12,7 +12,6 @@ module.exports = {
|
|||||||
'import-graphql',
|
'import-graphql',
|
||||||
'inline-json-import',
|
'inline-json-import',
|
||||||
|
|
||||||
'@babel/plugin-proposal-class-properties',
|
'@babel/plugin-proposal-class-properties'
|
||||||
'@babel/plugin-proposal-export-default-from'
|
|
||||||
]
|
]
|
||||||
};
|
};
|
Binary file not shown.
Before Width: | Height: | Size: 820 KiB |
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "1.2.9",
|
|
||||||
"useWorkspaces": true,
|
|
||||||
"npmClient": "yarn"
|
|
||||||
}
|
|
124
package.json
124
package.json
@ -1,68 +1,90 @@
|
|||||||
{
|
{
|
||||||
"name": "laconic-console",
|
"name": "@cerc-io/console-app",
|
||||||
"version": "1.2.9-alpha.0",
|
"version": "1.2.9",
|
||||||
"description": "Laconic Console",
|
"description": "Laconic Console",
|
||||||
"main": "index.js",
|
"repository": "https://github.com/cerc-io/laconic-console",
|
||||||
"private": true,
|
"main": "dist/es/index.js",
|
||||||
|
"files": [
|
||||||
|
"src/gql"
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "lerna run build",
|
"analyzer": "webpack --config webpack-analyzer.config.js",
|
||||||
"clean": "lerna run clean",
|
"build": "yarn dist",
|
||||||
"lint": "lerna run lint",
|
"build:babel": "babel ./src --out-dir ./dist/es --ignore \"**/*.test.js\" --source-maps inline",
|
||||||
"lint:fix": "lerna run lint -- --fix",
|
"clean": "rm -rf dist",
|
||||||
"lint:staged": "lint-staged",
|
"dist": "yarn clean && yarn build:babel && CONFIG_FILE=config-production.yml webpack",
|
||||||
"sort-package-json": "lerna exec npx sort-package-json",
|
"lint": "semistandard 'src/**/*.js'",
|
||||||
"test": "lerna run test"
|
"start": "CONFIG_FILE=${CONFIG_FILE:-config-testnet.yml} VERBOSE=true webpack-dev-server --mode development",
|
||||||
|
"test": "jest --rootDir ./src --passWithNoTests --no-cache"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "AGPLv3",
|
"license": "GPL-3.0",
|
||||||
"workspaces": {
|
|
||||||
"packages": [
|
|
||||||
"packages/*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"> 5%"
|
"> 2%"
|
||||||
],
|
],
|
||||||
"jest": {
|
"jest": {
|
||||||
"testEnvironment": "node"
|
"testEnvironment": "node"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lerna": "^3.19.0"
|
"@apollo/client": "^3.7.10",
|
||||||
|
"@apollo/react-components": "^4.0.0",
|
||||||
|
"@apollo/react-hooks": "^4.0.0",
|
||||||
|
"@babel/runtime": "^7.21.0",
|
||||||
|
"@cerc-io/laconic-sdk": "0.1.6",
|
||||||
|
"@lirewine/debug": "1.0.0-beta.78",
|
||||||
|
"@lirewine/gem-core": "1.0.0-beta.28",
|
||||||
|
"@lirewine/react-ux": "1.1.0-beta.0",
|
||||||
|
"@material-ui/core": "^4.12.4",
|
||||||
|
"@material-ui/icons": "^4.11.3",
|
||||||
|
"@material-ui/lab": "^4.0.0-alpha.61",
|
||||||
|
"@rehooks/component-size": "^1.0.3",
|
||||||
|
"@visx/network": "^1.0.0",
|
||||||
|
"@visx/tooltip": "^1.0.0",
|
||||||
|
"@visx/zoom": "^1.0.0",
|
||||||
|
"build-url": "^2.0.0",
|
||||||
|
"clsx": "^1.1.0",
|
||||||
|
"compare-versions": "^3.6.0",
|
||||||
|
"d3-force": "^2.1.1",
|
||||||
|
"debug": "^4.1.1",
|
||||||
|
"graphql-tag": "^2.10.3",
|
||||||
|
"lodash.defaultsdeep": "^4.6.1",
|
||||||
|
"lodash.get": "^4.4.2",
|
||||||
|
"moment": "^2.26.0",
|
||||||
|
"node-polyfill-webpack-plugin": "^2.0.1",
|
||||||
|
"react": "^16.12.0",
|
||||||
|
"react-dom": "^16.12.0",
|
||||||
|
"react-router": "^5.3.4",
|
||||||
|
"react-router-dom": "^5.3.4",
|
||||||
|
"source-map-support": "^0.5.12"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-eslint": "^10.0.3",
|
"@babel/cli": "7.21.0",
|
||||||
"eslint": "^6.7.2",
|
"@babel/core": "^7.21.0",
|
||||||
"eslint-config-semistandard": "^15.0.0",
|
"@babel/preset-env": "^7.20.2",
|
||||||
"eslint-config-standard": "^14.1.1",
|
"@babel/preset-react": "^7.18.6",
|
||||||
"eslint-loader": "^3.0.3",
|
"@webpack-cli/info": "^2.0.1",
|
||||||
"eslint-plugin-babel": "^5.3.0",
|
"babel-jest": "^29.5.0",
|
||||||
"eslint-plugin-import": "^2.18.2",
|
"babel-loader": "^9.1.2",
|
||||||
"eslint-plugin-jest": "^23.13.1",
|
"babel-plugin-import-graphql": "^2.7.0",
|
||||||
"eslint-plugin-jsdoc": "^21.0.0",
|
"babel-plugin-inline-import": "^3.0.0",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"babel-plugin-inline-json-import": "^0.3.2",
|
||||||
"eslint-plugin-standard": "^4.0.1",
|
"dotenv-webpack": "^8.0.1",
|
||||||
"lint-staged": "^9.5.0",
|
"graphql": "^15.0.0",
|
||||||
"webpack-cli": "^5.0.1"
|
"html-webpack-plugin": "^5.5.0",
|
||||||
|
"jest": "^29.5.0",
|
||||||
|
"webpack": "^5.76.2",
|
||||||
|
"webpack-bundle-analyzer": "^4.8.0",
|
||||||
|
"webpack-cli": "^5.0.1",
|
||||||
|
"webpack-dev-server": "^4.13.1",
|
||||||
|
"webpack-merge": "^5.8.0",
|
||||||
|
"webpack-version-file-plugin": "^0.5.0",
|
||||||
|
"yaml-loader": "^0.8.0"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"peerDependencies": {
|
||||||
"parser": "babel-eslint",
|
"react": "16.12.0",
|
||||||
"extends": [
|
"react-dom": "^16.12.0"
|
||||||
"plugin:jest/recommended",
|
|
||||||
"semistandard"
|
|
||||||
],
|
|
||||||
"plugins": [
|
|
||||||
"babel"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"babel/semi": 1
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"semistandard": {
|
"publishConfig": {
|
||||||
"parser": "babel-eslint",
|
"access": "public"
|
||||||
"env": [
|
|
||||||
"jest",
|
|
||||||
"node",
|
|
||||||
"browser"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
# Console
|
|
||||||
|
|
||||||
Apollo GraphQL client.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
First start the server:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd packages/console-server
|
|
||||||
yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
Then start the Webpack devserver.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd packages/console-app
|
|
||||||
yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
Then load the app: http://localhost:8080.
|
|
||||||
|
|
||||||
## Using a KUBE
|
|
||||||
|
|
||||||
To use your KUBE for testing, rather than running all the services locally, specify a different
|
|
||||||
config file when starting: `config-kube.yml`, which connects to `kube.local` for all services.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
cd packages/console-app
|
|
||||||
CONFIG_FILE=config-kube.yml yarn start
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deploy
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn build
|
|
||||||
```
|
|
||||||
|
|
||||||
This creates the following folders:
|
|
||||||
|
|
||||||
```
|
|
||||||
/dist
|
|
||||||
/es # Module imports.
|
|
||||||
/production # Production build.
|
|
||||||
```
|
|
||||||
|
|
||||||
NOTE: GQL and Production files and exported and may be used by the server.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
import SYSTEM_STATUS from '@cerc-io/console-app/src/gql/system_status.graphql';
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
const file = path.join(__dirname + '../../../../node_modules/@cerc-io/console-app/dist/production', 'index.html');
|
|
||||||
res.sendFile(file);
|
|
||||||
```
|
|
@ -1,134 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@cerc-io/console-app",
|
|
||||||
"version": "1.2.9",
|
|
||||||
"description": "Kubenet Console Client",
|
|
||||||
"repository": "https://github.com/cerc-io/laconic-console",
|
|
||||||
"main": "dist/es/index.js",
|
|
||||||
"files": [
|
|
||||||
"src/gql"
|
|
||||||
],
|
|
||||||
"scripts": {
|
|
||||||
"analyzer": "webpack --config webpack-analyzer.config.js",
|
|
||||||
"build": "yarn dist",
|
|
||||||
"build:babel": "babel ./src --out-dir ./dist/es --ignore \"**/*.test.js\" --source-maps inline",
|
|
||||||
"clean": "rm -rf dist",
|
|
||||||
"dist": "yarn clean && yarn build:babel && CONFIG_FILE=config-production.yml webpack",
|
|
||||||
"lint": "semistandard 'src/**/*.js'",
|
|
||||||
"start": "CONFIG_FILE=${CONFIG_FILE:-config-testnet.yml} VERBOSE=true webpack-dev-server --mode development",
|
|
||||||
"test": "jest --rootDir ./src --passWithNoTests --no-cache"
|
|
||||||
},
|
|
||||||
"author": "",
|
|
||||||
"license": "GPL-3.0",
|
|
||||||
"browserslist": [
|
|
||||||
"> 2%"
|
|
||||||
],
|
|
||||||
"jest": {
|
|
||||||
"testEnvironment": "node"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@apollo/react-components": "^3.1.5",
|
|
||||||
"@apollo/react-hooks": "^3.1.5",
|
|
||||||
"@babel/runtime": "^7.8.7",
|
|
||||||
"@cerc-io/laconic-sdk": "0.1.6",
|
|
||||||
"@lirewine/debug": "1.0.0-beta.78",
|
|
||||||
"@lirewine/gem-core": "1.0.0-beta.28",
|
|
||||||
"@lirewine/react-ux": "1.1.0-beta.0",
|
|
||||||
"@material-ui/core": "^4.10.0",
|
|
||||||
"@material-ui/icons": "^4.9.1",
|
|
||||||
"@material-ui/lab": "^4.0.0-alpha.54",
|
|
||||||
"@rehooks/component-size": "^1.0.3",
|
|
||||||
"@visx/network": "^1.0.0",
|
|
||||||
"@visx/tooltip": "^1.0.0",
|
|
||||||
"@visx/zoom": "^1.0.0",
|
|
||||||
"apollo-cache-inmemory": "^1.6.6",
|
|
||||||
"apollo-client": "^2.6.10",
|
|
||||||
"apollo-link": "^1.2.14",
|
|
||||||
"apollo-link-http": "^1.5.17",
|
|
||||||
"build-url": "^2.0.0",
|
|
||||||
"clsx": "^1.1.0",
|
|
||||||
"compare-versions": "^3.6.0",
|
|
||||||
"d3-force": "^2.1.1",
|
|
||||||
"debug": "^4.1.1",
|
|
||||||
"graphql-tag": "^2.10.3",
|
|
||||||
"lodash.defaultsdeep": "^4.6.1",
|
|
||||||
"lodash.get": "^4.4.2",
|
|
||||||
"moment": "^2.26.0",
|
|
||||||
"node-polyfill-webpack-plugin": "^2.0.1",
|
|
||||||
"react": "^17.0.2",
|
|
||||||
"react-dom": "^17.0.2",
|
|
||||||
"react-router": "^5.2.0",
|
|
||||||
"react-router-dom": "^5.2.0",
|
|
||||||
"source-map-support": "^0.5.12"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@babel/cli": "7.4.4",
|
|
||||||
"@babel/core": "^7.4.5",
|
|
||||||
"@babel/node": "^7.8.7",
|
|
||||||
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
||||||
"@babel/plugin-proposal-export-default-from": "^7.8.3",
|
|
||||||
"@babel/preset-env": "^7.4.5",
|
|
||||||
"@babel/preset-react": "^7.0.0",
|
|
||||||
"@webpack-cli/info": "^2.0.1",
|
|
||||||
"@webpack-cli/init": "^1.1.3",
|
|
||||||
"babel-eslint": "^10.0.2",
|
|
||||||
"babel-jest": "^24.8.0",
|
|
||||||
"babel-loader": "^8.0.0",
|
|
||||||
"babel-plugin-add-module-exports": "^1.0.2",
|
|
||||||
"babel-plugin-import-graphql": "^2.7.0",
|
|
||||||
"babel-plugin-inline-import": "^3.0.0",
|
|
||||||
"babel-plugin-inline-json-import": "^0.3.2",
|
|
||||||
"dotenv-webpack": "^8.0.1",
|
|
||||||
"eslint": "^6.7.2",
|
|
||||||
"eslint-config-semistandard": "^15.0.0",
|
|
||||||
"eslint-config-standard": "^14.1.1",
|
|
||||||
"eslint-config-standard-jsx": "^8.1.0",
|
|
||||||
"eslint-loader": "^3.0.3",
|
|
||||||
"eslint-plugin-babel": "^5.3.0",
|
|
||||||
"eslint-plugin-import": "^2.18.2",
|
|
||||||
"eslint-plugin-jest": "^23.13.1",
|
|
||||||
"eslint-plugin-jsdoc": "^21.0.0",
|
|
||||||
"eslint-plugin-node": "^11.1.0",
|
|
||||||
"eslint-plugin-standard": "^4.0.1",
|
|
||||||
"graphql": "^15.0.0",
|
|
||||||
"html-webpack-plugin": "^5.5.0",
|
|
||||||
"jest": "^24.8.0",
|
|
||||||
"react-scripts": "^5.0.1",
|
|
||||||
"semistandard": "^14.2.0",
|
|
||||||
"webpack": "^5.76.2",
|
|
||||||
"webpack-bundle-analyzer": "^4.8.0",
|
|
||||||
"webpack-cli": "^5.0.1",
|
|
||||||
"webpack-dev-server": "^4.13.1",
|
|
||||||
"webpack-merge": "^5.8.0",
|
|
||||||
"webpack-version-file-plugin": "^0.5.0",
|
|
||||||
"yaml-loader": "^0.8.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "16.12.0",
|
|
||||||
"react-dom": "^16.12.0"
|
|
||||||
},
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"eslintConfig": {
|
|
||||||
"parser": "babel-eslint",
|
|
||||||
"extends": [
|
|
||||||
"plugin:jest/recommended",
|
|
||||||
"semistandard",
|
|
||||||
"standard-jsx"
|
|
||||||
],
|
|
||||||
"plugins": [
|
|
||||||
"babel"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"babel/semi": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"semistandard": {
|
|
||||||
"parser": "babel-eslint",
|
|
||||||
"env": [
|
|
||||||
"jest",
|
|
||||||
"node",
|
|
||||||
"browser"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,10 +2,7 @@
|
|||||||
// Copyright 2020 DXOS.org
|
// Copyright 2020 DXOS.org
|
||||||
//
|
//
|
||||||
|
|
||||||
import { ApolloClient } from 'apollo-client';
|
import { ApolloClient, InMemoryCache, ApolloLink, HttpLink } from '@apollo/client';
|
||||||
import { ApolloLink } from 'apollo-link';
|
|
||||||
import { createHttpLink } from 'apollo-link-http';
|
|
||||||
import { InMemoryCache } from 'apollo-cache-inmemory';
|
|
||||||
|
|
||||||
import { createResolvers } from './resolvers';
|
import { createResolvers } from './resolvers';
|
||||||
import { getServiceUrl } from './util/config';
|
import { getServiceUrl } from './util/config';
|
||||||
@ -28,7 +25,7 @@ export const graphqlApi = config => {
|
|||||||
*/
|
*/
|
||||||
export const clientFactory = config => {
|
export const clientFactory = config => {
|
||||||
// https://www.apollographql.com/docs/link/
|
// https://www.apollographql.com/docs/link/
|
||||||
const defaultLink = createHttpLink({
|
const defaultLink = new HttpLink({
|
||||||
uri: graphqlApi(config),
|
uri: graphqlApi(config),
|
||||||
|
|
||||||
// TODO(burdon): Authentication: send signed message to server (from client wallet).
|
// TODO(burdon): Authentication: send signed message to server (from client wallet).
|
||||||
@ -39,7 +36,7 @@ export const clientFactory = config => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const serviceLinks = {
|
const serviceLinks = {
|
||||||
signal: createHttpLink({
|
signal: new HttpLink({
|
||||||
uri: getServiceUrl(config, 'signal.api')
|
uri: getServiceUrl(config, 'signal.api')
|
||||||
})
|
})
|
||||||
};
|
};
|
@ -110,13 +110,6 @@ module.exports = {
|
|||||||
use: 'yaml-loader'
|
use: 'yaml-loader'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
'@material-ui/styles': path.resolve(__dirname, '..', '..', 'node_modules/@material-ui/styles'),
|
|
||||||
'react': path.resolve(__dirname, '..', '..', 'node_modules/react'),
|
|
||||||
'react-dom': path.resolve(__dirname, '..', '..', 'node_modules/react-dom')
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user