diff options
Diffstat (limited to 'alarm/node_modules/graphql/utilities/stripIgnoredCharacters.js')
-rw-r--r-- | alarm/node_modules/graphql/utilities/stripIgnoredCharacters.js | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/alarm/node_modules/graphql/utilities/stripIgnoredCharacters.js b/alarm/node_modules/graphql/utilities/stripIgnoredCharacters.js deleted file mode 100644 index aac5ddc..0000000 --- a/alarm/node_modules/graphql/utilities/stripIgnoredCharacters.js +++ /dev/null @@ -1,123 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.stripIgnoredCharacters = stripIgnoredCharacters; - -var _source = require("../language/source.js"); - -var _tokenKind = require("../language/tokenKind.js"); - -var _lexer = require("../language/lexer.js"); - -var _blockString = require("../language/blockString.js"); - -/** - * Strips characters that are not significant to the validity or execution - * of a GraphQL document: - * - UnicodeBOM - * - WhiteSpace - * - LineTerminator - * - Comment - * - Comma - * - BlockString indentation - * - * Note: It is required to have a delimiter character between neighboring - * non-punctuator tokens and this function always uses single space as delimiter. - * - * It is guaranteed that both input and output documents if parsed would result - * in the exact same AST except for nodes location. - * - * Warning: It is guaranteed that this function will always produce stable results. - * However, it's not guaranteed that it will stay the same between different - * releases due to bugfixes or changes in the GraphQL specification. - * - * Query example: - * - * query SomeQuery($foo: String!, $bar: String) { - * someField(foo: $foo, bar: $bar) { - * a - * b { - * c - * d - * } - * } - * } - * - * Becomes: - * - * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}} - * - * SDL example: - * - * """ - * Type description - * """ - * type Foo { - * """ - * Field description - * """ - * bar: String - * } - * - * Becomes: - * - * """Type description""" type Foo{"""Field description""" bar:String} - */ -function stripIgnoredCharacters(source) { - var sourceObj = (0, _source.isSource)(source) ? source : new _source.Source(source); - var body = sourceObj.body; - var lexer = new _lexer.Lexer(sourceObj); - var strippedBody = ''; - var wasLastAddedTokenNonPunctuator = false; - - while (lexer.advance().kind !== _tokenKind.TokenKind.EOF) { - var currentToken = lexer.token; - var tokenKind = currentToken.kind; - /** - * Every two non-punctuator tokens should have space between them. - * Also prevent case of non-punctuator token following by spread resulting - * in invalid token (e.g. `1...` is invalid Float token). - */ - - var isNonPunctuator = !(0, _lexer.isPunctuatorTokenKind)(currentToken.kind); - - if (wasLastAddedTokenNonPunctuator) { - if (isNonPunctuator || currentToken.kind === _tokenKind.TokenKind.SPREAD) { - strippedBody += ' '; - } - } - - var tokenBody = body.slice(currentToken.start, currentToken.end); - - if (tokenKind === _tokenKind.TokenKind.BLOCK_STRING) { - strippedBody += dedentBlockString(tokenBody); - } else { - strippedBody += tokenBody; - } - - wasLastAddedTokenNonPunctuator = isNonPunctuator; - } - - return strippedBody; -} - -function dedentBlockString(blockStr) { - // skip leading and trailing triple quotations - var rawStr = blockStr.slice(3, -3); - var body = (0, _blockString.dedentBlockStringValue)(rawStr); - - if ((0, _blockString.getBlockStringIndentation)(body) > 0) { - body = '\n' + body; - } - - var lastChar = body[body.length - 1]; - var hasTrailingQuote = lastChar === '"' && body.slice(-4) !== '\\"""'; - - if (hasTrailingQuote || lastChar === '\\') { - body += '\n'; - } - - return '"""' + body + '"""'; -} |