UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

148 lines 8.15 kB
export class MockRouter { constructor() { this._routes = []; } // constructor() { // this._routes = []; // } get routes() { return this._routes; } findRoute(request) { const candidates = this._routes.filter((r) => r.predicate(request)); if (candidates.length === 0) { return undefined; } else { return candidates[0].adapter(request); } } // addRoutes(map: RouteMapping) { // // throw new Error('Method not implemented.'); // // TODO // } addRoute(predicate, adapter) { // var filter: Predicate<Command>; // if (typeof left === 'string') { // left = Util.parseApiRequestString(left); // } // if (left instanceof ApiRequest) { // filter = new EqualRequestFilter(left); // } else if (left instanceof RegExp) { // filter = new RegExpFilter(left); // } else if (typeof left === 'function') { // filter = { // test: left // }; // } else { // filter = left as Predicate<Command>; // } // var adapter: ResponseAdapter<T>; // if (right instanceof ResponseImpl) { // adapter = new (class Tmp implements ResponseAdapter<T> { // public adapt(command: Command) { // return right; // } // })(); // } else if (right instanceof Uint8Array) { // adapter = new (class Tmp implements ResponseAdapter<T> { // public adapt(command: Command) { // return new ResponseImpl<T>(right); // } // })(); // } else if (typeof right === 'function') { // adapter = { // adapt: right // }; // } else { // adapter = right as ResponseAdapter<T>; // } this._routes.push({ predicate, adapter, }); return this; } // /** // * Mapping a command (represented as a string with format "<request-type> <path> [data]" // * ie: GET /3//3 0xABCD or POST /1024//0 0xtest // * // * TapResponse must either be: // * - an hexadecimal data represented as a string (0xABCD) // * - An object with a coreRet and a body // * - A Uint8Array // */ // addRoutes(map: { [key: string]: RouteType }): this { // for (const pathString in map) { // const info = map[pathString]; // const command: Command = Util.parseApiRequestString(pathString); // let response; // if (info instanceof Uint8Array) { // response = new ResponseImpl(info); // } else if (info instanceof ResponseImpl) { // response = info; // } else if (typeof info === 'number') { // response = ResponseImpl.create(info); // } else if (typeof info === 'string') { // response = new ResponseImpl( // hexStringToBuffer(info) // ); // } else if (typeof info === 'object') { // const codeRet: number = (info as RouteTypeObject).codeRet; // response = new ResponseImpl( // KaitaiStreamWriter.mergeArrays( // Uint8Array.from([codeRet]), // (info as RouteTypeObject).body || new Uint8Array(0) // ) // ); // } else { // throw new Error( // `Invalid response type ${typeof info} with value: ${JSON.stringify( // info // )}` // ); // } // debug(TAG, `\t- Add map ${command} -> ${response}`); // this.addRoute(command, response); // } // return this; // } clearRoutes() { this._routes = []; return this; } } // /** // * @deprecated in favor of {@link #addRoute} // */ // public mapResponse<T>( // left: // | FilterFunction<TapRequestFrame> // | Predicate<TapRequestFrame> // | TapRequestFrame, // right: // | ResponseAdapterFunction<T> // | ResponseAdapter<T> // | TapResponse<T> // | Uint8Array // ): this { // return this.addRoute(left, right); // } // public addRoute<T>( // left: // | FilterFunction<TapRequestFrame> // | Predicate<TapRequestFrame> // | TapRequestFrame, // right: // | ResponseAdapterFunction<T> // | ResponseAdapter<T> // | TapResponse<T> // | Uint8Array // ): this { // this.router.addRoute(left, right); // return this; // } // // public Configuration getConfiguration() { // // return configuration; // // } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1yb3V0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90ZXN0aW5nL3NyYy9tb2NrL21vY2stcm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxVQUFVO0lBQXZCO1FBQ0UsWUFBTyxHQUdELEVBQUUsQ0FBQztJQXFIWCxDQUFDO0lBbkhDLHNCQUFzQjtJQUN0Qiw2QkFBNkI7SUFDN0IsUUFBUTtJQUVSLElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWtCO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixPQUFPLFNBQVMsQ0FBQztTQUNsQjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxxREFBcUQ7SUFDckQsY0FBYztJQUNkLElBQUk7SUFFRyxRQUFRLENBQUksU0FBK0IsRUFBRSxPQUFZO1FBQzlELGtDQUFrQztRQUNsQyxrQ0FBa0M7UUFDbEMsK0NBQStDO1FBQy9DLElBQUk7UUFDSixvQ0FBb0M7UUFDcEMsNkNBQTZDO1FBQzdDLHVDQUF1QztRQUN2Qyx1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLGlCQUFpQjtRQUNqQixxQkFBcUI7UUFDckIsU0FBUztRQUNULFdBQVc7UUFDWCwyQ0FBMkM7UUFDM0MsSUFBSTtRQUNKLG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsK0RBQStEO1FBQy9ELDJDQUEyQztRQUMzQyw0QkFBNEI7UUFDNUIsWUFBWTtRQUNaLFlBQVk7UUFDWiw0Q0FBNEM7UUFDNUMsK0RBQStEO1FBQy9ELDJDQUEyQztRQUMzQyxpREFBaUQ7UUFDakQsWUFBWTtRQUNaLFlBQVk7UUFDWiw0Q0FBNEM7UUFDNUMsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixTQUFTO1FBQ1QsV0FBVztRQUNYLDZDQUE2QztRQUM3QyxJQUFJO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEIsU0FBUztZQUNULE9BQU87U0FDUixDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO0lBQ1YsK0ZBQStGO0lBQy9GLHNEQUFzRDtJQUN0RCxTQUFTO0lBQ1QscUNBQXFDO0lBQ3JDLGlFQUFpRTtJQUNqRSxnREFBZ0Q7SUFDaEQseUJBQXlCO0lBQ3pCLFVBQVU7SUFDVix1REFBdUQ7SUFDdkQsc0NBQXNDO0lBQ3RDLHdDQUF3QztJQUN4QywyRUFBMkU7SUFDM0Usd0JBQXdCO0lBRXhCLDRDQUE0QztJQUM1QyxpREFBaUQ7SUFDakQscURBQXFEO0lBQ3JELCtCQUErQjtJQUMvQixpREFBaUQ7SUFDakQsb0RBQW9EO0lBQ3BELGlEQUFpRDtJQUNqRCwyQ0FBMkM7SUFDM0MsMENBQTBDO0lBQzFDLGlCQUFpQjtJQUNqQixpREFBaUQ7SUFDakQseUVBQXlFO0lBQ3pFLDJDQUEyQztJQUMzQyxrREFBa0Q7SUFDbEQsa0RBQWtEO0lBQ2xELDBFQUEwRTtJQUMxRSxvQkFBb0I7SUFDcEIsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQiwrQkFBK0I7SUFDL0Isc0ZBQXNGO0lBQ3RGLDJCQUEyQjtJQUMzQixzQkFBc0I7SUFDdEIsaUJBQWlCO0lBQ2pCLFlBQVk7SUFDWiwrREFBK0Q7SUFDL0QsNENBQTRDO0lBQzVDLFFBQVE7SUFDUixtQkFBbUI7SUFDbkIsSUFBSTtJQUVKLFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU07QUFDTiwrQ0FBK0M7QUFDL0MsTUFBTTtBQUNOLHlCQUF5QjtBQUN6QixZQUFZO0FBQ1osNENBQTRDO0FBQzVDLHVDQUF1QztBQUN2Qyw2QkFBNkI7QUFDN0IsYUFBYTtBQUNiLHVDQUF1QztBQUN2QywrQkFBK0I7QUFDL0IsMkJBQTJCO0FBQzNCLHVCQUF1QjtBQUN2QixZQUFZO0FBQ1oseUNBQXlDO0FBQ3pDLElBQUk7QUFFSixzQkFBc0I7QUFDdEIsWUFBWTtBQUNaLDRDQUE0QztBQUM1Qyx1Q0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLGFBQWE7QUFDYix1Q0FBdUM7QUFDdkMsK0JBQStCO0FBQy9CLDJCQUEyQjtBQUMzQix1QkFBdUI7QUFDdkIsWUFBWTtBQUNaLHlDQUF5QztBQUN6QyxtQkFBbUI7QUFDbkIsSUFBSTtBQUVKLG1EQUFtRDtBQUNuRCwrQkFBK0I7QUFDL0IsT0FBTyJ9