All files / src configureAuthManagement.ts

100% Statements 19/19
75% Branches 3/4
75% Functions 3/4
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 661x                 1x   1x   1x   1x   1x       1x 397x                               397x     1x       397x   397x   397x 397x 397x             397x   397x       1x  
import makeDebug from 'debug';
 
import actionServiceClassMap from './helpers/action-service-class-map';
import {
  AuthenticationManagementAction,
  AuthenticationManagementConfigureOptions,
  AuthenticationManagementServiceOptions,
  AuthenticationManagementServiceOptionsDefault
} from './types';
import { AuthenticationManagementService } from './services/AuthenticationManagementService';
import { Application } from '@feathersjs/feathers';
import { makeDefaultOptions } from './services';
 
const debug = makeDebug('authLocalMgnt:service');
 
const defaultPath = 'authManagement';
 
export const defaultConfigureOptions = {
  path: defaultPath
};
 
export const makeDefaultConfigureOptions = (): AuthenticationManagementConfigureOptions => {
  const defaultServiceOptions: AuthenticationManagementServiceOptionsDefault = makeDefaultOptions([
    'service',
    'notifier',
    'longTokenLen',
    'shortTokenLen',
    'shortTokenDigits',
    'resetDelay',
    'delay',
    'resetAttempts',
    'reuseResetToken',
    'identifyUserProps',
    'sanitizeUserForClient',
    'skipIsVerifiedCheck',
    'passwordField'
  ]);
 
  return Object.assign({}, defaultServiceOptions, defaultConfigureOptions);
};
 
export default function authenticationLocalManagement (
  providedOptions?: Partial<AuthenticationManagementConfigureOptions>,
  docs?: Record<string, unknown>
): (app: Application) => void {
  debug('service being configured.');
 
  docs ??= {};
 
  return function (app) {
    const defaultOptions = makeDefaultConfigureOptions();
    const options: AuthenticationManagementServiceOptions & AuthenticationManagementConfigureOptions = Object.assign(
      {},
      defaultOptions,
      providedOptions,
      {
        app
      });
    const { path } = options;
 
    app.use(options.path, new AuthenticationManagementService(options, docs));
  };
}
 
export { AuthenticationManagementService };