Skip to content

Commit

Permalink
feat: 🎸 bring in typings from DT
Browse files Browse the repository at this point in the history
  • Loading branch information
damusix committed May 31, 2024
1 parent b4e5728 commit fd4c372
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 1 deletion.
33 changes: 33 additions & 0 deletions lib/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { ClientApi, ClientOptions } from '@hapi/catbox';

interface Engine<T> extends ClientApi<T> {}

declare class Engine<T> implements ClientApi<T> {
constructor(options?: Engine.Options);
}

declare namespace Engine {
interface Options extends ClientOptions {
/**
* Sets an upper limit on the number of bytes that can be stored in the cache.
* Once this limit is reached no additional items will be added to the cache until some expire.
* The utilized memory calculation is a rough approximation and must not be relied on.
* @default 104857600 (100MB).
*/
maxByteSize?: number;
/**
* The minimum number of milliseconds in between each cache cleanup.
* @default 1000 (1 second)
*/
minCleanupIntervalMsec?: number;
/**
* by default, buffers stored in the cache with allowMixedContent set to true are copied when they are set but not when they are retrieved.
* This means a change to the buffer returned by a get() will change the value in the cache. To prevent this,
* set cloneBuffersOnGet to true to always return a copy of the cached buffer.
* @default false
*/
cloneBuffersOnGet?: boolean;
}
}

export { Engine };
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"name": "@hapi/catbox-memory",
"description": "Memory adapter for catbox",
"version": "6.0.1",
"version": "6.0.2",
"repository": "git://github.com/hapijs/catbox-memory",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"files": [
"lib"
],
Expand Down
48 changes: 48 additions & 0 deletions test/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import { Client } from '@hapi/catbox';
import { Engine as CatboxMemory } from '..';

type MyValue = {
a: string;
b: number;
};

const client = new CatboxMemory<boolean>({
cloneBuffersOnGet: false,
maxByteSize: 1024,
minCleanupIntervalMsec: 1000,
});

const client2 = new CatboxMemory<MyValue>();

const catboxMemoryOptions: CatboxMemory.Options = {
cloneBuffersOnGet: false,
maxByteSize: 1024,
minCleanupIntervalMsec: 1000,
};

const client3 = new Client<string>(CatboxMemory, catboxMemoryOptions);

(async () => {

const x = await client.get({
id: 'x',
segment: 's',
})

x?.item === true;

const y = await client2.get({
id: 'y',
segment: 's',
})

y?.item.a === 'a';
y?.item.b === 1;

const z = await client3.get({
id: 'z',
segment: 's',
});

z?.item === 'z';
})()

0 comments on commit fd4c372

Please sign in to comment.