8 Commits

Author SHA1 Message Date
ef568f2aa2 1.0.11 2020-09-22 23:06:35 +00:00
fced92e1cc fix(core): update 2020-09-22 23:06:34 +00:00
f73334d8fc 1.0.10 2020-09-22 22:54:06 +00:00
d170af1db5 fix(core): update 2020-09-22 22:54:05 +00:00
9e6b92f864 1.0.9 2020-07-05 15:16:51 +00:00
b094c07ef2 fix(core): update 2020-07-05 15:16:50 +00:00
33584785df 1.0.8 2020-07-04 16:42:42 +00:00
580f8dd7f7 fix(core): update 2020-07-04 16:42:41 +00:00
7 changed files with 46 additions and 64 deletions

52
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@apiglobal/sdk",
"version": "1.0.7",
"version": "1.0.11",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -15,20 +15,6 @@
"@pushrocks/webrequest": "^2.0.9"
},
"dependencies": {
"@pushrocks/lik": {
"version": "4.0.13",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-4.0.13.tgz",
"integrity": "sha512-Nde8rq1DjaDCREKlGGY/zS8g+eFu4zSU2jrbO4DdtYD+9oiauBMz2jzao3fr8401XpNW1Ex8T8FPdjUW8lUMow==",
"requires": {
"@pushrocks/smartdelay": "^2.0.9",
"@pushrocks/smartmatch": "^1.0.7",
"@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartrx": "^2.0.15",
"@pushrocks/smarttime": "^3.0.18",
"@types/minimatch": "^3.0.3",
"symbol-tree": "^3.2.4"
}
},
"@pushrocks/smartdelay": {
"version": "2.0.9",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.9.tgz",
@ -36,36 +22,6 @@
"requires": {
"@pushrocks/smartpromise": "^3.0.6"
}
},
"@pushrocks/smartrx": {
"version": "2.0.17",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.17.tgz",
"integrity": "sha512-jzekKE+Wi/OoRPz/RyBL2LNTQCjb7NizFP3NuST/pl8xQWEu9omGVHNFQEzUDBYQS3D8fSV2tecDf7tKU/kggg==",
"requires": {
"@pushrocks/lik": "^4.0.13",
"@pushrocks/smartpromise": "^3.0.6",
"rxjs": "^6.5.5"
}
},
"@pushrocks/smarttime": {
"version": "3.0.18",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.18.tgz",
"integrity": "sha512-G5Tx3etWRQNfNMrwX9gT3LGUAqIDwJ+7TitJsKPZcRGTuPoObhO8lXYkNQj9YuVxFVGmE+4xZaszYQO4xcLaPA==",
"requires": {
"@pushrocks/smartdelay": "^2.0.9",
"@pushrocks/smartpromise": "^3.0.2",
"croner": "^1.1.23",
"dayjs": "^1.8.27",
"is-nan": "^1.3.0"
}
},
"rxjs": {
"version": "6.6.0",
"resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.6.0.tgz",
"integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
"requires": {
"tslib": "^1.9.0"
}
}
}
},
@ -1224,7 +1180,6 @@
"version": "4.0.13",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2flik/-/lik-4.0.13.tgz",
"integrity": "sha512-Nde8rq1DjaDCREKlGGY/zS8g+eFu4zSU2jrbO4DdtYD+9oiauBMz2jzao3fr8401XpNW1Ex8T8FPdjUW8lUMow==",
"dev": true,
"requires": {
"@pushrocks/smartdelay": "^2.0.9",
"@pushrocks/smartmatch": "^1.0.7",
@ -1239,7 +1194,6 @@
"version": "2.0.9",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.9.tgz",
"integrity": "sha512-aVZJit1wq4fBG6ft2LJSPEnNbLSbRUuwNYggSeDqLtY7mXvAQmu4SIsXx18gfOtf69CoZR36RY3ff/IJv62C7w==",
"dev": true,
"requires": {
"@pushrocks/smartpromise": "^3.0.6"
}
@ -1512,7 +1466,6 @@
"version": "2.0.17",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrx/-/smartrx-2.0.17.tgz",
"integrity": "sha512-jzekKE+Wi/OoRPz/RyBL2LNTQCjb7NizFP3NuST/pl8xQWEu9omGVHNFQEzUDBYQS3D8fSV2tecDf7tKU/kggg==",
"dev": true,
"requires": {
"@pushrocks/lik": "^4.0.13",
"@pushrocks/smartpromise": "^3.0.6",
@ -1561,7 +1514,6 @@
"version": "3.0.18",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmarttime/-/smarttime-3.0.18.tgz",
"integrity": "sha512-G5Tx3etWRQNfNMrwX9gT3LGUAqIDwJ+7TitJsKPZcRGTuPoObhO8lXYkNQj9YuVxFVGmE+4xZaszYQO4xcLaPA==",
"dev": true,
"requires": {
"@pushrocks/smartdelay": "^2.0.9",
"@pushrocks/smartpromise": "^3.0.2",
@ -1574,7 +1526,6 @@
"version": "2.0.9",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartdelay/-/smartdelay-2.0.9.tgz",
"integrity": "sha512-aVZJit1wq4fBG6ft2LJSPEnNbLSbRUuwNYggSeDqLtY7mXvAQmu4SIsXx18gfOtf69CoZR36RY3ff/IJv62C7w==",
"dev": true,
"requires": {
"@pushrocks/smartpromise": "^3.0.6"
}
@ -4167,7 +4118,6 @@
"version": "6.6.0",
"resolved": "https://verdaccio.lossless.one/rxjs/-/rxjs-6.6.0.tgz",
"integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
}

View File

@ -1,6 +1,6 @@
{
"name": "@apiglobal/sdk",
"version": "1.0.7",
"version": "1.0.11",
"private": false,
"description": "an sdk package for api.global",
"main": "dist_ts/index.js",

View File

@ -1,15 +1,14 @@
import { expect, tap } from '@pushrocks/tapbundle';
import * as sdk from '../ts/index';
import { ISimpleRequest } from '@tsclass/tsclass/dist_ts/network';
import { TypedRouter } from '@apiglobal/typedrequest';
tap.test('should create a valid Handler', async () => {
class MyHandler extends sdk.AAgHandler<any> {
slug: 'testapi';
public async handleRequest(authInfo: sdk.AuthInfo<any>, request: ISimpleRequest) {
// this.authenticationHandler
let response: any;
return response;
}
public slug: 'testapi';
public typedrouter = new TypedRouter();
public async checkReqirements() {
return {
allOk: true,
@ -20,9 +19,23 @@ tap.test('should create a valid Handler', async () => {
public async start() {}
public async stop() {}
public async checkRequirements(): Promise<sdk.IRequirementResult> {
return {
allOk: true,
reason: ''
}
}
}
const myHandlerInstance = new MyHandler();
// tslint:disable-next-line: max-classes-per-file
class AgEnvironement extends sdk.AgEnvironment {
public async getEnvVar(nameArg: string) {
return '';
}
}
const myHandlerInstance = new MyHandler(new AgEnvironement());
expect(myHandlerInstance).to.be.instanceOf(sdk.AAgHandler);
});

View File

@ -1,2 +1,3 @@
export * from './sdk.classes.agenvironment';
export * from './sdk.classes.aghandler';
export * from './sdk.classes.authinfo';

View File

@ -0,0 +1,8 @@
import * as plugins from './sdk.plugins';
/**
* AgEnvironment handles the provision of environment variables to handlers
*/
export abstract class AgEnvironment {
public abstract async getEnvVar(envVarName: string): Promise<string>;
}

View File

@ -1,5 +1,6 @@
import * as plugins from './sdk.plugins';
import { AuthInfo } from './sdk.classes.authinfo';
import { AgEnvironment } from './sdk.classes.agenvironment';
export interface IRequirementResult {
allOk: boolean;
@ -7,16 +8,18 @@ export interface IRequirementResult {
}
export abstract class AAgHandler<TClaim> {
public agEnvironment: AgEnvironment;
/**
* a slug that separates the handler from other handlers
*/
public abstract slug: string;
public abstract typedrouter: plugins.typedrequest.TypedRouter;
public abstract checkRequirements(): Promise<IRequirementResult>;
public abstract handleRequest(
authInfoArg: AuthInfo<TClaim>,
request: plugins.tsclass.network.ISimpleRequest
): Promise<plugins.tsclass.network.ISimpleResponse>;
public abstract checkReqirements(): Promise<IRequirementResult>;
constructor(agEnvironmentArg: AgEnvironment) {
this.agEnvironment = agEnvironmentArg;
};
/**
* start the ag-handler

View File

@ -1,6 +1,13 @@
// node native scope
import * as path from 'path';
// @apiglobal scope
import * as typedrequest from '@apiglobal/typedrequest';
export {
typedrequest
};
// @tsclass scope
import * as tsclass from '@tsclass/tsclass';