From ed92afee49e34ebe56d78db82a642e898ab0ec9a Mon Sep 17 00:00:00 2001 From: Joelchu Date: Mon, 22 Jul 2019 16:55:35 +0800 Subject: [PATCH 1/4] add stock resolvers for developing the contract-console --- packages/contract-console/package.json | 4 +++- .../resolvers/mutation/default-save.js | 8 ++++++++ .../fixtures/resolvers/query/default-call.js | 10 ++++++++++ .../contract-console/tests/fixtures/server.js | 18 ++++++++++++++++++ packages/contract-console/vue.config.js | 3 ++- 5 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js create mode 100644 packages/contract-console/tests/fixtures/resolvers/query/default-call.js diff --git a/packages/contract-console/package.json b/packages/contract-console/package.json index db6d0322..d430e851 100644 --- a/packages/contract-console/package.json +++ b/packages/contract-console/package.json @@ -6,7 +6,9 @@ "serve": "vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint", - "test:unit": "vue-cli-service test:unit" + "test:unit": "vue-cli-service test:unit", + "be": "node ./tests/fixtures/server.js", + "dev": "npm run be & npm run serve" }, "dependencies": { "core-js": "^2.6.5", diff --git a/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js new file mode 100644 index 00000000..a292e64f --- /dev/null +++ b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js @@ -0,0 +1,8 @@ +/** + * @param {object} payload + * @param {object} condition + * @return {boolean} + */ +export default function defaultSave(payload, condition) { + +} diff --git a/packages/contract-console/tests/fixtures/resolvers/query/default-call.js b/packages/contract-console/tests/fixtures/resolvers/query/default-call.js new file mode 100644 index 00000000..32c8211f --- /dev/null +++ b/packages/contract-console/tests/fixtures/resolvers/query/default-call.js @@ -0,0 +1,10 @@ + +/** + * @param {number} id a phony id + * @return {object} an object with whatever + * + */ +export default function defaultCall(id) { + + return {id: id} +} diff --git a/packages/contract-console/tests/fixtures/server.js b/packages/contract-console/tests/fixtures/server.js index 0933d312..c38daa05 100644 --- a/packages/contract-console/tests/fixtures/server.js +++ b/packages/contract-console/tests/fixtures/server.js @@ -1,2 +1,20 @@ const serverIo = require('server-io-core') const jsonqlKoa = require('jsonql-koa') +const { join } = require('path') +const baseDir = join(__dirname, '..', '..') + +serverIo({ + port: 8000, + webroot: [ + join(baseDir, 'node_modules'), + join(baseDir, 'public') + ], + middlewares: [ + jsonqlKoa({ + jsType: 'es', + resolversDir: join(__dirname, 'resolvers'), + contractDir: join(__dirname, 'contract'), + keysDir: join(__dirname, 'keys') + }) + ] +}) diff --git a/packages/contract-console/vue.config.js b/packages/contract-console/vue.config.js index 591c405d..ada68006 100644 --- a/packages/contract-console/vue.config.js +++ b/packages/contract-console/vue.config.js @@ -2,5 +2,6 @@ module.exports = { lintOnSave: false, devServer: { open: true - } + }, + proxy: "http://localhost:8000" } -- Gitee From a89de6f3370865f3629528e4a90dec2a20b7dfd7 Mon Sep 17 00:00:00 2001 From: Joelchu Date: Mon, 22 Jul 2019 17:01:12 +0800 Subject: [PATCH 2/4] fadd return to the mutation for now --- .../tests/fixtures/resolvers/mutation/default-save.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js index a292e64f..e307c3e9 100644 --- a/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js +++ b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js @@ -5,4 +5,6 @@ */ export default function defaultSave(payload, condition) { + + return true; } -- Gitee From 9d2659bd5958a8fcc01c74a0df0977cd89c7bffc Mon Sep 17 00:00:00 2001 From: Joel Chu Date: Mon, 22 Jul 2019 20:32:14 +0800 Subject: [PATCH 3/4] fix the jsonql setup --- packages/contract-console/package.json | 3 + .../tests/fixtures/contract/contract.json | 55 +++++++++++++++++++ .../tests/fixtures/resolvers/import.js | 2 + .../tests/fixtures/resolvers/resolver.js | 7 +++ .../contract-console/tests/fixtures/server.js | 3 +- 5 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 packages/contract-console/tests/fixtures/contract/contract.json create mode 100644 packages/contract-console/tests/fixtures/resolvers/import.js create mode 100644 packages/contract-console/tests/fixtures/resolvers/resolver.js diff --git a/packages/contract-console/package.json b/packages/contract-console/package.json index d430e851..8d34702f 100644 --- a/packages/contract-console/package.json +++ b/packages/contract-console/package.json @@ -26,7 +26,10 @@ "@vue/cli-service": "^3.8.0", "@vue/test-utils": "1.0.0-beta.29", "chai": "^4.1.2", + "jsonql-client": "^1.2.1", + "jsonql-koa": "^1.3.2", "lint-staged": "^8.1.5", + "server-io-core": "^1.2.0-beta.2", "typescript": "^3.4.3", "vue-template-compiler": "^2.6.10" }, diff --git a/packages/contract-console/tests/fixtures/contract/contract.json b/packages/contract-console/tests/fixtures/contract/contract.json new file mode 100644 index 00000000..cb069393 --- /dev/null +++ b/packages/contract-console/tests/fixtures/contract/contract.json @@ -0,0 +1,55 @@ +{ + "query": { + "defaultCall": { + "file": "/home/joel/projects/open-source/jsonql/packages/contract-console/tests/fixtures/resolvers/query/default-call.js", + "description": false, + "params": [ + { + "type": [ + "number" + ], + "description": "a phony id", + "name": "id" + } + ], + "returns": [ + { + "type": [ + "object" + ], + "description": "an object with whatever" + } + ] + } + }, + "mutation": { + "defaultSave": { + "file": "/home/joel/projects/open-source/jsonql/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js", + "description": false, + "params": [ + { + "type": [ + "object" + ], + "name": "payload" + }, + { + "type": [ + "object" + ], + "name": "condition" + } + ], + "returns": [ + { + "type": [ + "boolean" + ] + } + ] + } + }, + "auth": {}, + "timestamp": 1563798679, + "sourceType": "module" +} diff --git a/packages/contract-console/tests/fixtures/resolvers/import.js b/packages/contract-console/tests/fixtures/resolvers/import.js new file mode 100644 index 00000000..6601f782 --- /dev/null +++ b/packages/contract-console/tests/fixtures/resolvers/import.js @@ -0,0 +1,2 @@ +require = require("esm")(module/*, options*/) +module.exports = require("./resolver.js") diff --git a/packages/contract-console/tests/fixtures/resolvers/resolver.js b/packages/contract-console/tests/fixtures/resolvers/resolver.js new file mode 100644 index 00000000..547fa756 --- /dev/null +++ b/packages/contract-console/tests/fixtures/resolvers/resolver.js @@ -0,0 +1,7 @@ +import querydefaultCall from './query/default-call.js' +import mutationdefaultSave from './mutation/default-save.js' + +export { + querydefaultCall, +mutationdefaultSave +} \ No newline at end of file diff --git a/packages/contract-console/tests/fixtures/server.js b/packages/contract-console/tests/fixtures/server.js index c38daa05..8db8327c 100644 --- a/packages/contract-console/tests/fixtures/server.js +++ b/packages/contract-console/tests/fixtures/server.js @@ -5,6 +5,7 @@ const baseDir = join(__dirname, '..', '..') serverIo({ port: 8000, + open: false, webroot: [ join(baseDir, 'node_modules'), join(baseDir, 'public') @@ -12,7 +13,7 @@ serverIo({ middlewares: [ jsonqlKoa({ jsType: 'es', - resolversDir: join(__dirname, 'resolvers'), + resolverDir: join(__dirname, 'resolvers'), contractDir: join(__dirname, 'contract'), keysDir: join(__dirname, 'keys') }) -- Gitee From 43476870774cfc5d739d42df2299b217a6a7dd2d Mon Sep 17 00:00:00 2001 From: Joel Chu Date: Mon, 22 Jul 2019 22:00:11 +0800 Subject: [PATCH 4/4] resolving the problem with Typescript --- packages/contract-console/src/client.ts | 9 +++++++++ packages/contract-console/src/jsonql-client.d.ts | 6 ++++++ packages/contract-console/src/store.ts | 3 +++ packages/contract-console/vue.config.js | 11 ++++++++--- packages/http-client/README.md | 4 ++++ packages/http-client/jsonql-client.d.ts | 5 +++++ packages/http-client/package.json | 7 ++++--- 7 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 packages/contract-console/src/client.ts create mode 100644 packages/contract-console/src/jsonql-client.d.ts create mode 100644 packages/http-client/jsonql-client.d.ts diff --git a/packages/contract-console/src/client.ts b/packages/contract-console/src/client.ts new file mode 100644 index 00000000..3c8950f1 --- /dev/null +++ b/packages/contract-console/src/client.ts @@ -0,0 +1,9 @@ +import jsonqlClient from 'jsonql-client' + +const createClient = async () => await jsonqlClient({ + hostname: 'http://localhost:8080', + keepContract: false, + showContractDesc: true +}) + +export default createClient diff --git a/packages/contract-console/src/jsonql-client.d.ts b/packages/contract-console/src/jsonql-client.d.ts new file mode 100644 index 00000000..21e38b09 --- /dev/null +++ b/packages/contract-console/src/jsonql-client.d.ts @@ -0,0 +1,6 @@ +// create our own type for jsonql-client + +declare module "jsonql-client" { + function jsonqlApi(config: any): any; + export = jsonqlApi; +} diff --git a/packages/contract-console/src/store.ts b/packages/contract-console/src/store.ts index 2b3d4939..a8822289 100644 --- a/packages/contract-console/src/store.ts +++ b/packages/contract-console/src/store.ts @@ -1,5 +1,8 @@ import Vue from 'vue'; import Vuex from 'vuex'; +import createClient from './client' + +const client = createClient() Vue.use(Vuex); diff --git a/packages/contract-console/vue.config.js b/packages/contract-console/vue.config.js index ada68006..03ee09d3 100644 --- a/packages/contract-console/vue.config.js +++ b/packages/contract-console/vue.config.js @@ -1,7 +1,12 @@ module.exports = { lintOnSave: false, devServer: { - open: true - }, - proxy: "http://localhost:8000" + open: true, + proxy: { + '^/jsonql': { + target: "http://localhost:8000", + ws: true + } + } + } } diff --git a/packages/http-client/README.md b/packages/http-client/README.md index 5d3ecdfd..c29db7a3 100755 --- a/packages/http-client/README.md +++ b/packages/http-client/README.md @@ -18,6 +18,10 @@ or ```sh $ yarn add jsonql-client ``` +--- + +V.1.2.2 - we have included a type definition for Typescript `jsonql-client/jsonql-client.d.ts` +If you need one (we will add this to `@types` in the future) ## Example diff --git a/packages/http-client/jsonql-client.d.ts b/packages/http-client/jsonql-client.d.ts new file mode 100644 index 00000000..35779a7a --- /dev/null +++ b/packages/http-client/jsonql-client.d.ts @@ -0,0 +1,5 @@ +// type definition for Typescript +declare module "jsonql-client" { + function jsonqlApi(config: any): any; + export = jsonqlApi; +} diff --git a/packages/http-client/package.json b/packages/http-client/package.json index ffc9da82..df5f55a6 100755 --- a/packages/http-client/package.json +++ b/packages/http-client/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-client", - "version": "1.2.1", + "version": "1.2.2", "description": "jsonql browser client using Fly.js", "main": "index.js", "module": "src/index.js", @@ -32,9 +32,10 @@ "js" ], "files": [ - "lib", + "dist", "src", - "index.js" + "index.js", + "jsonql-client.d.ts" ], "author": "to1source ", "contributors": [ -- Gitee