diff --git a/packages/contract-console/package.json b/packages/contract-console/package.json index db6d032275784d9e2ff25e16e44d67be22119acf..8d34702f1bf37564f8465b43ce7bbe5a84f58a5f 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", @@ -24,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/src/client.ts b/packages/contract-console/src/client.ts new file mode 100644 index 0000000000000000000000000000000000000000..3c8950f1cd46d7c28e55d8826de6ccadaf90966f --- /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 0000000000000000000000000000000000000000..21e38b099e8d1258913420f05b384e35e2c23280 --- /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 2b3d493903a7cf1a0491340abb3d31d9451dddac..a8822289a2a91f7df4a4a3f8b61c4f2ca65a997c 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/tests/fixtures/contract/contract.json b/packages/contract-console/tests/fixtures/contract/contract.json new file mode 100644 index 0000000000000000000000000000000000000000..cb069393ef61930092e53abf325137b2055513de --- /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 0000000000000000000000000000000000000000..6601f782c3497ae953db86928e4e6e922da04a10 --- /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/mutation/default-save.js b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js new file mode 100644 index 0000000000000000000000000000000000000000..e307c3e96edc7a8c0e7bb685e4bc28ecf888e473 --- /dev/null +++ b/packages/contract-console/tests/fixtures/resolvers/mutation/default-save.js @@ -0,0 +1,10 @@ +/** + * @param {object} payload + * @param {object} condition + * @return {boolean} + */ +export default function defaultSave(payload, condition) { + + + return true; +} 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 0000000000000000000000000000000000000000..32c8211fc3f7c85a14c9e009ab65bd12712e0ed1 --- /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/resolvers/resolver.js b/packages/contract-console/tests/fixtures/resolvers/resolver.js new file mode 100644 index 0000000000000000000000000000000000000000..547fa7565ffdf294d16e4ae924c6bce10877c2ca --- /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 0933d312aa3fa3399b94004b6ca05e8aafd795c5..8db8327c22e4efd30eaec972bbc8327197a74f85 100644 --- a/packages/contract-console/tests/fixtures/server.js +++ b/packages/contract-console/tests/fixtures/server.js @@ -1,2 +1,21 @@ const serverIo = require('server-io-core') const jsonqlKoa = require('jsonql-koa') +const { join } = require('path') +const baseDir = join(__dirname, '..', '..') + +serverIo({ + port: 8000, + open: false, + webroot: [ + join(baseDir, 'node_modules'), + join(baseDir, 'public') + ], + middlewares: [ + jsonqlKoa({ + jsType: 'es', + resolverDir: 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 591c405d859f843946f11e38cf092ce3a402bcac..03ee09d318574ebc1369250c9ebb05c83c25146b 100644 --- a/packages/contract-console/vue.config.js +++ b/packages/contract-console/vue.config.js @@ -1,6 +1,12 @@ module.exports = { lintOnSave: false, devServer: { - open: true + 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 5d3ecdfdd34b0d9fe4aa30d07c50663580f13ad2..c29db7a38c31d083788ae1fba54535c0d7a775e5 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 0000000000000000000000000000000000000000..35779a7af47cc95769d00d1be322774e864018eb --- /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 ffc9da8202848fc1791ec21ff0aeb1d9c4e92fa7..df5f55a64f7323a821f79ecb89aa9827e8d3ab5b 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": [