From 2665abf09ccd813dc994d824d015845315d203ff Mon Sep 17 00:00:00 2001 From: Eddy Nguyen Date: Wed, 17 May 2023 07:17:59 +1000 Subject: [PATCH] Mapped scalar types are now used as input and output instead of having to be an input/output object --- .../other/visitor-plugin-common/src/utils.ts | 25 ++++++------------- .../typescript/tests/typescript.spec.ts | 12 ++++----- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/packages/plugins/other/visitor-plugin-common/src/utils.ts b/packages/plugins/other/visitor-plugin-common/src/utils.ts index 6f797721d18..f27d91183d2 100644 --- a/packages/plugins/other/visitor-plugin-common/src/utils.ts +++ b/packages/plugins/other/visitor-plugin-common/src/utils.ts @@ -325,30 +325,19 @@ export function buildScalars( outputMapper.type += "['output']"; } - result[name] = { - input: inputMapper, - output: outputMapper, - }; - } else if (scalarsMapping && typeof scalarsMapping[name] === 'string') { - const normalizedScalar = normalizeScalarType(scalarsMapping[name]); - - const inputMapper = parseMapper(normalizedScalar.input, name); - if (inputMapper.isExternal) { - inputMapper.type += "['input']"; - } - - const outputMapper = parseMapper(normalizedScalar.output, name); - if (outputMapper.isExternal) { - outputMapper.type += "['output']"; - } - result[name] = { input: inputMapper, output: outputMapper, }; } else if (scalarsMapping?.[name]) { const mappedScalar = scalarsMapping[name]; - if (typeof mappedScalar === 'object' && mappedScalar.input && mappedScalar.output) { + if (typeof mappedScalar === 'string') { + const normalizedScalar = normalizeScalarType(scalarsMapping[name]); + result[name] = { + input: parseMapper(normalizedScalar.input, name), + output: parseMapper(normalizedScalar.output, name), + }; + } else if (typeof mappedScalar === 'object' && mappedScalar.input && mappedScalar.output) { result[name] = { input: parseMapper(mappedScalar.input, name), output: parseMapper(mappedScalar.output, name), diff --git a/packages/plugins/typescript/typescript/tests/typescript.spec.ts b/packages/plugins/typescript/typescript/tests/typescript.spec.ts index 59e6968fe98..15be990e1f1 100644 --- a/packages/plugins/typescript/typescript/tests/typescript.spec.ts +++ b/packages/plugins/typescript/typescript/tests/typescript.spec.ts @@ -2006,12 +2006,12 @@ describe('TypeScript', () => { Boolean: { input: boolean; output: boolean; } Int: { input: number; output: number; } Float: { input: number; output: number; } - MyScalar: { input: MyScalar['input']; output: MyScalar['output']; } - MyOtherScalar: { input: MyOtherScalar['input']; output: MyOtherScalar['output']; } - MyAliasedScalar: { input: AliasedScalar['input']; output: AliasedScalar['output']; } - OrgScalar: { input: OrgScalar['input']; output: OrgScalar['output']; } - OrgOtherScalar: { input: OrgOtherScalar['input']; output: OrgOtherScalar['output']; } - OrgAliasedScalar: { input: OrgAliasedScalar['input']; output: OrgAliasedScalar['output']; } + MyScalar: { input: MyScalar; output: MyScalar; } + MyOtherScalar: { input: MyOtherScalar; output: MyOtherScalar; } + MyAliasedScalar: { input: AliasedScalar; output: AliasedScalar; } + OrgScalar: { input: OrgScalar; output: OrgScalar; } + OrgOtherScalar: { input: OrgOtherScalar; output: OrgOtherScalar; } + OrgAliasedScalar: { input: OrgAliasedScalar; output: OrgAliasedScalar; } };`); expect(result.content).toBeSimilarStringTo(`