Swydo / meteor-graphql

Compiler plugin that supports GraphQL files in Meteor
MIT License
58 stars 5 forks source link

Typescript usage #15

Open asemoon opened 7 years ago

asemoon commented 7 years ago

I was wondering if you guys have tried this plugin with typescript? I want to import a .graphql in a typescript file, but it tries to load it as a module. My module resolution in tsconfig is set to node. So the following does not work for me: import * as schema from "../models/typeDefs.graphql"; However, If I use require like the following, it will work: const schema = require("../models/typeDefs.graphql"); I don't want to use require since it's discouraged by the TS community and my linting rules. Any idea how I can get this to work?

jamiter commented 7 years ago

Hi, I'm not familiar with module resolution in typescript, but why does the first statement not work?

What if you try this:

import schema from "../models/typeDefs.graphql";

What does it return? Or does typescript give you compile errors?

Cheers

asemoon commented 7 years ago

typescript does not recognize .graphql files by default. so I had to add the following in a definition file (.d.ts)

declare module "*.graphql" {
    const value: any;
    export = value;
}
jamiter commented 6 years ago

A bit late reply, but I understand that the issue was solved?

lyslim commented 4 years ago

I met similar issue with my setup(react+apollo+meteor+ts). What @asemoon mentioned is useful, we just had to let TS to pickup that definition file with the following setup in tsconfig.json -

"compilerOptions": {
    ...
    "typeRoots": ["node_modules/@types", "imports/@types"],
    ...
}
"files": ["imports/@types/graphql.d.ts"],
"include": ["**/*"],