MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/ai_allyindian_com/node_modules/mongoose/lib/helpers/schema/getPath.js
'use strict';

const numberRE = /^\d+$/;

/**
 * Behaves like `Schema#path()`, except for it also digs into arrays without
 * needing to put `.0.`, so `getPath(schema, 'docArr.elProp')` works.
 * @api private
 */

module.exports = function getPath(schema, path, discriminatorValueMap) {
  let schematype = schema.path(path);
  if (schematype != null) {
    return schematype;
  }
  const pieces = path.split('.');
  let cur = '';
  let isArray = false;

  for (const piece of pieces) {
    if (isArray && numberRE.test(piece)) {
      continue;
    }
    cur = cur.length === 0 ? piece : cur + '.' + piece;

    schematype = schema.path(cur);
    if (schematype != null && schematype.schema) {
      schema = schematype.schema;
      if (!isArray && schematype.$isMongooseDocumentArray) {
        isArray = true;
      }
      if (discriminatorValueMap && discriminatorValueMap[cur]) {
        schema = schema.discriminators[discriminatorValueMap[cur]] ?? schema;
      }
      cur = '';
    }
  }

  return schematype;
};