@grexie/keystore
Advanced tools
Comparing version 0.1.17 to 0.1.18
@@ -55,2 +55,5 @@ "use strict"; | ||
const key = yield __classPrivateFieldGet(this, _persistor, "f").call(this, secret); | ||
if (!key) { | ||
return __classPrivateFieldGet(this, _secret, "f"); | ||
} | ||
yield __classPrivateFieldGet(this, _instances, "m", _setSecret).call(this, key.id, key.key); | ||
@@ -57,0 +60,0 @@ return __classPrivateFieldGet(this, _secret, "f"); |
@@ -11,3 +11,3 @@ /// <reference types="node" /> | ||
export interface Persistor<T> { | ||
(secret: T | null): PromiseLike<Key> | Key; | ||
(secret: T | null): PromiseLike<Key | null | undefined> | Key | null | undefined; | ||
} | ||
@@ -17,3 +17,3 @@ export interface KeyStore<T> extends EventEmitter { | ||
setSecret(secret: T | null): Promise<T | null>; | ||
rotateSecret(): Promise<T>; | ||
rotateSecret(): Promise<T | null>; | ||
restoreSecret(id: string): Promise<void>; | ||
@@ -25,7 +25,13 @@ } | ||
} | ||
export interface FactoryOptions<O extends Object, T> { | ||
export interface FactoryOptions<T, O extends Object = Object> { | ||
provider: Provider<O, T>; | ||
} | ||
export declare type Provider<O extends Object, T = any> = new (options: Omit<O, 'provider'> & ProviderOptions<T>) => KeyStore<T>; | ||
export declare type Factory<T> = <O extends Object>(options: O & FactoryOptions<O, T>) => KeyStore<T>; | ||
export declare type Factory<T> = <O extends Object>(options: O & FactoryOptions<T, O>) => KeyStore<T>; | ||
export declare const createKeyStoreFactory: <T>({ persistor, hydrator }: ProviderOptions<T>) => Factory<T>; | ||
interface KeyStoreOptions<T> { | ||
idField: string; | ||
create?: () => T; | ||
} | ||
export declare const createJSONKeyStoreFactory: <T>({ idField, create, }: KeyStoreOptions<T>) => Factory<T>; | ||
export {}; |
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __rest = (this && this.__rest) || function (s, e) { | ||
@@ -14,3 +23,3 @@ var t = {}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.createKeyStoreFactory = void 0; | ||
exports.createJSONKeyStoreFactory = exports.createKeyStoreFactory = void 0; | ||
const createKeyStoreFactory = ({ persistor, hydrator }) => (_a) => { | ||
@@ -22,1 +31,23 @@ var { provider: Provider } = _a, options = __rest(_a, ["provider"]); | ||
exports.createKeyStoreFactory = createKeyStoreFactory; | ||
const createJSONKeyStoreFactory = ({ idField, create, }) => (0, exports.createKeyStoreFactory)({ | ||
persistor(key) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (!key) { | ||
if (!create) { | ||
return; | ||
} | ||
key = create(); | ||
} | ||
return { | ||
id: key[idField], | ||
key: Buffer.from(JSON.stringify(key), 'utf8'), | ||
}; | ||
}); | ||
}, | ||
hydrator(buffer) { | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return JSON.parse(buffer.toString('utf8')); | ||
}); | ||
}, | ||
}); | ||
exports.createJSONKeyStoreFactory = createJSONKeyStoreFactory; |
{ | ||
"name": "@grexie/keystore", | ||
"version": "0.1.17", | ||
"version": "0.1.18", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": "github:grexie/keystore/packages/keystore", |
11159
221