cloudfunctions/ClearingRedundantFolders/node_modules/@cloudbase/database/src/validate.ts

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

import {
  ErrorCode,
  WhereFilterOp,
  WhereFilterOpList,
  OrderByDirection,
  OrderDirectionList,
  FieldType
} from './constant'
import { Util } from './util'
import { QueryOption, UpdateOption } from './query'
import { ERRORS } from './const/code'
import { E } from './utils/utils'
import { getType } from './utils/type'
import { Point } from './geo'
import { CenterSphere } from './typings'

import { SYMBOL_GEO_POINT } from './helper/symbol'

const validOptionsKeys = ['limit', 'offset', 'projection', 'order', 'multiple', 'timeout']

/**
 * 校验模块
 *
 * @author haroldhu
 * @internal
 * multi, upsert, merge
 */
export class Validate {
  /**
   * 检测地址位置的点
   *
   * @param point   - 经纬度
   * @param degree  - 数值
   */
  static isGeopoint(point: 'latitude' | 'longitude', degree: number) {
    if (Util.whichType(degree) !== FieldType.Number) {
      throw new Error('Geo Point must be number type')
    }

    // 位置的绝对值
    const degreeAbs = Math.abs(degree)

    if (point === 'latitude' && degreeAbs > 90) {
      throw new Error('latitude should be a number ranges from -90 to 90')
    } else if (point === 'longitude' && degreeAbs > 180) {
      throw new Error('longitude should be a number ranges from -180 to 180')
    }
    return true
  }

  /**
   * 参数是否为整数
   *
   * @param param - 要验证的参数名
   * @param num   - 要验证的参数值
   */
  static isInteger(param: string, num: number): Boolean {
    if (!Number.isInteger(num)) {
      throw new Error(param + ErrorCode.IntergerError)
    }
后面还有 204 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。