diff --git a/packages/lib/shared/src/cache/Web3ProviderCacheFactory.ts b/packages/lib/shared/src/cache/Web3ProviderCacheFactory.ts index 0f3a80733..7b19a74b1 100644 --- a/packages/lib/shared/src/cache/Web3ProviderCacheFactory.ts +++ b/packages/lib/shared/src/cache/Web3ProviderCacheFactory.ts @@ -2,10 +2,10 @@ import { ethers } from 'ethers'; import { ICache } from './impl/ICache'; import { LRUCache } from './impl/LRUCache'; import { TTLCache, TTLCacheItem } from './impl/TTLCache'; -import { IPersistance } from './persistance/IPersistance'; -import { InMemory } from './persistance/InMemory'; +import { IPersistance } from './persistence/IPersistance'; +import { InMemory } from './persistence/InMemory'; import { sha256 } from '../sha256'; -import { LocalStorage } from './persistance/LocalStorage'; +import { LocalStorage } from './persistence/LocalStorage'; const DEFAULT_CAPACITY = 500; //1 hour @@ -18,16 +18,16 @@ export class Web3ProviderCacheFactory { constructor(provider: ethers.providers.JsonRpcProvider) { this.provider = provider; } - //TTL cache with local storage as persistance + //TTL cache with local storage as persistence public TTLLocalStorage(ttl: number = DEFAULT_TTL) { return this.TTL(new LocalStorage>(), ttl); } //Returns an instance of the web3 provder. Requests are cached for a given time to live public TTL( - persistance: IPersistance> = new InMemory(), + persistence: IPersistance> = new InMemory(), ttl: number = DEFAULT_TTL, ): ethers.providers.JsonRpcProvider { - const cache = new TTLCache(DEFAULT_CAPACITY, ttl, persistance); + const cache = new TTLCache(DEFAULT_CAPACITY, ttl, persistence); const instance = Web3ProviderCacheFactory._createInstance( this.provider, cache, @@ -36,10 +36,10 @@ export class Web3ProviderCacheFactory { } //Returns an instance of the web3 provider. Requests are cached using LRU strategy public LRU( - persistance: IPersistance = new InMemory(), + persistence: IPersistance = new InMemory(), capacity: number = DEFAULT_CAPACITY, ): ethers.providers.JsonRpcProvider { - const cache = new LRUCache(capacity, persistance); + const cache = new LRUCache(capacity, persistence); const instance = Web3ProviderCacheFactory._createInstance( this.provider, cache, diff --git a/packages/lib/shared/src/cache/impl/LRUCache.ts b/packages/lib/shared/src/cache/impl/LRUCache.ts index 6a981521d..dc5746842 100644 --- a/packages/lib/shared/src/cache/impl/LRUCache.ts +++ b/packages/lib/shared/src/cache/impl/LRUCache.ts @@ -1,54 +1,54 @@ //Simple cache using LRU as a cache strategy to keep the most recent values -import { IPersistance } from '../persistance/IPersistance'; -import { InMemory } from '../persistance/InMemory'; +import { IPersistance } from '../persistence/IPersistance'; +import { InMemory } from '../persistence/InMemory'; import { ICache } from './ICache'; //Thanks to Gashawk.io for the implementation export class LRUCache implements ICache { private capacity: number; - private persistance: IPersistance; + private persistence: IPersistance; constructor( capacity: number, - persistance: IPersistance = new InMemory(), + persistence: IPersistance = new InMemory(), ) { this.capacity = capacity; - this.persistance = persistance; + this.persistence = persistence; } get(key: string): T | undefined { - if (!this.persistance.has(key)) { + if (!this.persistence.has(key)) { return undefined; } - const value = this.persistance.get(key)!; + const value = this.persistence.get(key)!; // Remove the key and re-insert it to update its position (most recently used) - this.persistance.delete(key); - this.persistance.set(key, value); + this.persistence.delete(key); + this.persistence.set(key, value); return value; } set(key: string, value: T): void { - if (this.persistance.has(key)) { + if (this.persistence.has(key)) { // Remove the key to update its position (most recently used) - this.persistance.delete(key); - } else if (this.persistance.size() === this.capacity) { + this.persistence.delete(key); + } else if (this.persistence.size() === this.capacity) { // Remove the least recently used (first) entry - const firstKey = this.persistance.keys().next().value; - this.persistance.delete(firstKey); + const firstKey = this.persistence.keys().next().value; + this.persistence.delete(firstKey); } - this.persistance.set(key, value); + this.persistence.set(key, value); } has(key: string): boolean { - return this.persistance.has(key); + return this.persistence.has(key); } length(): number { - return this.persistance.size(); + return this.persistence.size(); } clear(): void { - this.persistance.clear(); + this.persistence.clear(); } } diff --git a/packages/lib/shared/src/cache/impl/TTLCache.ts b/packages/lib/shared/src/cache/impl/TTLCache.ts index 232300a7e..bf36a8374 100644 --- a/packages/lib/shared/src/cache/impl/TTLCache.ts +++ b/packages/lib/shared/src/cache/impl/TTLCache.ts @@ -1,4 +1,4 @@ -import { IPersistance } from '../persistance/IPersistance'; +import { IPersistance } from '../persistence/IPersistance'; import { ICache } from './ICache'; export type TTLCacheItem = { @@ -15,11 +15,11 @@ export class TTLCache implements ICache { constructor( capacity: number, ttl: number, - persistance: IPersistance>, + persistence: IPersistance>, ) { this.capacity = capacity; this.ttl = ttl; - this.persitance = persistance; + this.persitance = persistence; } get(key: string): T | undefined { diff --git a/packages/lib/shared/src/cache/persistance/IPersistance.ts b/packages/lib/shared/src/cache/persistence/IPersistance.ts similarity index 83% rename from packages/lib/shared/src/cache/persistance/IPersistance.ts rename to packages/lib/shared/src/cache/persistence/IPersistance.ts index 817885056..66fe1f769 100644 --- a/packages/lib/shared/src/cache/persistance/IPersistance.ts +++ b/packages/lib/shared/src/cache/persistence/IPersistance.ts @@ -1,4 +1,4 @@ -//Decouple the cache from the persistance layer +//Decouple the cache from the persistence layer export interface IPersistance { has(key: string): boolean; get(key: string): T | null; diff --git a/packages/lib/shared/src/cache/persistance/InMemory.ts b/packages/lib/shared/src/cache/persistence/InMemory.ts similarity index 55% rename from packages/lib/shared/src/cache/persistance/InMemory.ts rename to packages/lib/shared/src/cache/persistence/InMemory.ts index 41a425b40..8e13bb064 100644 --- a/packages/lib/shared/src/cache/persistance/InMemory.ts +++ b/packages/lib/shared/src/cache/persistence/InMemory.ts @@ -1,39 +1,39 @@ import { IPersistance } from './IPersistance'; //Simply store items in Memory export class InMemory implements IPersistance { - private readonly persistance: Map; + private readonly persistence: Map; - constructor(persistance: Map = new Map()) { - this.persistance = persistance; + constructor(persistence: Map = new Map()) { + this.persistence = persistence; } has(key: string): boolean { - return this.persistance.has(key); + return this.persistence.has(key); } keys(): IterableIterator { - return this.persistance.keys(); + return this.persistence.keys(); } get(key: string): T | null { - return this.persistance.get(key) || null; + return this.persistence.get(key) || null; } set(key: string, value: T): void { - this.persistance.set(key, value); + this.persistence.set(key, value); } delete(key: string): void { - this.persistance.delete(key); + this.persistence.delete(key); } size(): number { - return this.persistance.size; + return this.persistence.size; } clear(): void { - this.persistance.clear(); + this.persistence.clear(); } serialize(): string { - return JSON.stringify(Array.from(this.persistance.entries())); + return JSON.stringify(Array.from(this.persistence.entries())); } static fromJson(json: string): InMemory { diff --git a/packages/lib/shared/src/cache/persistance/LocalStorage.ts b/packages/lib/shared/src/cache/persistence/LocalStorage.ts similarity index 100% rename from packages/lib/shared/src/cache/persistance/LocalStorage.ts rename to packages/lib/shared/src/cache/persistence/LocalStorage.ts diff --git a/packages/offchain-resolver/package.json b/packages/offchain-resolver/package.json index 060db4c95..017a13fe3 100644 --- a/packages/offchain-resolver/package.json +++ b/packages/offchain-resolver/package.json @@ -30,8 +30,8 @@ "docker:up": "docker compose up -d", "test": "yarn docker:up && yarn prisma:migrate && yarn mocha --require ts-node/register --extension .test.ts --recursive ./src", "start": "yarn prisma:migrate && yarn ts-node --transpile-only ./src/index.ts", - "build": "yarn prisma generate --schema=./src/persistance/schema.prisma && yarn tsc", - "prisma:migrate": "yarn prisma migrate dev --name init --schema src/persistance/schema.prisma" + "build": "yarn prisma generate --schema=./src/persistence/schema.prisma && yarn tsc", + "prisma:migrate": "yarn prisma migrate dev --name init --schema src/persistence/schema.prisma" }, "devDependencies": { "@istanbuljs/nyc-config-typescript": "^1.0.2", diff --git a/packages/offchain-resolver/src/http/handleCcipRequest/handler/handleAddr.ts b/packages/offchain-resolver/src/http/handleCcipRequest/handler/handleAddr.ts index 0435f9bf9..db7995408 100644 --- a/packages/offchain-resolver/src/http/handleCcipRequest/handler/handleAddr.ts +++ b/packages/offchain-resolver/src/http/handleCcipRequest/handler/handleAddr.ts @@ -1,5 +1,5 @@ import { ethers } from 'ethers'; -import { IDatabase } from '../../../persistance/IDatabase'; +import { IDatabase } from '../../../persistence/IDatabase'; import { interceptAddr } from './intercept'; import { logDebug } from '@dm3-org/dm3-lib-shared'; diff --git a/packages/offchain-resolver/src/http/handleCcipRequest/handler/resolveText.ts b/packages/offchain-resolver/src/http/handleCcipRequest/handler/resolveText.ts index 91846cbef..dd16a3c70 100644 --- a/packages/offchain-resolver/src/http/handleCcipRequest/handler/resolveText.ts +++ b/packages/offchain-resolver/src/http/handleCcipRequest/handler/resolveText.ts @@ -1,4 +1,4 @@ -import { IDatabase } from '../../../persistance/IDatabase'; +import { IDatabase } from '../../../persistence/IDatabase'; import { PROFILE_RECORD_NAME } from '@dm3-org/dm3-lib-profile'; import { stringify } from '@dm3-org/dm3-lib-shared'; import { interceptTextRecord } from './intercept'; diff --git a/packages/offchain-resolver/src/http/profile.test.ts b/packages/offchain-resolver/src/http/profile.test.ts index c6ecb1517..4e2293002 100644 --- a/packages/offchain-resolver/src/http/profile.test.ts +++ b/packages/offchain-resolver/src/http/profile.test.ts @@ -9,13 +9,13 @@ import express from 'express'; import request from 'supertest'; import winston from 'winston'; -import { getDatabase, getDbClient } from '../persistance/getDatabase'; -import { IDatabase } from '../persistance/IDatabase'; +import { getDatabase, getDbClient } from '../persistence/getDatabase'; +import { IDatabase } from '../persistence/IDatabase'; import { profile } from './profile'; import { PrismaClient } from '@prisma/client'; import * as dotenv from 'dotenv'; -import { clearDb } from '../persistance/clearDb'; +import { clearDb } from '../persistence/clearDb'; import { expect } from 'chai'; import { sign } from '@dm3-org/dm3-lib-crypto'; diff --git a/packages/offchain-resolver/src/http/resolverEndpoint.test.ts b/packages/offchain-resolver/src/http/resolverEndpoint.test.ts index f464e400c..43b6e470d 100644 --- a/packages/offchain-resolver/src/http/resolverEndpoint.test.ts +++ b/packages/offchain-resolver/src/http/resolverEndpoint.test.ts @@ -10,9 +10,9 @@ import { expect } from 'chai'; import { ethers } from 'ethers'; import express from 'express'; import request from 'supertest'; -import { IDatabase } from '../persistance/IDatabase'; -import { clearDb } from '../persistance/clearDb'; -import { getDatabase, getDbClient } from '../persistance/getDatabase'; +import { IDatabase } from '../persistence/IDatabase'; +import { clearDb } from '../persistence/clearDb'; +import { getDatabase, getDbClient } from '../persistence/getDatabase'; import { encodeEnsName } from './handleCcipRequest/dns/encodeEnsName'; import { Interceptor } from './handleCcipRequest/handler/intercept'; import { profile } from './profile'; diff --git a/packages/offchain-resolver/src/http/types.ts b/packages/offchain-resolver/src/http/types.ts index c70e1db31..9796dd2b0 100644 --- a/packages/offchain-resolver/src/http/types.ts +++ b/packages/offchain-resolver/src/http/types.ts @@ -1,5 +1,5 @@ import { ethers } from 'ethers'; -import { IDatabase } from '../persistance/IDatabase'; +import { IDatabase } from '../persistence/IDatabase'; export interface WithLocals { locals: Record & diff --git a/packages/offchain-resolver/src/index.ts b/packages/offchain-resolver/src/index.ts index cb0180a45..d36224d7b 100644 --- a/packages/offchain-resolver/src/index.ts +++ b/packages/offchain-resolver/src/index.ts @@ -4,7 +4,7 @@ import * as dotenv from 'dotenv'; import express from 'express'; import http from 'http'; import { resolverEndpoint } from './http/resolverEndpoint'; -import { getDatabase } from './persistance/getDatabase'; +import { getDatabase } from './persistence/getDatabase'; import { getWeb3Provider } from './utils/getWeb3Provider'; import { profile } from './http/profile'; diff --git a/packages/offchain-resolver/src/persistance/IDatabase.ts b/packages/offchain-resolver/src/persistence/IDatabase.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/IDatabase.ts rename to packages/offchain-resolver/src/persistence/IDatabase.ts diff --git a/packages/offchain-resolver/src/persistance/clearDb.ts b/packages/offchain-resolver/src/persistence/clearDb.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/clearDb.ts rename to packages/offchain-resolver/src/persistence/clearDb.ts diff --git a/packages/offchain-resolver/src/persistance/getDatabase.ts b/packages/offchain-resolver/src/persistence/getDatabase.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/getDatabase.ts rename to packages/offchain-resolver/src/persistence/getDatabase.ts diff --git a/packages/offchain-resolver/src/persistance/migrations/20230825081456_init/migration.sql b/packages/offchain-resolver/src/persistence/migrations/20230825081456_init/migration.sql similarity index 100% rename from packages/offchain-resolver/src/persistance/migrations/20230825081456_init/migration.sql rename to packages/offchain-resolver/src/persistence/migrations/20230825081456_init/migration.sql diff --git a/packages/offchain-resolver/src/persistance/migrations/20230911125858_init/migration.sql b/packages/offchain-resolver/src/persistence/migrations/20230911125858_init/migration.sql similarity index 100% rename from packages/offchain-resolver/src/persistance/migrations/20230911125858_init/migration.sql rename to packages/offchain-resolver/src/persistence/migrations/20230911125858_init/migration.sql diff --git a/packages/offchain-resolver/src/persistance/migrations/20230912142914_init/migration.sql b/packages/offchain-resolver/src/persistence/migrations/20230912142914_init/migration.sql similarity index 100% rename from packages/offchain-resolver/src/persistance/migrations/20230912142914_init/migration.sql rename to packages/offchain-resolver/src/persistence/migrations/20230912142914_init/migration.sql diff --git a/packages/offchain-resolver/src/persistance/migrations/migration_lock.toml b/packages/offchain-resolver/src/persistence/migrations/migration_lock.toml similarity index 100% rename from packages/offchain-resolver/src/persistance/migrations/migration_lock.toml rename to packages/offchain-resolver/src/persistence/migrations/migration_lock.toml diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileAliasByAddress.ts b/packages/offchain-resolver/src/persistence/profile/getProfileAliasByAddress.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileAliasByAddress.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileAliasByAddress.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileContainer.test.ts b/packages/offchain-resolver/src/persistence/profile/getProfileContainer.test.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileContainer.test.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileContainer.test.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileContainer.ts b/packages/offchain-resolver/src/persistence/profile/getProfileContainer.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileContainer.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileContainer.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileContainerByAddress.test.ts b/packages/offchain-resolver/src/persistence/profile/getProfileContainerByAddress.test.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileContainerByAddress.test.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileContainerByAddress.test.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileContainerByAddress.ts b/packages/offchain-resolver/src/persistence/profile/getProfileContainerByAddress.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileContainerByAddress.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileContainerByAddress.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getProfileContainerForAlias.ts b/packages/offchain-resolver/src/persistence/profile/getProfileContainerForAlias.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getProfileContainerForAlias.ts rename to packages/offchain-resolver/src/persistence/profile/getProfileContainerForAlias.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getUserProfile.ts b/packages/offchain-resolver/src/persistence/profile/getUserProfile.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getUserProfile.ts rename to packages/offchain-resolver/src/persistence/profile/getUserProfile.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getUserProfilesByAddress.test.ts b/packages/offchain-resolver/src/persistence/profile/getUserProfilesByAddress.test.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getUserProfilesByAddress.test.ts rename to packages/offchain-resolver/src/persistence/profile/getUserProfilesByAddress.test.ts diff --git a/packages/offchain-resolver/src/persistance/profile/getUserProfilesByAddress.ts b/packages/offchain-resolver/src/persistence/profile/getUserProfilesByAddress.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/getUserProfilesByAddress.ts rename to packages/offchain-resolver/src/persistence/profile/getUserProfilesByAddress.ts diff --git a/packages/offchain-resolver/src/persistance/profile/index.ts b/packages/offchain-resolver/src/persistence/profile/index.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/index.ts rename to packages/offchain-resolver/src/persistence/profile/index.ts diff --git a/packages/offchain-resolver/src/persistance/profile/removeAlias.ts b/packages/offchain-resolver/src/persistence/profile/removeAlias.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/removeAlias.ts rename to packages/offchain-resolver/src/persistence/profile/removeAlias.ts diff --git a/packages/offchain-resolver/src/persistance/profile/removeUserProfile.test.ts b/packages/offchain-resolver/src/persistence/profile/removeUserProfile.test.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/removeUserProfile.test.ts rename to packages/offchain-resolver/src/persistence/profile/removeUserProfile.test.ts diff --git a/packages/offchain-resolver/src/persistance/profile/removeUserProfile.ts b/packages/offchain-resolver/src/persistence/profile/removeUserProfile.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/removeUserProfile.ts rename to packages/offchain-resolver/src/persistence/profile/removeUserProfile.ts diff --git a/packages/offchain-resolver/src/persistance/profile/setAlias.ts b/packages/offchain-resolver/src/persistence/profile/setAlias.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/setAlias.ts rename to packages/offchain-resolver/src/persistence/profile/setAlias.ts diff --git a/packages/offchain-resolver/src/persistance/profile/setUserProfile.test.ts b/packages/offchain-resolver/src/persistence/profile/setUserProfile.test.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/setUserProfile.test.ts rename to packages/offchain-resolver/src/persistence/profile/setUserProfile.test.ts diff --git a/packages/offchain-resolver/src/persistance/profile/setUserProfile.ts b/packages/offchain-resolver/src/persistence/profile/setUserProfile.ts similarity index 100% rename from packages/offchain-resolver/src/persistance/profile/setUserProfile.ts rename to packages/offchain-resolver/src/persistence/profile/setUserProfile.ts diff --git a/packages/offchain-resolver/src/persistance/schema.prisma b/packages/offchain-resolver/src/persistence/schema.prisma similarity index 100% rename from packages/offchain-resolver/src/persistance/schema.prisma rename to packages/offchain-resolver/src/persistence/schema.prisma