{"version":3,"sources":["webpack:///./node_modules/graphql-tag/src/index.js"],"names":["parser","parse","normalize","string","replace","trim","docCache","fragmentSourceMap","cacheKeyFromLoc","loc","source","body","substring","start","end","resetCaches","printFragmentWarnings","processFragments","ast","astFragmentMap","definitions","i","length","fragmentDefinition","kind","fragmentName","name","value","sourceKey","hasOwnProperty","console","warn","push","disableFragmentWarnings","stripLoc","doc","removeLocAtThisLevel","docType","Object","prototype","toString","call","map","d","Error","startToken","endToken","key","valueType","keys","experimentalFragmentVariables","parseDocument","cacheKey","parsed","enableExperimentalFragmentVariables","disableExperimentalFragmentVariables","gql","args","Array","slice","arguments","literals","result","default","module","exports"],"mappings":"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","file":"js/npm.graphql-tag~a5479035.7fa5a2ed.js","sourcesContent":["var parser = require('graphql/language/parser');\n\nvar parse = parser.parse;\n\n// Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\n// A map docString -> graphql document\nvar docCache = {};\n\n// A map fragmentName -> [normalized source]\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\n// For testing.\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n}\n\n// Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\nvar printFragmentWarnings = true;\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n\n // We know something about this fragment\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n }\n\n // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n }\n\n // https://github.com/apollographql/graphql-tag/issues/40\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, { experimentalFragmentVariables: experimentalFragmentVariables });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\n\n// XXX This should eventually disallow arbitrary string interpolation, like Relay does\nfunction gql(/* arguments */) {\n var args = Array.prototype.slice.call(arguments);\n\n var literals = args[0];\n\n // We always get literals[0] and then matching post literals for each arg given\n var result = (typeof(literals) === \"string\") ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n}\n\n// Support typescript, which isn't as nice as Babel about default exports\ngql.default = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\n\nmodule.exports = gql;\n"],"sourceRoot":""}