Spaces:
Running
Running
/** | |
* Copyright (c) 2023 MERCENARIES.AI PTE. LTD. | |
* All rights reserved. | |
*/ | |
import type * as Nano from 'nano'; | |
interface IDBObject { | |
_id?: string; | |
_rev?: string; | |
} | |
interface IDBObjectLink { | |
id: string; | |
type?: string; | |
name: string; | |
} | |
abstract class DBObject implements IDBObject { | |
_id?: string; | |
_rev?: string; | |
id: string; | |
createdAt: number; | |
lastUpdated: number; | |
constructor(id: string) { | |
this._rev = undefined; | |
this.id = id; | |
this.createdAt = Date.now(); | |
this.lastUpdated = Date.now(); | |
} | |
processAPIResponse(response: Nano.DocumentInsertResponse) { | |
if (response.ok) { | |
this._id = response.id; | |
this._rev = response.rev; | |
} | |
} | |
} | |
export { type IDBObject, type IDBObjectLink, DBObject }; | |