小编Rob*_*esz的帖子

无论如何在打字稿中做嵌套的 Pick<> 类型

所以我试图在我的客户端 GraphQL 查询中获得安全(所以如果有更好的方法让我知道)。

但是我一直在做的是像这样定义我的查询。

export const tenantManagePageQuery = async (tenantId: string) =>
    graphQLClient.request<{
        tenants: TenantManagePageQueryTenant[];
    }>(
        /* GraphQL */ `
            query tenants($tenantId: String!) {
                tenants(tenantIds: [$tenantId]) {
                    id
                    description
                    name
                    approvedUsers {
                        id
                        alias
                    }
                    pendingUsers {
                        id
                        alias
                    }
                }
            }
        `,
        { tenantId },
    );

Run Code Online (Sandbox Code Playgroud)

为了定义TenantManagePageQueryTenant类型,我做这样的事情

interface TenantManagePageQueryTenant
    extends Pick<Tenant, 'id' | 'description' | 'name'> {}
Run Code Online (Sandbox Code Playgroud)

基本租户模型是我的 GQL 模型类型。

无论如何要执行这种 Pick 语句,但还要选择嵌套的属性。

就像是

interface TenantManagePageQueryTenant
    extends Pick<Tenant, 'id' | 'description' | 'name' | Pick<approvedUser| 'id' | …
Run Code Online (Sandbox Code Playgroud)

typescript graphql

8
推荐指数
2
解决办法
3931
查看次数

Material-UI React 和 webpack 树摇动

我决定将Material Ui React添加到我的应用程序中。我打算最少使用这个。到目前为止我在一个地方使用它

import TextField from "@material-ui/core/TextField";

render() {return <TextField ... />
Run Code Online (Sandbox Code Playgroud)

我使用默认的 CRA webpack 配置,我的假设是,我不使用的库中的任何内容都不会添加到我的包中。但是,当我使用捆绑分析器时,我看到了这一点。

捆绑图像

Create-React-App 是否像我想象的那样不支持死代码的树摇动,或者我做错了什么。

reactjs webpack create-react-app

6
推荐指数
0
解决办法
4022
查看次数

如何通过多个 id 过滤 Firestore 集合

所以在我的数据库模式中,我有这样的东西

/collections/users/userId1 { 
   ...,
   id,
   relatedContracts: [id1, id2, id3]
}

/collections/contracts/contractId {
   ...,
   id,
}
Run Code Online (Sandbox Code Playgroud)

在我的 Firebase 安全规则中,我有这个

    match /contracts/{contract} {
       function isOwnContract() {
           return request.auth.id == resource.data.creatorId || request.auth.id == recipientId
       }
       allow read, write: if isOwnContract()
     }
Run Code Online (Sandbox Code Playgroud)

现在我对如何过滤客户端以仅获取我的相关合同感到非常困惑。如果引入了安全规则,我将无法再对客户端进行过滤。

我知道这存在

firestore.collection(CONTRACTS).where(id, "==", contractId)
Run Code Online (Sandbox Code Playgroud)

但是我如何根据多个 id 进行过滤

firebase firebase-security google-cloud-firestore

5
推荐指数
1
解决办法
2455
查看次数

我如何开玩笑地使用 ES6 依赖项

所以我有一个依赖包,我将它拉到我的 node_modules 文件夹中。这个包有一个像这样的导出

        ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from './client';
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用https://github.com/standard-things/esm。在我的节点加载器中

node -r esm index.js.

但是,这不适用于我使用 Jest 的测试。

我似乎无法弄清楚如何让 Jest 为我转换这些导入。我已经尝试了很多东西,我的配置文件的当前状态是。

// babel.config.js
// babel.config.js
module.exports = {
    presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'],
    plugins: ['@babel/plugin-transform-modules-commonjs'],
};

Run Code Online (Sandbox Code Playgroud)

const { pathsToModuleNameMapper } = require('ts-jest/utils');
const { compilerOptions } = require('./tsconfig');

module.exports = {
    preset: 'ts-jest',
    testEnvironment: 'node',
    testMatch: ['<rootDir>/tests/**/*.{ts,js}'],
    testPathIgnorePatterns: ['global.d.ts', 'utils.ts', '<rootDir>/node_modules/'], // tried with and without this
    moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { prefix: '<rootDir>/' }),
};

Run Code Online (Sandbox Code Playgroud)

仍然不断收到该错误。任何人都有一个建议。

javascript jestjs babeljs

4
推荐指数
1
解决办法
1403
查看次数

Python/Regex解析代码

所以我在FORTRAN中有一些看起来像这样的线条.

call const (hsno, npoi*nsnolay, 0.0)
Run Code Online (Sandbox Code Playgroud)

我一直在使用正则表达式和python字符串函数来解析这些代码并编辑一些变量.但是像上面那样的线条给我一个问题,因为字符串不会在括号上分开.

我希望它是:

[(,hsno, npoit, * nsnolay, 0.0, )]. 
Run Code Online (Sandbox Code Playgroud)

不过它的作用是什么

[(hsno,...]
Run Code Online (Sandbox Code Playgroud)

如果后跟一个单词和一个逗号,我希望它分成括号

有没有一种简单的方法可以做到这一点.

python regex parsing

2
推荐指数
1
解决办法
180
查看次数

启动Python一些问题

到目前为止,我已经编程了大约一年,我所做的一切都是Java和C.我会用这些语言称自己的中级,但我决定尝试学习python.

我下载了网站的python 3.3,我有点困惑.我测试了Python Shell中的一些程序,它似乎更像是一个计算器而不是一种语言.例如,一旦我点击输入它编译并运行我在那里的任何代码.我应该用什么来编写带有类和函数的更大的程序.

python

-1
推荐指数
1
解决办法
62
查看次数