Once installed you can pluck GraphQL template literals using one of the following methods:
import { gqlPluckFromCodeString, gqlPluckFromCodeStringSync} from '@graphql-tools/graphql-tag-pluck'// Returns promisegqlPluckFromCodeString( filePath, // this parameter is required to detect file type fs.readFileSync(filePath, 'utf8'))// Returns stringgqlPluckFromCodeStringSync(filePath, fs.readFileSync(filePath, 'utf8'))
Template literals leaded by magic comments will also be extracted :-)
const MessageType = /* GraphQL */ ` enum MessageType { text media draftjs }`
Supported file extensions are:
.js
.mjs
.cjs
.jsx
.ts
.mts
.cts
.tsx
.flow
.flow.js
.flow.jsx
.vue
.svelte
.astro
Options
It is recommended to look at the
source code
for a clearer understanding of the transformation options.
gqlMagicComment
The magic comment anchor to look for when parsing GraphQL strings. Defaults to graphql, which may
be translated into /* GraphQL */ in code.
globalGqlIdentifierName
Allows using a global identifier instead of a module import. Identifiers are case sensitive.
// `graphql` is a global functionexport const usersQuery = graphql` { users { id name } }`
modules
An array of packages that are responsible for exporting the GraphQL string parser function.
A custom way to determine if a template literal node contains a GraphQL query.
By default, it checks if the leading comment is equal to the gqlMagicComment option.
function isGqlTemplateLiteral(node, options) { // Check if the template literal starts with `#graphql` comment return node.type === 'TemplateLiteral' && node.quasis[0]?.value?.raw?.startsWith('#graphql')}
pluckStringFromFile
A function that allows custom extraction of GraphQL strings from a file.
function pluckStringFromFile(code, { start, end, leadingComments }) { // Slice quotes and remove inner comment return code.slice(start + 1, end - 1).replace('#graphql\n', '')}
This site uses cookies for analytics and improving your experience.