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


TypeScript Tyr.parseUid方法代码示例

本文整理汇总了TypeScript中tyranid.Tyr.parseUid方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Tyr.parseUid方法的具体用法?TypeScript Tyr.parseUid怎么用?TypeScript Tyr.parseUid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tyranid.Tyr的用法示例。


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

示例1: validate

export function validate(plugin: GraclPlugin, uid: string) {
  try {
    Tyr.parseUid(uid);
  } catch (err) {
    if (
      /must be a single String of 12 bytes or a string of 24 hex characters/.test(
        err.message
      )
    ) {
      plugin.error(`Invalid uid: ${uid}`);
    }
    throw err;
  }
}
开发者ID:CrossLead,项目名称:tyranid-gracl,代码行数:14,代码来源:extractIdAndModel.ts

示例2: extractIdAndModel

export function extractIdAndModel(
  plugin: GraclPlugin,
  doc: Tyr.Document | string
) {
  if (typeof doc === 'string') {
    validate(plugin, doc);
    const components: { [key: string]: {} } = Tyr.parseUid(doc) || {};
    return {
      $uid: doc as string,
      $model: components.collection as Tyr.CollectionInstance
    };
  } else {
    validate(plugin, doc.$uid);
    return {
      $uid: doc.$uid as string,
      $model: doc.$model
    };
  }
}
开发者ID:CrossLead,项目名称:tyranid-gracl,代码行数:19,代码来源:extractIdAndModel.ts

示例3: query


//.........这里部分代码省略.........
      } else {
        debugSubjectGraph.set(node.getId(), []);
      }
    }
  }

  // extract all collections that have a relevant permission set for the requested resource
  for (const resource of resourceArray) {
    const { collection, resourcePermissions } = resource;
    const collectionName = collection.def.name;
    const isQueriedCollection = queriedCollectionName === collectionName;

    let queryRestrictionSet = false;
    if (
      queriedCollectionLinkFields.has(collectionName) ||
      isQueriedCollection
    ) {
      const permissionArray = [...resourcePermissions.values()];

      for (const permission of permissionArray) {
        const result = getAccess(permission);
        switch (result.access) {
          // access needs to be exactly true or false
          case true:
          case false:
            const key = result.access ? 'positive' : 'negative';
            const uid = permission.resourceId;
            // if a permission was set by a collection of higher depth, keep it...
            if (alreadySet.has(uid)) {
              continue;
            } else {
              alreadySet.add(uid);
            }
            const resourceObjectId = Tyr.parseUid(uid).id;

            if (debug) {
              (result.access ? debugGraphPositive : debugGraphNegative).set(
                resourceObjectId.toString(),
                {
                  permission: permission.$id as ObjectID,
                  subjectId: permission.subjectId,
                  collectionName: permission.resourceType,
                  ...result
                }
              );
            }

            const accessSet = queryMaps[key].get(collectionName) || new Set();
            if (!queryMaps[key].has(collectionName)) {
              queryMaps[key].set(collectionName, accessSet);
            }
            accessSet.add(resourceObjectId as string);
            break;
        }
        queryRestrictionSet = true;
      }
    } else {
      // otherwise, we need determine how to restricting a query of this object by
      // permissions concerning parents of this object...
      /**
        Example:

        SETUP: want to query for all posts from database, have permissions
          set for access to posts on posts, blogs, and organizations...

        - for the permissions set on posts specifically, we can just add something like...
开发者ID:tyranid-org,项目名称:tyranid,代码行数:67,代码来源:query.ts


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