Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d152920692 | |||
| 5628ce6328 | |||
| a24e7c6f73 | |||
| 8d9d3f92db | |||
| cdb3c27637 | |||
| d11adfc704 |
@@ -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
4
package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
29
test/test.ts
29
test/test.ts
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user