6 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
6 changed files with 35 additions and 4 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@apiglobal/sdk",
"version": "1.0.8",
"version": "1.0.11",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

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

View File

@ -8,6 +8,7 @@ tap.test('should create a valid Handler', async () => {
class MyHandler extends sdk.AAgHandler<any> {
public slug: 'testapi';
public typedrouter = new TypedRouter();
public async checkReqirements() {
return {
allOk: true,
@ -18,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,12 +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 checkReqirements(): Promise<IRequirementResult>;
public abstract checkRequirements(): Promise<IRequirementResult>;
constructor(agEnvironmentArg: AgEnvironment) {
this.agEnvironment = agEnvironmentArg;
};
/**
* start the ag-handler