仅使用 typescript-mock-data 生成操作类型

问题描述 投票:0回答:1

正在开发一个 TypeScript 项目,其中使用

typescript-mock-data
来生成模拟数据。在我的
codegen.ts
文件中,我在配置中设置了
onlyOperationTypes: true
以仅为操作类型生成模拟数据。

但是,在运行代码生成时,我没有得到预期的行为。看起来 onlyOperationTypes 对于 graphql.ts 文件运行良好,但从模拟文件中删除了所有值。我已验证其他配置选项是否按预期工作。

我检查了

typescript-mock-data
的文档,但找不到有关使用onlyOperationTypes的具体信息。有人在 TypeScript 项目中成功使用 onlyOperationTypes 和 typescript-mock-data 吗?如果是这样,您能否提供有关如何正确配置它的指导?

const config: CodegenConfig = {
overwrite: true,
hooks: {
    afterAllFileWrite: ['prettier --write'],
},
generates: {
    [TYPES_FILE]: {
        schema: graphQLEndpoint,
        documents: GRAPHQL_DOCUMENT_LOCATIONS,
        plugins: [
            {
                add: {
                    content: [autoGeneratedHeader],
                },
            },
            'typescript',
            'typescript-operations',
            'typescript-react-apollo',
        ],
        config: {
            avoidOptionals: {
                field: true,
                object: true,
                defaultValue: true,
            },
            namingConvention: {
                typeNames: 'keep',
                enumValues: 'change-case-all#upperCase',
            },
            exportFragmentSpreadSubTypes: true,
            preResolveTypes: true,
            // onlyOperationTypes: true,
        },
    },
    [MOCKERS_FILE]: {
        schema: graphQLEndpoint,
        documents: GRAPHQL_DOCUMENT_LOCATIONS,
        plugins: [
            {
                add: {
                    content: [autoGeneratedHeader],
                },
            },
            {
                'typescript-mock-data': {
                    typeNames: 'keep',
                    enumValues: 'change-case-all#upperCase',
                    terminateCircularRelationships: true,
                },
            },
        ],
        config: {
            withHooks: false,
            withComponent: false,
            scalars: {
                Time: 'string',
            },
            typesFile: 'src/services/graphql/generated/graphql.ts',
            avoidOptionals: {
                field: true,
                object: true,
                defaultValue: true,
            },
            namingConvention: {
                typeNames: 'keep',
                enumValues: 'change-case-all#upperCase',
            },
            defaultScalarType: 'unknown',
            preResolveTypes: true,
            // onlyOperationTypes: false,

        },
    },
},
};
typescript graphql codegen
1个回答
0
投票

我建议您使用 typemocker.tech 基于打字稿类型生成在线模拟数据。

© www.soinside.com 2019 - 2024. All rights reserved.