當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript klay-db.getPrimaryKeyField函數代碼示例

本文整理匯總了TypeScript中klay-db.getPrimaryKeyField函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getPrimaryKeyField函數的具體用法?TypeScript getPrimaryKeyField怎麽用?TypeScript getPrimaryKeyField使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了getPrimaryKeyField函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: paramifyModel

export function paramifyModel(original: IModel, options?: IParamifyOptions): IModel {
  const model = original.clone()
  const pkField = getPrimaryKeyField(original)
  const paramName = (options && options.idParamName) || pkField
  const children = model.spec.children as IModelChild[]
  const pkModel = children
    .find(child => child.path === pkField)!
    .model.strict(false)
    .required()
  model.spec = {}
  return model.type(ModelType.Object).children({[paramName]: pkModel})
}
開發者ID:patrickhulce,項目名稱:klay,代碼行數:12,代碼來源:transform-model.ts

示例2: addForeignKeys

export function addForeignKeys(
  modelInProgress: Sequelize.DefineAttributes,
  model: IModel,
  kiln: IKiln,
): void {
  const constraints = model.spec.db!.constrain
  for (const constraint of constraints) {
    if (constraint.type !== ConstraintType.Reference) {
      continue
    }

    assert.ok(constraint.properties.length === 1, 'foreign key must be single field')
    const fkName = getFlattenedPath(constraint.properties[0])
    const fkDefinition = modelInProgress[fkName] as Sequelize.DefineAttributeColumnOptions
    const sqlExecutor = kiln.build<ISQLExecutor>(constraint.meta.referencedModel!, SQL_EXECUTOR)
    fkDefinition.references = {
      key: getPrimaryKeyField(sqlExecutor.kilnModel.model),
      model: sqlExecutor.sequelizeModel,
    }
  }
}
開發者ID:patrickhulce,項目名稱:klay,代碼行數:21,代碼來源:constraints.ts

示例3: lookupActionTarget

    const arrayModel = defaultModelContext
      .array()
      .children(model.model)
      .required()
      .strict()
    return options.byList ? arrayModel : model.model
  },
  lookupActionTarget(
    kilnModel: IKilnModel,
    options: IActionOptions,
    executor: IDatabaseExecutor,
  ): IAnontatedHandler | undefined {
    const actionType = (this as any).type
    if (!actionTypesWithTarget.has(actionType)) return undefined

    const pkField = options.idParamName || getPrimaryKeyField(kilnModel.model)
    const getPkFromItem = (item: any) => (typeof item === 'object' ? item[pkField] : item)

    return async function(
      req: express.Request,
      res: express.Response,
      next: express.NextFunction,
    ): Promise<void> {
      const params = req.validated!.params
      const body = req.validated!.body

      if (options.byList) {
        const ids = (body as any[]).map(getPkFromItem)
        req.actionTarget = await Promise.all(ids.map(id => executor.findByIdOrThrow(id)))
      } else {
        req.actionTarget = await executor.findByIdOrThrow(
開發者ID:patrickhulce,項目名稱:klay,代碼行數:31,代碼來源:action.ts

示例4: addPrimaryKey

export function addPrimaryKey(modelInProgress: Sequelize.DefineAttributes, model: IModel): void {
  const pkName = getPrimaryKeyField(model)
  const pkDefinition = modelInProgress[pkName] as Sequelize.DefineAttributeColumnOptions
  pkDefinition.primaryKey = true
  pkDefinition.allowNull = false
}
開發者ID:patrickhulce,項目名稱:klay,代碼行數:6,代碼來源:constraints.ts

示例5: getAffectedCriteriaValues

   byId: true,
   byList: false,
   idParamName: undefined,
 },
 getAffectedCriteriaValues(model: IKilnModel, options: IActionOptions): GetCriteriaValues {
   return function(req: Request, property: string): AuthCriteriaValue[] {
     const items: any[] = [].concat(req.actionTarget)
     return items.map(item => item[property])
   }
 },
 paramsModel(kilnModel: IKilnModel, options: IActionOptions): IModel | undefined {
   return options.byId ? paramifyModel(kilnModel.model, options) : undefined
 },
 bodyModel(kilnModel: IKilnModel, options: IActionOptions): IModel | undefined {
   if (options.byId) return
   const pkField = getPrimaryKeyField(kilnModel.model)
   const pkModel = findModel(kilnModel.model, [pkField])
   const arrayPkModel = defaultModelContext
     .array()
     .children(pkModel)
     .required()
   return options.byList ? arrayPkModel : pkModel
 },
 responseModel(): undefined {
   return undefined
 },
 handler(
   kilnModel: IKilnModel,
   options: IActionOptions,
   executor: IDatabaseExecutor,
 ): IAnontatedHandler {
開發者ID:patrickhulce,項目名稱:klay,代碼行數:31,代碼來源:destroy.ts


注:本文中的klay-db.getPrimaryKeyField函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。