本文整理汇总了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;未经允许,请勿转载。 |
请发表评论