当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript klay-core.modelAssertions类代码示例

本文整理汇总了TypeScript中klay-core.modelAssertions的典型用法代码示例。如果您正苦于以下问题:TypeScript modelAssertions类的具体用法?TypeScript modelAssertions怎么用?TypeScript modelAssertions使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了modelAssertions类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: addModel

  public addModel(kilnModel: IKilnModelInput): IKiln {
    modelAssertions.typeof(kilnModel.name, 'string', 'name')
    modelAssertions.ok(kilnModel.model.isKlayModel, 'model must be a klay model')
    modelAssertions.ok(!this._models.has(kilnModel.name), 'model with same name already exists')

    const meta = {plural: `${kilnModel.name}s`, ...kilnModel.meta}
    this._models.set(kilnModel.name, {...kilnModel, meta, extensions: new Map()})
    return this
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:9,代码来源:kiln.ts

示例2: findModel

export function findModel(model: IModel, pathToModel: string[]): IModel {
  let target = model

  const parts = pathToModel.slice()
  while (parts.length) {
    modelAssertions.typeof(target.spec.children, 'array', 'children')
    const nextPath = parts.shift()
    const found = (target.spec.children as IModelChild[]).find(child => child.path === nextPath)
    modelAssertions.ok(found, `could not find model child ${nextPath}`)
    target = found!.model
  }

  return target
}
开发者ID:patrickhulce,项目名称:klay,代码行数:14,代码来源:helpers.ts

示例3: addExtension

  public addExtension(input: IKilnExtensionInput<any>): IKiln {
    const {modelName, extension, defaultOptions} = input
    modelAssertions.typeof(extension.name, 'string', 'name')
    modelAssertions.typeof(extension.defaultOptions, 'object', 'options')
    modelAssertions.typeof(extension.build, 'function', 'build')

    if (modelName) {
      this._getModelOrThrow(modelName).extensions.set(extension.name, {extension, defaultOptions})
    } else {
      for (const kilnModel of this._models.values()) {
        kilnModel.extensions.set(extension.name, {extension, defaultOptions})
      }
    }

    return this
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:16,代码来源:kiln.ts

示例4: forEach

 forEach(rootModel.spec.db!.automanage, item => {
   if (item.phase === ValidationPhase.Database) return
   if (!eventMatches(item.event, event)) return
   modelAssertions.typeof(item.supplyWith, 'function')
   const model = findModel(rootModel, item.property)
   model.coerce(item.supplyWith as ICoerceFunction, item.phase)
 })
开发者ID:patrickhulce,项目名称:klay,代码行数:7,代码来源:helpers.ts

示例5:

 private _getExtensionInputOrThrow<TResult, TOptions>(
   modelName: string,
   extensionName: string,
 ): IKilnExtensionInput<TResult, TOptions> {
   const extension = this._getExtensionInput<TResult, TOptions>(modelName, extensionName)
   modelAssertions.ok(extension, `unable to find extension "${extensionName}"`)
   return extension!
 }
开发者ID:patrickhulce,项目名称:klay,代码行数:8,代码来源:kiln.ts

示例6: index

  public index(properties: IIndexPropertyInput[]): IDatabaseOptions {
    assertions.typeof(properties, 'array', 'index')
    assertions.ok(properties.length, 'must specify at least 1 property for index')
    properties.forEach((item, i) => {
      properties[i] = DatabaseOptions._determineIndex(item, i)
    })

    this.spec.index.push(properties as IIndexProperty[])
    return this
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:10,代码来源:options.ts

示例7: _determineIndex

  private static _determineIndex(property: IIndexPropertyInput, i: number): IIndexProperty {
    if (Array.isArray(property)) {
      return {property, direction: SortDirection.Ascending}
    }

    assertions.typeof(property, 'object')
    assertions.typeof(property.property, 'array', `index.${i}.property`)
    assertions.oneOf(property.direction, values(SortDirection), `index.${i}.property`)
    return property
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:10,代码来源:options.ts

示例8: automanage

  public automanage(property: IAutomanagePropertyInput): IDatabaseOptions {
    assertions.typeof(property, 'object', 'automanage')
    property.property = property.property || []
    property.phase = property.phase || ValidationPhase.Parse
    property.supplyWith = DatabaseOptions._determineSupplyWith(property.supplyWith)

    assertions.typeof(property.property, 'array', 'automanage.propertyPath')
    assertions.oneOf(property.event, values(DatabaseEvent), 'automanage.event')
    assertions.oneOf(property.phase, values(ValidationPhase), 'automanage.phase')

    this.spec.automanage.push(property as IAutomanageProperty)
    return this
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:13,代码来源:options.ts

示例9: constrain

  public constrain(input: IConstraintInput): IDatabaseOptions {
    assertions.typeof(input, 'object', 'constrain')
    input.properties = input.properties || [[]]
    input.meta = input.meta || {}

    assertions.typeof(input.properties, 'array', 'constrain.propertyPaths')
    assertions.ok(input.properties.length, 'must specify at least 1 property for constrain')
    assertions.oneOf(input.type, values(ConstraintType), 'constrain.type')
    assertions.typeof(input.meta, 'object')

    const constrain = input as IConstraint
    constrain.name = DatabaseOptions.computeConstraintName(constrain)
    constrain.meta = DatabaseOptions.computeMetaProperties(constrain)
    this.spec.constrain.push(constrain)
    return this
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:16,代码来源:options.ts

示例10: _determineSupplyWith

  private static _determineSupplyWith(
    supplyWith: ISupplyWithFunction | SupplyWithPreset,
  ): ISupplyWithFunction | SupplyWithPreset {
    if (supplyWith === SupplyWithPreset.AutoIncrement || typeof supplyWith === 'function') {
      return supplyWith
    }

    const supplyWithFunc = supplyWithPresets[supplyWith]
    assertions.ok(supplyWithFunc, 'invalid automanage supplyWith')
    return supplyWithFunc
  }
开发者ID:patrickhulce,项目名称:klay,代码行数:11,代码来源:options.ts


注:本文中的klay-core.modelAssertions类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。