minauth
Version:
A TypeScript library for building authentication systems on top of the Mina blockchain and other zero-knowledge proofs solutions.
34 lines • 1.3 kB
JavaScript
import { combineEncDec, tsToFpDecoder, tsToFpEncoder } from './encodedecoder.js';
import { fromFailablePromise } from '../utils/fp/taskeither.js';
export const outputValid = { isValid: true };
export const outputInvalid = (reason) => {
return {
isValid: false,
reason
};
};
// ts -> fp
/**
* Convert a plugin factory from the idiomatic typescript interface to the functional style
*/
export const tsToFpMinAuthPlugin = (i) => {
return {
__interface_tag: 'fp',
verifyAndGetOutput: (inp) => fromFailablePromise(() => i.verifyAndGetOutput(inp)),
checkOutputValidity: (o) => fromFailablePromise(() => i.checkOutputValidity(o)),
customRoutes: i.customRoutes
};
};
/**
* Convert a plugin factory from the idiomatic typescript interface to the functional style
*/
export const tsToFpMinAuthPluginFactory = (i) => {
return {
__interface_tag: 'fp',
configurationDec: tsToFpDecoder(i.configurationDec),
inputDecoder: tsToFpDecoder(i.inputDecoder),
outputEncDec: combineEncDec(tsToFpEncoder(i.outputEncDec), tsToFpDecoder(i.outputEncDec)),
initialize: (cfg, logger) => fromFailablePromise(() => i.initialize(cfg, logger).then(tsToFpMinAuthPlugin))
};
};
//# sourceMappingURL=plugintype.js.map