static models(config) {
    const result = reduce(
      modules.load(config.authenticators),
      (models, module, authenticatorName) =>
        assign(
          {},
          models,
          flow(
            arrify, // modules may be a single authenticator or an array of authenticators
            modules =>
              modules.map(
                Module =>
                  Module.models(config.authenticators[authenticatorName]), // pass the authenticator its config
              ),
            models => assign({}, ...models),
            models =>
              mapKeys(
                models,
                (model, modelName) => `${authenticatorName}$${modelName}`, // insert the model into the authenticator models namespace
              ),
            models =>
              mapValues(models, (model, modelName) => {
                if (model.options.tableName) {
                  model.options.tableName = `${authenticatorName}$${
                    model.options.tableName
                  }`; // insert the model into the authenticator models namespace
                }
                return model;
              }),
          )(module),
        ),
      models,
    );
    return result;
  }
/**
   * Return models for both this plugin and all authenticators
   *
   * @param {Object} config
   * @return {Object}
   */
Return models for both this plugin and all authenticators
@param {Object} config
@return {Object}
Return models for both this plugin and all authenticators @param { Object } config @return { Object }
static models(config) {
    const result = reduce(
      modules.load(config.authenticators),
      (models, module, authenticatorName) =>
        assign(
          {},
          models,
          flow(
            arrify, 
            modules =>
              modules.map(
                Module =>
                  Module.models(config.authenticators[authenticatorName]), 
              ),
            models => assign({}, ...models),
            models =>
              mapKeys(
                models,
                (model, modelName) => `${authenticatorName}$${modelName}`, 
              ),
            models =>
              mapValues(models, (model, modelName) => {
                if (model.options.tableName) {
                  model.options.tableName = `${authenticatorName}$${
                    model.options.tableName
                  }`; 
                }
                return model;
              }),
          )(module),
        ),
      models,
    );
    return result;
  }
static models ( config ) { const result = reduce ( modules . load ( config . authenticators ) , ( models , module , authenticatorName ) => assign ( { } , models , flow ( arrify , modules => modules . map ( Module => Module . models ( config . authenticators [ authenticatorName ] ) , ) , models => assign ( { } , ... models ) , models => mapKeys ( models , ( model , modelName ) => ` ${ authenticatorName } ${ modelName } ` , ) , models => mapValues ( models , ( model , modelName ) => { if ( model . options . tableName ) { model . options . tableName = ` ${ authenticatorName } ${ model . options . tableName } ` ; } return model ; } ) , ) ( module ) , ) , models , ) ; return result ; }
Return models for both this plugin and all authenticators
 @param {Object} config
 @return {Object}
Return models for both this plugin and all authenticators @param { Object } config @return { Object }
// modules may be a single authenticator or an array of authenticators // pass the authenticator its config // insert the model into the authenticator models namespace // insert the model into the authenticator models namespace