有没有办法从包裹中取出 Apollo 类型的防护装置?

Posted

技术标签:

【中文标题】有没有办法从包裹中取出 Apollo 类型的防护装置?【英文标题】:Is there a way to get Apollo type guards out from a package? 【发布时间】:2021-08-07 23:04:27 【问题描述】:

我看到了我想在我的应用程序中使用的 Apollo 类型保护,它是

export function isField(selection) 
    return selection.kind === 'Field';

它位于node_modules/@apollo/client/utilities/graphql/storeUtils.js。但我不能只将它导入我的文件,因为 lib 似乎没有导出它,如果我只粘贴 import isField from '@apollo/client/utilities/graphql/storeUtils'; 我会收到此错误:

/Users/vorant94/git/github/vorant94-server/node_modules/@apollo/client/utilities/graphql/storeUtils.js:1
import stringify from 'fast-json-stable-stringify';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:984:16)
    at Module._compile (internal/modules/cjs/loader.js:1032:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
    at Module.load (internal/modules/cjs/loader.js:933:32)
    at Function.Module._load (internal/modules/cjs/loader.js:774:14)
    at Module.require (internal/modules/cjs/loader.js:957:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/Users/vorant94/git/github/vorant94-server/dist/shared/graphql/field-name-list/field-name-list.pipe.js:11:22)
    at Module._compile (internal/modules/cjs/loader.js:1068:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)

那么有没有办法在库之外使用它?

【问题讨论】:

【参考方案1】:

我只需要安装apollo-utilities 包...

【讨论】:

以上是关于有没有办法从包裹中取出 Apollo 类型的防护装置?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在尝试调用缓存之前检查 Apollo 是不是缓存了数据?

有没有办法在 Chrome DevTools 中调试 Apollo GraphQL 订阅?

有没有办法从 R 的列中取出异常值?

取出特定命名空间的所有类

Ddos攻击防护

使用 apollo useQuery 时有没有办法禁用 apollo-link-dedup?