hud-ai
Version:
Hud.ai API Client
26 lines (22 loc) • 866 B
text/typescript
import { defaultsDeep } from 'lodash';
import * as joi from 'joi';
import { HudAiError } from './HudAiError';
import { HudAiClientConfiguration } from '../HudAiClient';
import { defaultAxiosConfig } from '../RequestManager';
export const Schema = {
clientId: joi.string().guid().required(),
clientSecret: joi.string().guid(),
redirectUri: joi.string().uri(),
baseApiUrl: joi.string().uri(),
baseAuthUrl: joi.string().uri(),
request: joi.object()
};
export function Factory (config: HudAiClientConfiguration): HudAiClientConfiguration {
const validation = joi.validate(config, Schema);
if (validation.error) throw new HudAiError(validation.error.annotate());
return defaultsDeep(config, {
baseApiUrl: 'https://api.hud.ai/v1',
baseAuthUrl: 'https://accounts.hud.ai',
request: defaultAxiosConfig
});
}