dismiss & use svelte in client

This commit is contained in:
2021-11-23 14:12:38 +01:00
parent a4e0bf1532
commit 4c0a60b14a
11 changed files with 171 additions and 81 deletions

View File

@@ -18,6 +18,7 @@ DB.version(2).stores({
DB.version(3).stores({
settings: `key, value`,
dismiss: `host, timestamp, duration`,
})
export function normalizeTimestamp(timestamp) {

View File

@@ -52,6 +52,12 @@ export function getUsageForRules(host, rules) {
}
export async function getUsageForHost(host) {
const dismiss = await DB.dismiss.where({ host }).first()
if (dismiss) {
const isDismissed = dj().isBefore(dj(dismiss.timestamp).add(dismiss.duration, 'ms'))
if (isDismissed) return []
}
const limit = await DB.limits.where({ host }).first()
if (!limit) return []
return await Promise.all(getUsageForRules(host, limit.rules))

View File

@@ -20,6 +20,12 @@ export const LogValidator = Joi.object({
timestamp: Joi.date(),
})
export const DismissValidator = Joi.object({
host: Joi.string(),
timestamp: Joi.date(),
duration: Joi.number(),
})
export const SettingsValidator = Joi.object({
lastActivity: Joi.date()
.default(() => new Date())
@@ -29,9 +35,10 @@ export const SettingsValidator = Joi.object({
})
export const DBValidator = Joi.object({
limits: Joi.array().items(LimitValidator),
logs: Joi.array().items(LogValidator),
limits: Joi.array().items(LimitValidator).optional(),
logs: Joi.array().items(LogValidator).optional(),
settings: SettingsValidator.optional(),
dismiss: Joi.array().items(DismissValidator).optional(),
})
export function checkForErrors(validator, data) {