diff --git a/packages/contract-cli/package.json b/packages/contract-cli/package.json index f0a3946d5bb2576fb20894a08cf975763fe864ab..0f87579e8b455d107c96cfca7c64d69b900c88c6 100755 --- a/packages/contract-cli/package.json +++ b/packages/contract-cli/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-contract", - "version": "1.7.14", + "version": "1.7.15", "description": "JS API / command line tool to generate the contract.json for jsonql", "main": "index.js", "files": [ diff --git a/packages/contract-cli/src/ast/jsdoc.js b/packages/contract-cli/src/ast/jsdoc.js index 3c560aa9c4a66b394f34b182c81c953b555d858b..3e6beee43239315c96fb2db92b3e983192cb3892 100644 --- a/packages/contract-cli/src/ast/jsdoc.js +++ b/packages/contract-cli/src/ast/jsdoc.js @@ -18,6 +18,8 @@ const { keyBy, some, result, groupBy, size, indexOf } = require('lodash') const OBJECT_TYPE = 'object'; const LFT = 'array.<'; const RHT = '>'; +// smaller helper to output all the debug code in details +const detailOut = code => inspect(code, false, null) /** * normalize the type to the one we support therefore mini the risk of error @@ -155,8 +157,8 @@ const search = function(output, name = '') { }).map(res => { let resolverName = res.meta.code.value || res.meta.code.name debug(`----------------${resolverName}---------------------`) - debug('res.meta', inspect(res.meta, false, null)) - debug('res.params', inspect(res.params, false, null)) + debug('res.meta', detailOut(res.meta)) + debug('res.params', detailOut(res.params)) return { name: resolverName, description: res.description || false, @@ -178,8 +180,8 @@ const searchForParams = function(output) { const result = search(output) // debug('searchForParams', result) if (result.name && !result.params) { - debug(`params is no defined?`, result) - debug(output) + debug(`params is no defined?`, detailOut(result)) + debug(detailOut(output)) return search(output, result.name) } return result; @@ -194,12 +196,12 @@ const clearForOutput = function(result, name) { if (Array.isArray(result)) { const res = searchForParams(result) if (!res.params) { - debug(res) + debug(detailOut(res)) throw new Error(`Could not parse the jsdoc for ${name}!`) } return res; } else { - debug('jsdoc return result result', inspect(result, false, null)) + debug('jsdoc return result result', detailOut(result)) throw new JsonqlError(`${name} jsdoc parsing result is unexpected, did the programmer wrote comment correctly?`, result) } } diff --git a/packages/contract-cli/tests/fixtures/koa-resolvers/mutation/update-ms-service.js b/packages/contract-cli/tests/fixtures/koa-resolvers/mutation/update-ms-service.js index 62b1752475351de1e838f97b3dba1b76c0eb8b1e..244aae63ebe96b035bd507f908ec0626491faa0f 100644 --- a/packages/contract-cli/tests/fixtures/koa-resolvers/mutation/update-ms-service.js +++ b/packages/contract-cli/tests/fixtures/koa-resolvers/mutation/update-ms-service.js @@ -1,4 +1,5 @@ const debug = require('debug')('jsonql-koa:mutation:update-ms-service') + /** * this will be calling a microserivce setup using the nodeClient * @param {string} payload incoming @@ -6,8 +7,6 @@ const debug = require('debug')('jsonql-koa:mutation:update-ms-service') */ module.exports = async function updateMsService(payload) { const client = await updateMsService.client() - debug(client) - return client.query.subMsService(payload) } diff --git a/packages/koa/package.json b/packages/koa/package.json index e52215fa2e39c02be7671ea8be11869c7f50b98e..0499597adb890173dfa035a2075f088b45e17f1a 100644 --- a/packages/koa/package.json +++ b/packages/koa/package.json @@ -1,6 +1,6 @@ { "name": "jsonql-koa", - "version": "1.4.0", + "version": "1.3.9", "description": "jsonql Koa middleware", "main": "main.js", "module": "index.js", @@ -72,7 +72,7 @@ "esm": "^3.2.25", "fs-extra": "^8.1.0", "jsonql-constants": "^1.8.3", - "jsonql-contract": "^1.7.12", + "jsonql-contract": "^1.7.14", "jsonql-errors": "^1.1.3", "jsonql-jwt": "^1.3.2", "jsonql-node-client": "^1.1.9", diff --git a/packages/koa/src/contracts/contract-generator.js b/packages/koa/previous/contract-generator.js similarity index 100% rename from packages/koa/src/contracts/contract-generator.js rename to packages/koa/previous/contract-generator.js diff --git a/packages/koa/src/contracts/import.js b/packages/koa/previous/import.js similarity index 100% rename from packages/koa/src/contracts/import.js rename to packages/koa/previous/import.js diff --git a/packages/koa/src/contracts/helpers.js b/packages/koa/src/contracts/helpers.js index 48d9badd2d8fac085a88840975fbf1ce45d2815a..0b54066a451f1c853ae325a2f50004a48b4aa423 100644 --- a/packages/koa/src/contracts/helpers.js +++ b/packages/koa/src/contracts/helpers.js @@ -10,6 +10,7 @@ import { ctxErrorHandler } from '../utils' const debug = getDebug('contracts:helpers') + /** * remove the description field * @param {boolean} showDesc true to keep @@ -18,15 +19,16 @@ const debug = getDebug('contracts:helpers') */ export const removeDesc = (showDesc, contract) => { debug('showDesc', showDesc) + const keyword = 'description' if (showDesc) { return contract; } let c = contract; for (let type in c) { for (let fn in c[type]) { - if (isKeyInObject(c[type][fn], 'description')) { + if (isKeyInObject(c[type][fn], keyword)) { delete c[type][fn].description; - if (c[type][fn].returns && isKeyInObject(c[type][fn].returns, 'description')) { + if (c[type][fn].returns && isKeyInObject(c[type][fn].returns, keyword)) { delete c[type][fn].returns.description; } } @@ -36,10 +38,11 @@ export const removeDesc = (showDesc, contract) => { } /** - * get the contract data @TODO might require some sort of security here + * Get the contract data + * @TODO might require some sort of security here * @param {object} opts options * @param {object} ctx koa - * @return {undefined} + * @return {void} nothing to return */ export const handleContract = (opts, ctx, contract) => { // @1.3.2 add a filter here to exclude the description field diff --git a/packages/koa/src/contracts/process-contract.js b/packages/koa/src/contracts/process-contract.js index 80fd40b85c75db6c91182f0c7cd9524e9c1fcac4..076f1a6f9df361144b101b051a3b80303c22b06b 100644 --- a/packages/koa/src/contracts/process-contract.js +++ b/packages/koa/src/contracts/process-contract.js @@ -15,11 +15,12 @@ const getFromOpts = opts => { } /** + * processing the contract output from the generator api * @param {object} ctx koa context * @param {object} opts configuration * @return {object} promise to resolve the contract */ -export default async function processContract(ctx, opts) { +export default function processContract(ctx, opts) { // const { setter, getter } = ctx.state.jsonql; return getFromOpts(opts) .then(c => c || false) diff --git a/packages/koa/src/contracts/run.js b/packages/koa/src/contracts/run.js index 378f8ab3da6043fc3a3bd72fb3a9d4f20dee70d3..ea097a02b2436bfd9610dc2f1a5b20aa8cddb594 100644 --- a/packages/koa/src/contracts/run.js +++ b/packages/koa/src/contracts/run.js @@ -1,6 +1,6 @@ // /lib/contract-generator/run.js // @BUG throw error when we call this using ES6 -const { contractGenerator, readContract } = require('./import') +const { contractGenerator, readContract } = require('jsonql-contract/extra') // listening process.on('message', m => { const { config, pub } = m; diff --git a/packages/koa/tests/contract.test.js b/packages/koa/tests/contract.test.js index 5aa4beb14bccea1fee40ded4d470c10aacd09997..277b0c8d288c8890e564c6dbb6672fa7c69ff97e 100644 --- a/packages/koa/tests/contract.test.js +++ b/packages/koa/tests/contract.test.js @@ -2,14 +2,17 @@ const test = require('ava') const { join } = require('path') const fsx = require('fs-extra') -const { contractGenerator } = require('../src/contracts/contract-generator') +// it was import from the src but now moved to the module @ 1.3.9 +const { contractGenerator } = require('jsonql-contract/extra') const { isContract } = require('jsonql-utils') + const debug = require('debug')('jsonql-koa:test:gen') -const contractDir = join(__dirname, 'fixtures', 'tmp', 'generator') -const resolverDir = join(__dirname, 'fixtures', 'resolvers') -test.before(t => { - t.context.initContract = contractGenerator({ +const resolverDir = join(__dirname, 'fixtures', 'resolvers') +const contractDir = join(__dirname, 'fixtures', 'tmp', 'generator') +// start test +test.before(async t => { + t.context.initContract = await contractGenerator({ contractDir, resolverDir, returnAs: 'json'