Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
"license": "Apache-2.0",
"scripts": {
"bootstrap": "lerna bootstrap",
"build": "yarn build:packages",
"build:packages": "lerna run build",
"test:packages": "lerna run test"
},
"devDependencies": {
Expand Down
13 changes: 9 additions & 4 deletions packages/aws/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"name": "@teitei-tk/bravia-aws-package",
"version": "1.0.0",
"main": "lib/index.ts",
"name": "@teitei-tk/bravia-aws",
"version": "0.0.1",
"main": "./build/index.js",
"types": "./build/index.d.ts",
"license": "Apache-2.0",
"scripts": {
"build": "tsc",
Expand All @@ -18,7 +19,11 @@
"typescript": "^3.0.1"
},
"jest": {
"moduleFileExtensions": [ "js", "ts", "tsx" ],
"moduleFileExtensions": [
"js",
"ts",
"tsx"
],
"transform": {
"^.+\\.(ts|tsx)$": "ts-jest"
},
Expand Down
42 changes: 42 additions & 0 deletions packages/subscribe/__tests__/subscriber.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import * as events from "events";
import { Subscriber } from "../lib/subscriber";
import { SubscribeProviderInterface } from "../lib/provider";

const testTopicName = "topic/1";

class TestSubscriberClient implements SubscribeProviderInterface {
subscribe(subscribeName, options): Promise<{ result: boolean }> {
return Promise.resolve({ result: true });
}

connect(): Promise<{ result: boolean }> {
return Promise.resolve({ result: true });
}

message(): Promise<{ topic: string; payload: Buffer }> {
return Promise.resolve({
topic: testTopicName,
payload: new Buffer("1")
});
}
}

describe("@teitei-tk/bravia-subscriber", () => {
describe("Subscriber", () => {
let subscriber: Subscriber;
beforeAll(() => {
subscriber = new Subscriber(new TestSubscriberClient());
});

it("connect", async () => {
const r = await subscriber.client.connect();
expect(r).toBeTruthy();
});

it("message", async () => {
const r = await subscriber.client.message();
expect(r.topic).toBe(testTopicName);
expect(r.payload.toString()).toBe("1");
});
});
});
5 changes: 2 additions & 3 deletions packages/subscribe/lib/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
import { Core } from "@bravia/core";

console.log(Core);
import { Subscriber } from "./subscriber";
export { Subscriber };
1 change: 1 addition & 0 deletions packages/subscribe/lib/option.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// TODO: implements AWS Thing Shadow Class Option here
9 changes: 9 additions & 0 deletions packages/subscribe/lib/provider/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
export interface QOS {
qos: 0 | 1;
}

export interface SubscribeProviderInterface {
subscribe(subscribeName: string, options: QOS): Promise<{ result: boolean }>;
connect(): Promise<{ result: boolean }>;
message(): Promise<{ topic: string; payload: Buffer }>;
}
18 changes: 18 additions & 0 deletions packages/subscribe/lib/subscriber.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { SubscribeProviderInterface } from "./provider";

export class Subscriber {
client: SubscribeProviderInterface;

constructor(client?: SubscribeProviderInterface | null) {
this.client = client;
}

async subscribe() {
const result = await this.client.connect();
if (!result) {
throw new Error("cannot connect subscibe client.");
}
const message = await this.client.message();
console.log(message);
}
}
29 changes: 25 additions & 4 deletions packages/subscribe/package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,35 @@
{
"name": "@bravia/subscribe",
"version": "1.0.0",
"main": "lib/index.ts",
"license": "MIT",
"name": "@teitei-tk/bravia-subscribe",
"version": "0.0.1",
"main": "./build/index.js",
"types": "./build/index.d.ts",
"license": "Apache-2.0",
"scripts": {
"build": "tsc",
"test": "jest"
},
"devDependencies": {
"@bravia/core": "^1.0.0",
"@types/jest": "^23.3.1",
"@types/node": "^10.5.7",
"jest": "^23.5.0",
"ts-jest": "^23.1.3",
"typescript": "^3.0.1"
},
"dependencies": {
"@teitei-tk/bravia-aws": "^0.0.1"
},
"jest": {
"moduleFileExtensions": [
"js",
"ts",
"tsx"
],
"transform": {
"^.+\\.(ts|tsx)$": "ts-jest"
},
"testMatch": [
"**/__tests__/*.+(ts|tsx|js)"
]
}
}
12 changes: 11 additions & 1 deletion packages/subscribe/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
{
"extends": "../../tsconfig.json"
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./build"
},
"include": [
"./lib/**/*.ts"
],
"exclude": [
"node_modules/",
]

}
3 changes: 1 addition & 2 deletions tsconfig.base.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [ "es5", "es2015.promise", "esnext" ],
"target": "es5",
"target": "es2015",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"baseUrl": "./packages",
"paths": {
"@teitei-tk/*": ["./*/lib", "./*/__tests__"]
}
},
"lib": [ "esnext" ]
}
}