From b5722836599ed724e28271a9d6f2454ec27ab51c Mon Sep 17 00:00:00 2001 From: Marcus David Bronstein Date: Tue, 12 Apr 2016 12:20:20 -0300 Subject: [PATCH] adding microgears definitions (#8930) --- microgears/microgears-tests.ts | 58 ++++++++++++++++++++++++++++++++++ microgears/microgears.d.ts | 33 +++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 microgears/microgears-tests.ts create mode 100644 microgears/microgears.d.ts diff --git a/microgears/microgears-tests.ts b/microgears/microgears-tests.ts new file mode 100644 index 000000000..124058de7 --- /dev/null +++ b/microgears/microgears-tests.ts @@ -0,0 +1,58 @@ +/// + + +function verify_module_file() { + var tracePlugin = new TracePlugin(); + microgears.addPlugin(tracePlugin); + var service = new UserService(); + var userService = microgears.addService(service); + + +} + +class TracePlugin implements microgears.Plugin { + name: 'TracePlugin'; + public beforeChain(args:Array, _meta: microgears.MetaInformation) { + var serviceName = _meta.serviceName, + method = _meta.methodName; + console.log('before call-> ' + serviceName + '.' + method); + + _meta.extra = { + count: 1 + }; + + return args + } + public afterChain(result:any, _meta: microgears.MetaInformation) { + var serviceName = _meta.serviceName, + method = _meta.methodName; + + console.log('after of-> ' + serviceName + '.' + method); + if (_meta.extra.count) { + console.log('this number comes to the beforeChain: ' + _meta.extra.count); + } + + return result; + } +} + +class User { + name: string; + email: string; + + constructor(name: string, email: string) { + this.email = email; + this.name = name; + } +} + +class UserService implements microgears.Service { + name: string = "userService"; + namespace: string = "services.user"; + + public findUserById(id: number) { + return new User('test', 'test@example.com'); + } + +} + diff --git a/microgears/microgears.d.ts b/microgears/microgears.d.ts new file mode 100644 index 000000000..47e19b4e3 --- /dev/null +++ b/microgears/microgears.d.ts @@ -0,0 +1,33 @@ +// Type definitions for microgears v4.0.0 +// Project: http://github.com/marcusdb/microgears +// Definitions by: Marcus David Bronstein +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace microgears { + export interface Service { + name: string; + async?: boolean; + pathname?: string; + namespace: string; + } + + interface MetaInformation { + serviceName: string; + methodName: string; + serviceNameSpace: string; + extra: any; + } + + interface Plugin { + name: string; + beforeChain(arguments: Array, metaInfo: MetaInformation): Array; + afterChain(result: T, metaInfo: MetaInformation): T; + } + + function addService(service: Service): Service; + function addPlugin(plugin: Plugin): void; +} + +declare module "microgears" { + export = microgears; +} \ No newline at end of file