axway-flow-sdk
Advanced tools
Comparing version 1.1.1 to 1.2.4
#! /usr/bin/env node | ||
const newNode = require('../dist/new-node'); | ||
const newNode = require('../src/new-node'); | ||
const nomnom = require('nomnom'); | ||
@@ -5,0 +5,0 @@ |
@@ -7,3 +7,5 @@ 'use strict'; | ||
/* eslint max-len: 0 */ | ||
var _require = require('axway-flow-schema'), | ||
flowschema = _require.v2; | ||
var fs = require('fs'); | ||
@@ -24,2 +26,3 @@ var Ajv = require('ajv'); | ||
/** | ||
* @param {object} srcModule - a node module | ||
* @private | ||
@@ -62,2 +65,3 @@ */ | ||
* @private | ||
* @return {NodeBuilder} The current object (this). | ||
*/ | ||
@@ -77,4 +81,4 @@ | ||
* operations: | ||
* - {@link module:axway-node-sdk~NodeBuilder#method .method(key, [options])} | ||
* - {@link module:axway-node-sdk~NodeBuilder#output .output(key, [options])} | ||
* - {@link module:axway-flow-sdk~NodeBuilder#method .method(key, [options])} | ||
* - {@link module:axway-flow-sdk~NodeBuilder#output .output(key, [options])} | ||
* | ||
@@ -87,7 +91,7 @@ * The `key` parameter is used to uniquely identify the spec and represents a distinct | ||
* The `icon` option can be bmp, jpeg, png, gif, tiff, or svg file. After, | ||
* {@link module:axway-node-sdk~NodeBuilder#method .method} | ||
* {@link module:axway-flow-sdk~NodeBuilder#method .method} | ||
* can be used to add method(s), and | ||
* {@link module:axway-node-sdk~NodeBuilder#output .output} can be used to | ||
* {@link module:axway-flow-sdk~NodeBuilder#output .output} can be used to | ||
* define an output. When done, | ||
* {@link module:axway-node-sdk~NodeBuilder#action .action} can be used to | ||
* {@link module:axway-flow-sdk~NodeBuilder#action .action} can be used to | ||
* define an action function and finish the spec. | ||
@@ -103,4 +107,3 @@ * | ||
* in the UI (defaults to "general"). | ||
* @return {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} The current | ||
* object (this). | ||
* @return {NodeBuilder} The current object (this). | ||
* @example | ||
@@ -134,2 +137,3 @@ * sdk.init(module).add('encodeURI', { icon: 'encode.svg' }); | ||
name: options.name || key, | ||
type: 'nodehandler://', // This is updated by API Builder on load | ||
description: options.description || this.description || null, | ||
@@ -178,6 +182,6 @@ icon: 'icon-GG-question-sign', | ||
* to accept the following method operations: | ||
* - {@link module:axway-node-sdk~NodeBuilder#parameter .parameter(name, schema, [required])} | ||
* - {@link module:axway-node-sdk~NodeBuilder#action .action(handler)} | ||
* - {@link module:axway-flow-sdk~NodeBuilder#parameter .parameter(name, schema, [required])} | ||
* - {@link module:axway-flow-sdk~NodeBuilder#action .action(handler)} | ||
* | ||
* {@link module:axway-node-sdk~NodeBuilder#add .add(key, [options])} must be | ||
* {@link module:axway-flow-sdk~NodeBuilder#add .add(key, [options])} must be | ||
* called prior to adding a method. | ||
@@ -191,6 +195,5 @@ * | ||
* @param {object=} options - Options for the method. | ||
* @param {string=} options.name - A friendly name for the method as it will appear in the UI. | ||
* @param {string=} - A friendly name for the method as it will appear in the UI. | ||
* @param {string=} options.description - A description for the method. | ||
* @return {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} The current | ||
* object (this). | ||
* @return {NodeBuilder} The current object (this). | ||
* @example | ||
@@ -238,3 +241,3 @@ * sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
* | ||
* {@link module:axway-node-sdk~NodeBuilder#method .method(key, [options])} must be | ||
* {@link module:axway-flow-sdk~NodeBuilder#method .method(key, [options])} must be | ||
* called prior to adding a parameter. | ||
@@ -251,4 +254,3 @@ * | ||
* @param {boolean} [required=true] - A flag to indicate the parameter is required or optional. | ||
* @return {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} The current | ||
* object (this). | ||
* @return {NodeBuilder} The current object (this). | ||
* @example | ||
@@ -277,3 +279,6 @@ * sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
} | ||
var ajv = new Ajv({ unknownFormats: ['multiline'] }); | ||
var ajv = new Ajv({ unknownFormats: 'ignore' }); | ||
ajv.addFormat('multiline', function () { | ||
return true; | ||
}); | ||
ajv.compile(schema); | ||
@@ -294,3 +299,3 @@ | ||
* | ||
* {@link module:axway-node-sdk~NodeBuilder#method .method(key, [options])} | ||
* {@link module:axway-flow-sdk~NodeBuilder#method .method(key, [options])} | ||
* must be called prior to adding an output. | ||
@@ -310,2 +315,3 @@ * | ||
* @param {string} key - A unique key for the output. | ||
* @param {object} options - output options | ||
* @param {string=} options.name - A friendly name for the output as it will appear in | ||
@@ -316,4 +322,3 @@ * the UI. | ||
* @param {object=} options.schema - The expected JSON schema for the output value. | ||
* @return {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} The current | ||
* object (this). | ||
* @return {NodeBuilder} The current object (this). | ||
* @example | ||
@@ -342,11 +347,9 @@ * sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
/** | ||
* Assigns an action {@link module:axway-node-sdk~handler `handler`} to | ||
* Assigns an action {@link module:axway-flow-sdk~handler `handler`} to | ||
* the current method. The method can only have one action handler. Assigning an action will | ||
* terminate the current method definition. | ||
* | ||
* @public | ||
* @param {handler} - The action {@link module:axway-node-sdk~handler `handler`} | ||
* @param {handler} handler - The action {@link module:axway-flow-sdk~handler `handler`} | ||
* function. | ||
* @return {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} The current | ||
* object (this). | ||
* @return {NodeBuilder} The current object (this). | ||
* @example | ||
@@ -397,6 +400,6 @@ * sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
* @callback handler | ||
* @param {Request} req - The {@link module:axway-node-sdk~Request `Request`} | ||
* @param {Request} req - The {@link module:axway-flow-sdk~Request `Request`} | ||
* object. | ||
* @param {flowCallback} cb - The output | ||
* {@link module:axway-node-sdk~flowCallback `callback`}. | ||
* {@link module:axway-flow-sdk~flowCallback `callback`}. | ||
*/ | ||
@@ -407,3 +410,3 @@ | ||
* A callback function that your method | ||
* {@link module:axway-node-sdk~handler `handler`} must invoke. | ||
* {@link module:axway-flow-sdk~handler `handler`} must invoke. | ||
* | ||
@@ -422,3 +425,3 @@ * @public | ||
* @property {object} params - The method params, as supplied during runtime | ||
* (see {@link module:axway-node-sdk~NodeBuilder#parameter .parameter}). | ||
* (see {@link module:axway-flow-sdk~NodeBuilder#parameter .parameter}). | ||
*/ | ||
@@ -431,4 +434,2 @@ | ||
// * @alias module:axway-node-sdk | ||
/** | ||
@@ -439,6 +440,6 @@ * Axway API Builder SDK for creating custom nodes to work with flows. | ||
* @return {NodeBuilder} A newly constructed | ||
* {@link module:axway-node-sdk~NodeBuilder `NodeBuilder`} object | ||
* {@link module:axway-flow-sdk~NodeBuilder `NodeBuilder`} object | ||
* @function | ||
* @example | ||
* const sdk = require('axway-node-sdk'); | ||
* const sdk = require('axway-flow-sdk'); | ||
* exports = module.exports = sdk.init(module); | ||
@@ -452,5 +453,51 @@ */ | ||
function validateSpec(spec) { | ||
var ajv = new Ajv({ unknownFormats: 'ignore' }); | ||
ajv.addSchema(flowschema); | ||
// Validate the spec | ||
var specValidate = ajv.getSchema('http://axway.com/schemas/flowschema.json#/node-handler-schema'); | ||
if (!specValidate(spec)) { | ||
var errMsg = specValidate.errors.map(function (err) { | ||
var dataPath = err.dataPath ? '$' + err.dataPath : 'node-handler-schema root'; | ||
return 'at schema ' + err.schemaPath + ', ' + dataPath + ' ' + err.message + ' (' + JSON.stringify(err.params) + ')'; | ||
}).join('. '); | ||
throw new Error(errMsg); | ||
} | ||
// Validate the methods action | ||
Object.keys(spec.methods).forEach(function (methodKey) { | ||
var method = spec.methods[methodKey]; | ||
if (!method || !method.action || typeof method.action !== 'function') { | ||
throw new Error('method ' + methodKey + ' expected action to be a function'); | ||
} | ||
if (method.action.length !== 2) { | ||
throw new Error('method ' + methodKey + ' expected action function to have signature: (req, callback)'); | ||
} | ||
}); | ||
} | ||
/** | ||
* Validates the flow-node specs against the Axway Flow schema. | ||
* @public | ||
* @param {NodeBuilder} nodes - nodes to validate | ||
* @example | ||
* const nodes = sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
* .method('encode', { name: 'Encode URI' }) | ||
* .parameter('uri', { type: 'string' }) | ||
* .output('encoded', { context: '$.encodedURI', schema: { type: 'string' } }) | ||
* .action((req, cb) => cb.encoded(null, encodeURI(req.params.uri)); | ||
* sdk.validate(nodes); | ||
* @throws {Error} If nodes contains invalid specs. | ||
*/ | ||
function validate(nodes) { | ||
Object.values(nodes.specs).forEach(function (spec) { | ||
validateSpec(spec); | ||
}); | ||
} | ||
exports = module.exports = { | ||
init: init, | ||
validate: validate, | ||
mocknode: mocknode | ||
}; |
@@ -6,4 +6,4 @@ "use strict"; | ||
function mockmethod(spec, name, ctx) { | ||
var methd = spec.methods[name]; | ||
if (!methd) { | ||
var method = spec.methods[name]; | ||
if (!method) { | ||
throw new Error("failed to find method: " + name); | ||
@@ -13,3 +13,3 @@ } | ||
var req = { params: {} }; | ||
Object.keys(methd.parameter.properties).forEach(function (param) { | ||
Object.keys(method.parameter.properties).forEach(function (param) { | ||
req.params[param] = ctx[param]; | ||
@@ -27,3 +27,3 @@ }); | ||
Object.keys(methd.outputs).forEach(function (output) { | ||
Object.keys(method.outputs).forEach(function (output) { | ||
cb[output] = function () { | ||
@@ -37,3 +37,3 @@ for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
}); | ||
methd.action(req, cb); | ||
method.action(req, cb); | ||
}); | ||
@@ -40,0 +40,0 @@ } |
@@ -28,5 +28,6 @@ 'use strict'; | ||
if (!dirStat.isDirectory()) { | ||
fs.closeSync(dfd); | ||
throw new Error('invalid directory: ' + dirStat); | ||
} | ||
/* eslint no-console: 0 */ | ||
fs.closeSync(dfd); | ||
console.log('writing: ' + dest); | ||
@@ -33,0 +34,0 @@ fs.writeFileSync(dest, data, 'utf8'); |
153
package.json
{ | ||
"name": "axway-flow-sdk", | ||
"version": "1.1.1", | ||
"author": { | ||
"email": "support@axway.com", | ||
"name": "Axway", | ||
"url": "https://axway.com" | ||
}, | ||
"description": "SDK for implementing custom flow nodes for API Builder flows", | ||
"main": "dist/index.js", | ||
"bin": { | ||
"axway-flow": "bin/axway-flow.js" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://git.ecd.axway.int/amplify/axway-flow-sdk" | ||
}, | ||
"files": [ | ||
"bin", | ||
"dist", | ||
"templates", | ||
"README.md", | ||
"LICENSE" | ||
], | ||
"dependencies": { | ||
"ajv": "^5.2.3", | ||
"dot": "^1.1.2", | ||
"nomnom": "^1.8.1", | ||
"validate-npm-package-name": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"axway-flow": "^2.0.0", | ||
"babel-cli": "^6.24.1", | ||
"babel-core": "^6.25.0", | ||
"babel-eslint": "^7.2.3", | ||
"babel-istanbul": "^0.12.2", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babel-preset-stage-2": "^6.24.1", | ||
"chai": "^3.5.0", | ||
"chai-as-promised": "^7.1.1", | ||
"cross-env": "^5.0.1", | ||
"dependency-check": "^2.9.1", | ||
"eslint": "4.3.0", | ||
"eslint-config-axway": "^2.0.3", | ||
"eslint-config-axway-base": "^2.0.0-0", | ||
"eslint-loader": "^1.9.0", | ||
"eslint-plugin-import": "^2.7.0", | ||
"eslint-plugin-jsx-a11y": "^5.1.1", | ||
"eslint-plugin-mocha": "^4.11.0", | ||
"eslint-plugin-react": "7.1.0", | ||
"istanbul": "^1.1.0-alpha.1", | ||
"jsdoc-to-markdown": "^3.0.0", | ||
"mocha": "^3.4.2", | ||
"node-readme": "^0.1.9", | ||
"nsp": "^2.7.0", | ||
"nyc": "^10.1.2", | ||
"retire": "^1.3.3", | ||
"rimraf": "^2.6.1", | ||
"simple-mock": "^0.8.0" | ||
}, | ||
"scripts": { | ||
"build": "npm run build:dev && npm run build:checkdeps && npm run security", | ||
"build:dist": "npm run build:readme && babel -d ./dist ./src", | ||
"build:dev": "npm run build:lint && npm run build:dist && npm run test", | ||
"build:checkdeps": "dependency-check --no-dev --unused package.json && dependency-check package.json", | ||
"build:lint": "eslint .", | ||
"build:readme": "node-readme && mv README.md README.hbs && jsdoc2md --template README.hbs src/index.js > README.md && rimraf README.hbs", | ||
"clean": "rimraf dist/* coverage/*", | ||
"release:major": "npm version major && npm run release:publish && git push --follow-tags", | ||
"release:minor": "npm version minor && npm run release:publish && git push --follow-tags", | ||
"release:patch": "npm version patch && npm run release:publish && git push --follow-tags", | ||
"release:prerelease": "npm version prerelease && npm run release:publish && git push --follow-tags", | ||
"release:publish": "git add -A && git push && git push --tags && npm publish", | ||
"release:npm": "curl -X GET http://registry.ecd.axway.int:8081/artifactory/local-npm/$npm_package_name/-/$npm_package_name-$npm_package_version.tgz 2>/dev/null > $npm_package_name-$npm_package_version.tgz && npm publish --registry https://registry.npmjs.org ./$npm_package_name-$npm_package_version.tgz && rm ./$npm_package_name-$npm_package_version.tgz", | ||
"test": "rimraf coverage && rimraf .nyc-output && cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text-summary node_modules/mocha/bin/mocha --require babel-register ./test --recursive -R spec", | ||
"test:watch": "rimraf coverage && rimraf .nyc-output && cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text-summary node_modules/mocha/bin/mocha --require babel-register ./test --recursive -R spec --watch", | ||
"posttest": "nyc check-coverage --lines 80 --branches 80 --functions 80", | ||
"security": "npm run security:retire && npm run security:nsp", | ||
"security:retire": "retire --exitwith 0 --package --outputformat json --outputpath scan-retire.json", | ||
"security:nsp": "nsp check --output json > scan-nsp.json" | ||
}, | ||
"license": "SEE LICENCE IN LICENCE" | ||
"name": "axway-flow-sdk", | ||
"version": "1.2.4", | ||
"description": "SDK for implementing custom flow nodes for API Builder flows", | ||
"homepage": "https://platform.axway.com", | ||
"author": { | ||
"name": "Axway", | ||
"email": "support@axway.com", | ||
"url": "https://axway.com" | ||
}, | ||
"license": "SEE LICENCE IN LICENSE", | ||
"keywords": [ | ||
"amplify", | ||
"api-builder", | ||
"flow", | ||
"sdk" | ||
], | ||
"engines": { | ||
"node": ">= 8.9" | ||
}, | ||
"main": "dist/index.js", | ||
"bin": { | ||
"axway-flow": "bin/axway-flow.js" | ||
}, | ||
"files": [ | ||
"bin", | ||
"dist", | ||
"templates", | ||
"README.md", | ||
"LICENSE" | ||
], | ||
"dependencies": { | ||
"ajv": "^5.3.0", | ||
"axway-flow-schema": "1.1.2", | ||
"dot": "^1.1.2", | ||
"nomnom": "^1.8.1", | ||
"validate-npm-package-name": "^3.0.0" | ||
}, | ||
"devDependencies": { | ||
"axway-flow": "2.2.4" | ||
}, | ||
"repository": { | ||
"type": "git", | ||
"url": "https://git.ecd.axway.int/amplify/api-builder" | ||
}, | ||
"nyc": { | ||
"reporter": [ | ||
"lcov", | ||
"text-summary" | ||
], | ||
"exclude": [ | ||
"dist/*.*" | ||
], | ||
"check-coverage": false, | ||
"lines": 80, | ||
"branches": 80, | ||
"functions": 80, | ||
"statements": 80 | ||
}, | ||
"scripts": { | ||
"build": "npm run clean && npm run build:dev && npm run check:dependencies", | ||
"build:dev": "npm run build:lint && npm run build:dist && npm run test", | ||
"build:dist": "npm run build:readme && babel -d ./dist ./src", | ||
"build:lint": "eslint .", | ||
"build:readme": "node-readme && shx mv README.md README.hbs && jsdoc2md --template README.hbs src/index.js > README.md && shx rm -rf README.hbs", | ||
"clean": "shx rm -rf coverage", | ||
"test": "shx rm -rf coverage .nyc_output && cross-env NODE_ENV=test nyc mocha ./test --recursive -R spec", | ||
"test:watch": "npm test -- --watch", | ||
"posttest": "nyc check-coverage", | ||
"check:dependencies": "npm run check:used && npm run check:unused", | ||
"check:used": "dependency-check ./package.json", | ||
"check:unused": "dependency-check ./package.json --unused --no-dev -i deep-equal" | ||
} | ||
} |
112
README.md
@@ -43,3 +43,3 @@ # axway-flow-sdk | ||
}) | ||
.outputs('encoded', { | ||
.output('encoded', { | ||
name: 'Encoded', | ||
@@ -68,3 +68,3 @@ description: 'The encoded URI.', | ||
}) | ||
.outputs('next', { | ||
.output('next', { | ||
schema: { | ||
@@ -138,15 +138,24 @@ "$ref": "schema://model/appc.arrowdb/user" | ||
* [~NodeBuilder](#module_axway-flow-sdk..NodeBuilder) | ||
* [.add(key, [options])](#module_axway-flow-sdk..NodeBuilder+add) ⇒ | ||
* [.method(key, [options])](#module_axway-flow-sdk..NodeBuilder+method) ⇒ | ||
* [.parameter(name, schema, [required])](#module_axway-flow-sdk..NodeBuilder+parameter) ⇒ | ||
* [.output(key)](#module_axway-flow-sdk..NodeBuilder+output) ⇒ | ||
* [.action(handler)](#module_axway-flow-sdk..NodeBuilder+action) ⇒ | ||
* [new NodeBuilder(srcModule)](#new_module_axway-flow-sdk..NodeBuilder_new) | ||
* [.add(key, [options])](#module_axway-flow-sdk..NodeBuilder+add) ⇒ <code>NodeBuilder</code> | ||
* [.method(key, [options])](#module_axway-flow-sdk..NodeBuilder+method) ⇒ <code>NodeBuilder</code> | ||
* [.parameter(name, schema, [required])](#module_axway-flow-sdk..NodeBuilder+parameter) ⇒ <code>NodeBuilder</code> | ||
* [.output(key, options)](#module_axway-flow-sdk..NodeBuilder+output) ⇒ <code>NodeBuilder</code> | ||
* [.action(handler)](#module_axway-flow-sdk..NodeBuilder+action) ⇒ <code>NodeBuilder</code> | ||
<a name="new_module_axway-flow-sdk..NodeBuilder_new"></a> | ||
#### new NodeBuilder(srcModule) | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| srcModule | <code>object</code> | a node module | | ||
<a name="module_axway-flow-sdk..NodeBuilder+add"></a> | ||
#### nodeBuilder.add(key, [options]) ⇒ | ||
#### nodeBuilder.add(key, [options]) ⇒ <code>NodeBuilder</code> | ||
Adds a new node spec and prepares the `NodeBuilder` to accept the following spec | ||
operations: | ||
- [.method(key, [options])](module:axway-node-sdk~NodeBuilder#method) | ||
- [.output(key, [options])](module:axway-node-sdk~NodeBuilder#output) | ||
- [.method(key, [options])](#module_axway-flow-sdk..NodeBuilder+method) | ||
- [.output(key, [options])](#module_axway-flow-sdk..NodeBuilder+output) | ||
@@ -159,12 +168,11 @@ The `key` parameter is used to uniquely identify the spec and represents a distinct | ||
The `icon` option can be bmp, jpeg, png, gif, tiff, or svg file. After, | ||
[.method](module:axway-node-sdk~NodeBuilder#method) | ||
[.method](#module_axway-flow-sdk..NodeBuilder+method) | ||
can be used to add method(s), and | ||
[.output](module:axway-node-sdk~NodeBuilder#output) can be used to | ||
[.output](#module_axway-flow-sdk..NodeBuilder+output) can be used to | ||
define an output. When done, | ||
[.action](module:axway-node-sdk~NodeBuilder#action) can be used to | ||
[.action](#module_axway-flow-sdk..NodeBuilder+action) can be used to | ||
define an action function and finish the spec. | ||
**Kind**: instance method of [<code>NodeBuilder</code>](#module_axway-flow-sdk..NodeBuilder) | ||
**Returns**: [`NodeBuilder`](module:axway-node-sdk~NodeBuilder) The current | ||
object (this). | ||
**Returns**: <code>NodeBuilder</code> - The current object (this). | ||
**Access**: public | ||
@@ -187,9 +195,9 @@ | ||
#### nodeBuilder.method(key, [options]) ⇒ | ||
#### nodeBuilder.method(key, [options]) ⇒ <code>NodeBuilder</code> | ||
Adds a new method to the current node spec and prepares the `NodeBuilder` | ||
to accept the following method operations: | ||
- [.parameter(name, schema, [required])](module:axway-node-sdk~NodeBuilder#parameter) | ||
- [.action(handler)](module:axway-node-sdk~NodeBuilder#action) | ||
- [.parameter(name, schema, [required])](#module_axway-flow-sdk..NodeBuilder+parameter) | ||
- [.action(handler)](#module_axway-flow-sdk..NodeBuilder+action) | ||
[.add(key, [options])](module:axway-node-sdk~NodeBuilder#add) must be | ||
[.add(key, [options])](#module_axway-flow-sdk..NodeBuilder+add) must be | ||
called prior to adding a method. | ||
@@ -201,4 +209,3 @@ | ||
**Kind**: instance method of [<code>NodeBuilder</code>](#module_axway-flow-sdk..NodeBuilder) | ||
**Returns**: [`NodeBuilder`](module:axway-node-sdk~NodeBuilder) The current | ||
object (this). | ||
**Returns**: <code>NodeBuilder</code> - The current object (this). | ||
**Access**: public | ||
@@ -210,3 +217,3 @@ | ||
| [options] | <code>object</code> | Options for the method. | | ||
| [options.name] | <code>string</code> | A friendly name for the method as it will appear in the UI. | | ||
| [] | <code>string</code> | A friendly name for the method as it will appear in the UI. | | ||
| [options.description] | <code>string</code> | A description for the method. | | ||
@@ -221,6 +228,6 @@ | ||
#### nodeBuilder.parameter(name, schema, [required]) ⇒ | ||
#### nodeBuilder.parameter(name, schema, [required]) ⇒ <code>NodeBuilder</code> | ||
Adds a new parameter to the current method. Any number of parameters can be added to a method. | ||
[.method(key, [options])](module:axway-node-sdk~NodeBuilder#method) must be | ||
[.method(key, [options])](#module_axway-flow-sdk..NodeBuilder+method) must be | ||
called prior to adding a parameter. | ||
@@ -234,4 +241,3 @@ | ||
**Kind**: instance method of [<code>NodeBuilder</code>](#module_axway-flow-sdk..NodeBuilder) | ||
**Returns**: [`NodeBuilder`](module:axway-node-sdk~NodeBuilder) The current | ||
object (this). | ||
**Returns**: <code>NodeBuilder</code> - The current object (this). | ||
**Access**: public | ||
@@ -253,3 +259,3 @@ | ||
#### nodeBuilder.output(key) ⇒ | ||
#### nodeBuilder.output(key, options) ⇒ <code>NodeBuilder</code> | ||
Adds a new output to the current method. Any number of outputs can be added to a method, | ||
@@ -260,3 +266,3 @@ but for usability-sake, you should limit this. The `output` represents one of the possible | ||
[.method(key, [options])](module:axway-node-sdk~NodeBuilder#method) | ||
[.method(key, [options])](#module_axway-flow-sdk..NodeBuilder+method) | ||
must be called prior to adding an output. | ||
@@ -275,4 +281,3 @@ | ||
**Kind**: instance method of [<code>NodeBuilder</code>](#module_axway-flow-sdk..NodeBuilder) | ||
**Returns**: [`NodeBuilder`](module:axway-node-sdk~NodeBuilder) The current | ||
object (this). | ||
**Returns**: <code>NodeBuilder</code> - The current object (this). | ||
**Access**: public | ||
@@ -283,2 +288,3 @@ | ||
| key | <code>string</code> | A unique key for the output. | | ||
| options | <code>object</code> | output options | | ||
| [options.name] | <code>string</code> | A friendly name for the output as it will appear in the UI. | | ||
@@ -298,4 +304,4 @@ | [options.description] | <code>string</code> | The output description. | | ||
#### nodeBuilder.action(handler) ⇒ | ||
Assigns an action [`handler`](module:axway-node-sdk~handler) to | ||
#### nodeBuilder.action(handler) ⇒ <code>NodeBuilder</code> | ||
Assigns an action [`handler`](#module_axway-flow-sdk..handler) to | ||
the current method. The method can only have one action handler. Assigning an action will | ||
@@ -305,4 +311,3 @@ terminate the current method definition. | ||
**Kind**: instance method of [<code>NodeBuilder</code>](#module_axway-flow-sdk..NodeBuilder) | ||
**Returns**: [`NodeBuilder`](module:axway-node-sdk~NodeBuilder) The current | ||
object (this). | ||
**Returns**: <code>NodeBuilder</code> - The current object (this). | ||
**Access**: public | ||
@@ -312,3 +317,3 @@ | ||
| --- | --- | --- | | ||
| handler | <code>handler</code> | The action [`handler`](module:axway-node-sdk~handler) function. | | ||
| handler | <code>handler</code> | The action [`handler`](#module_axway-flow-sdk..handler) function. | | ||
@@ -330,3 +335,3 @@ **Example** | ||
**Returns**: <code>NodeBuilder</code> - A newly constructed | ||
[`NodeBuilder`](module:axway-node-sdk~NodeBuilder) object | ||
[`NodeBuilder`](#module_axway-flow-sdk..NodeBuilder) object | ||
@@ -339,5 +344,30 @@ | Param | Type | Description | | ||
```js | ||
const sdk = require('axway-node-sdk'); | ||
const sdk = require('axway-flow-sdk'); | ||
exports = module.exports = sdk.init(module); | ||
``` | ||
<a name="module_axway-flow-sdk..validate"></a> | ||
### axway-flow-sdk~validate(nodes) | ||
Validates the flow-node specs against the Axway Flow schema. | ||
**Kind**: inner method of [<code>axway-flow-sdk</code>](#module_axway-flow-sdk) | ||
**Throws**: | ||
- <code>Error</code> If nodes contains invalid specs. | ||
**Access**: public | ||
| Param | Type | Description | | ||
| --- | --- | --- | | ||
| nodes | <code>NodeBuilder</code> | nodes to validate | | ||
**Example** | ||
```js | ||
const nodes = sdk.init(module).add('encodeURI', { icon: 'encode.svg' }) | ||
.method('encode', { name: 'Encode URI' }) | ||
.parameter('uri', { type: 'string' }) | ||
.output('encoded', { context: '$.encodedURI', schema: { type: 'string' } }) | ||
.action((req, cb) => cb.encoded(null, encodeURI(req.params.uri)); | ||
sdk.validate(nodes); | ||
``` | ||
<a name="module_axway-flow-sdk..handler"></a> | ||
@@ -357,4 +387,4 @@ | ||
| --- | --- | --- | | ||
| req | <code>Request</code> | The [`Request`](module:axway-node-sdk~Request) object. | | ||
| cb | <code>flowCallback</code> | The output [`callback`](module:axway-node-sdk~flowCallback). | | ||
| req | <code>Request</code> | The [`Request`](#module_axway-flow-sdk..Request) object. | | ||
| cb | <code>flowCallback</code> | The output [`callback`](#module_axway-flow-sdk..flowCallback). | | ||
@@ -373,3 +403,3 @@ **Example** | ||
A callback function that your method | ||
[`handler`](module:axway-node-sdk~handler) must invoke. | ||
[`handler`](#module_axway-flow-sdk..handler) must invoke. | ||
@@ -395,3 +425,3 @@ **Kind**: inner typedef of [<code>axway-flow-sdk</code>](#module_axway-flow-sdk) | ||
| env | <code>object</code> | The application configuration. | | ||
| params | <code>object</code> | The method params, as supplied during runtime (see [.parameter](module:axway-node-sdk~NodeBuilder#parameter)). | | ||
| params | <code>object</code> | The method params, as supplied during runtime (see [.parameter](#module_axway-flow-sdk..NodeBuilder+parameter)). | | ||
@@ -398,0 +428,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
46044
1
562
0
415
0
5
16
+ Addedaxway-flow-schema@1.1.2
+ Addedaxway-flow-schema@1.1.2(transitive)
Updatedajv@^5.3.0