awake-heroku
Version:
A package help your heroku app is always runs
43 lines (37 loc) • 918 B
text/typescript
import { IAppInfo, IDataService } from "../types";
class DataService implements IDataService {
apps: IAppInfo[] = [];
public add(url: string) {
if (!url) {
return;
}
const foundApp = this.apps.find((a) => a.url === url);
if (foundApp) {
return;
}
this.apps.push({
id: this.apps.length,
url,
lastHeartBeat: Date.now(),
});
}
public remove(id: number) {
this.apps = this.apps.filter((app: IAppInfo) => app.id !== id);
}
public update(app: IAppInfo) {
this.apps = this.apps.map((a: IAppInfo) => {
if (app.id === a.id) {
a.url = app.url;
a.lastHeartBeat = app.lastHeartBeat;
}
return a;
});
}
public get(id: number) {
return this.apps.find((app) => app.id === id);
}
public getAll() {
return this.apps;
}
}
export default new DataService();