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


TypeScript ts-invariant.invariant类代码示例

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


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

示例1: match

  public match(
    idValue: IdValue,
    typeCondition: string,
    context: ReadStoreContext,
  ): boolean | 'heuristic' {
    const obj = context.store.get(idValue.id);

    if (!obj) {
      // https://github.com/apollographql/apollo-client/pull/3507
      return idValue.id === 'ROOT_QUERY';
    }

    if (!obj.__typename) {
      if (shouldWarn()) {
        invariant.warn(`You're using fragments in your queries, but either don't have the addTypename:
  true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.
   Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client
   can accurately match fragments.`);
        invariant.warn(
          'Could not find __typename on Fragment ',
          typeCondition,
          obj,
        );
        invariant.warn(
          `DEPRECATION WARNING: using fragments without __typename is unsupported behavior ` +
            `and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.`,
        );
      }

      return 'heuristic';
    }

    if (obj.__typename === typeCondition) {
      return true;
    }

    // XXX here we reach an issue - we don't know if this fragment should match or not. It's either:
    // 1. A fragment on a non-matching concrete type or interface or union
    // 2. A fragment on a matching interface or union
    // If it's 1, we don't want to return anything, if it's 2 we want to match. We can't tell the
    // difference, so we warn the user, but still try to match it (backcompat).
    if (shouldWarn()) {
      invariant.error(
        'You are using the simple (heuristic) fragment matcher, but your ' +
          'queries contain union or interface types. Apollo Client will not be ' +
          'able to accurately map fragments. To make this error go away, use ' +
          'the `IntrospectionFragmentMatcher` as described in the docs: ' +
          'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher',
      );
    }

    return 'heuristic';
  }
开发者ID:apollostack,项目名称:apollo-client,代码行数:53,代码来源:fragmentMatcher.ts

示例2: clientQuery

 // Client queries contain everything in the incoming document (if a @client
 // directive is found).
 public clientQuery(document: DocumentNode) {
   if (hasDirectives(['client'], document)) {
     if (this.resolvers) {
       return document;
     }
     invariant.warn(
       'Found @client directives in a query but no ApolloClient resolvers ' +
       'were specified. This means ApolloClient local resolver handling ' +
       'has been disabled, and @client directives will be passed through ' +
       'to your link chain.',
     );
   }
   return null;
 }
开发者ID:apollostack,项目名称:apollo-client,代码行数:16,代码来源:LocalState.ts

示例3: onError

 : onError(({ graphQLErrors, networkError }) => {
     if (graphQLErrors) {
       graphQLErrors.map(({ message, locations, path }) =>
         // tslint:disable-next-line
         invariant.warn(
           `[GraphQL error]: Message: ${message}, Location: ` +
             `${locations}, Path: ${path}`,
         ),
       );
     }
     if (networkError) {
       // tslint:disable-next-line
       invariant.warn(`[Network error]: ${networkError}`);
     }
   });
开发者ID:apollostack,项目名称:apollo-client,代码行数:15,代码来源:index.ts

示例4: constructor

  constructor(config: PresetConfig = {}) {
    if (config) {
      const diff = Object.keys(config).filter(
        key => PRESET_CONFIG_KEYS.indexOf(key) === -1,
      );

      if (diff.length > 0) {
        invariant.warn(
          'ApolloBoost was initialized with unsupported options: ' +
            `${diff.join(' ')}`,
        );
      }
    }

    const {
      request,
      uri,
      credentials,
      headers,
      fetch,
      fetchOptions,
      clientState,
      cacheRedirects,
      onError: errorCallback,
      name,
      version,
      resolvers,
      typeDefs,
      fragmentMatcher,
    } = config;

    let { cache } = config;

    invariant(
      !cache || !cacheRedirects,
      'Incompatible cache configuration. If providing `cache` then ' +
        'configure the provided instance with `cacheRedirects` instead.',
    );

    if (!cache) {
      cache = cacheRedirects
        ? new InMemoryCache({ cacheRedirects })
        : new InMemoryCache();
    }

    const errorLink = errorCallback
      ? onError(errorCallback)
      : onError(({ graphQLErrors, networkError }) => {
          if (graphQLErrors) {
            graphQLErrors.map(({ message, locations, path }) =>
              // tslint:disable-next-line
              invariant.warn(
                `[GraphQL error]: Message: ${message}, Location: ` +
                  `${locations}, Path: ${path}`,
              ),
            );
          }
          if (networkError) {
            // tslint:disable-next-line
            invariant.warn(`[Network error]: ${networkError}`);
          }
        });

    const requestHandler = request
      ? new ApolloLink(
          (operation, forward) =>
            new Observable(observer => {
              let handle: any;
              Promise.resolve(operation)
                .then(oper => request(oper))
                .then(() => {
                  handle = forward(operation).subscribe({
                    next: observer.next.bind(observer),
                    error: observer.error.bind(observer),
                    complete: observer.complete.bind(observer),
                  });
                })
                .catch(observer.error.bind(observer));

              return () => {
                if (handle) {
                  handle.unsubscribe();
                }
              };
            }),
        )
      : false;

    const httpLink = new HttpLink({
      uri: uri || '/graphql',
      fetch,
      fetchOptions: fetchOptions || {},
      credentials: credentials || 'same-origin',
      headers: headers || {},
    });

    const link = ApolloLink.from([errorLink, requestHandler, httpLink].filter(
      x => !!x,
    ) as ApolloLink[]);

//.........这里部分代码省略.........
开发者ID:apollostack,项目名称:apollo-client,代码行数:101,代码来源:index.ts

示例5:

 graphQLErrors.map(({ message, locations, path }) =>
   // tslint:disable-next-line
   invariant.warn(
     `[GraphQL error]: Message: ${message}, Location: ` +
       `${locations}, Path: ${path}`,
   ),
开发者ID:apollostack,项目名称:apollo-client,代码行数:6,代码来源:index.ts


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