6 Commits

Author SHA1 Message Date
d152920692 1.0.7 2021-11-20 22:28:08 +01:00
5628ce6328 fix(core): update 2021-11-20 22:28:08 +01:00
a24e7c6f73 1.0.6 2021-11-20 20:32:16 +01:00
8d9d3f92db fix(tests): add more meaningful tests 2021-11-20 20:32:16 +01:00
cdb3c27637 1.0.5 2021-11-19 20:16:01 +01:00
d11adfc704 fix(core): update 2021-11-19 20:16:01 +01:00
5 changed files with 45 additions and 6 deletions

View File

@@ -126,7 +126,7 @@ pages:
- npmci node install lts - npmci node install lts
- npmci command npm install -g @gitzone/tsdoc - npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare - npmci npm prepare
- npmci npm install - npmci command npm install --prod
- npmci command tsdoc - npmci command tsdoc
tags: tags:
- lossless - lossless

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "@pushrocks/smartswagger", "name": "@pushrocks/smartswagger",
"version": "1.0.4", "version": "1.0.7",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@pushrocks/smartswagger", "name": "@pushrocks/smartswagger",
"version": "1.0.4", "version": "1.0.7",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@apidevtools/swagger-parser": "^10.0.3", "@apidevtools/swagger-parser": "^10.0.3",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartswagger", "name": "@pushrocks/smartswagger",
"version": "1.0.4", "version": "1.0.7",
"private": false, "private": false,
"description": "a swagger tookit for working with swagger files", "description": "a swagger tookit for working with swagger files",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@@ -1,8 +1,35 @@
import { expect, tap } from '@pushrocks/tapbundle'; import { expect, tap } from '@pushrocks/tapbundle';
import * as smartswagger from '../ts/index'; import * as smartswagger from '../ts/index';
import * as smartexpress from '@pushrocks/smartexpress';
let testSmartswaggerInstance: smartswagger.Smartswagger;
let testExpressServer: smartexpress.Server;
tap.test('first test', async () => { tap.test('first test', async () => {
console.log(smartswagger.standardExport); testSmartswaggerInstance = await smartswagger.Smartswagger.createFromUrl('https://my.sevdesk.de/OpenAPI/ReceiptAPI/openApi.json');
await testSmartswaggerInstance.mergeDocumentFromUrl('https://my.sevdesk.de/OpenAPI/ContactAPI/openApi.json', '');
await testSmartswaggerInstance.mergeDocumentFromUrl('https://my.sevdesk.de/OpenAPI/InvoiceAPI/openApi.json', '');
await testSmartswaggerInstance.mergeDocumentFromUrl('https://my.sevdesk.de/OpenAPI/OrderAPI/openApi.json', '');
await testSmartswaggerInstance.mergeDocumentFromUrl('https://my.sevdesk.de/OpenAPI/InventoryAPI/openApi.json', '');
// express stuff
testExpressServer = new smartexpress.Server({
cors: true,
});
testExpressServer.addRoute('/apiui', new smartexpress.Handler('ALL', testSmartswaggerInstance.getSlashApiUiMiddleware()));
testExpressServer.addRoute('/apiredoc', new smartexpress.Handler('ALL', testSmartswaggerInstance.getSlashRedocMiddleware()))
testExpressServer.addRoute('/apischema', new smartexpress.Handler('ALL', testSmartswaggerInstance.getSlashApiSchemaMiddleware()));
await testExpressServer.start(3000);
}); });
tap.test('should run for a few seconds', async (toolsArg) => {
await toolsArg.delayFor(5000);
});
tap.test('should end smartswagger', async () => {
await testExpressServer.stop();
})
tap.start(); tap.start();

View File

@@ -85,7 +85,7 @@ export class Smartswagger {
/** /**
* merges a document from url * merges a document from url
*/ */
public async mergeDocumentFromUrl(documentUrlArg: string, basePathArg: string) { public async mergeDocumentFromUrl(documentUrlArg: string, basePathArg: string = '') {
console.log(`getting document at ${documentUrlArg} for merging...`) console.log(`getting document at ${documentUrlArg} for merging...`)
const documentResponse = await plugins.nodeFetch(documentUrlArg, { const documentResponse = await plugins.nodeFetch(documentUrlArg, {
headers: { headers: {
@@ -98,6 +98,18 @@ export class Smartswagger {
await this.mergeDocument(apiDoc, basePathArg); await this.mergeDocument(apiDoc, basePathArg);
} }
/**
* merge multiple documents in parallel
* @param urlArrayArg
*/
public async mergeManyDocumentsFromUrl(urlArrayArg: {url: string, basePath: string}[]) {
const promiseArray: Promise<void>[] = [];
for (const urlArg of urlArrayArg) {
promiseArray.push(this.mergeDocumentFromUrl(urlArg.url, urlArg.basePath));
};
await Promise.all(promiseArray);
}
/** /**
* merges a component to routes based on regex * merges a component to routes based on regex
*/ */