2021-04-04 05:42:15 +00:00
|
|
|
import { Client } from '../client/mod.ts'
|
2021-01-25 11:28:46 +00:00
|
|
|
import { Snowflake } from '../utils/snowflake.ts'
|
2020-10-24 18:11:27 +00:00
|
|
|
|
2020-10-22 15:50:47 +00:00
|
|
|
export class Base {
|
2021-02-12 11:37:38 +00:00
|
|
|
client!: Client
|
2020-10-24 15:00:42 +00:00
|
|
|
|
2020-12-02 12:29:52 +00:00
|
|
|
constructor(client: Client, _data?: any) {
|
2021-02-12 11:37:38 +00:00
|
|
|
Object.defineProperty(this, 'client', { value: client, enumerable: false })
|
2020-10-21 16:30:42 +00:00
|
|
|
}
|
|
|
|
}
|
2021-01-25 11:28:46 +00:00
|
|
|
|
|
|
|
export class SnowflakeBase extends Base {
|
|
|
|
id!: string
|
|
|
|
|
|
|
|
/** Get Snowflake Object */
|
|
|
|
get snowflake(): Snowflake {
|
|
|
|
return new Snowflake(this.id)
|
|
|
|
}
|
|
|
|
|
|
|
|
/** Timestamp of when resource was created */
|
|
|
|
get timestamp(): Date {
|
|
|
|
return new Date(this.snowflake.timestamp)
|
|
|
|
}
|
|
|
|
}
|