mirror of
https://github.com/openappsec/openappsec.git
synced 2025-06-28 16:41:02 +03:00
66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
# Copyright 2019-present, GraphQL Foundation
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
|
|
class Printer(object):
|
|
def __init__(self):
|
|
pass
|
|
|
|
def start_file(self):
|
|
print '''/* @flow */
|
|
/* @generated */
|
|
/* jshint ignore:start */
|
|
|
|
/**
|
|
* Copyright 2019-present, GraphQL Foundation
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
type Node = {
|
|
kind: string;
|
|
start?: ?number;
|
|
end?: ?number;
|
|
};
|
|
|
|
type OperationKind = 'query' | 'mutation' | 'subscription';'''
|
|
|
|
def end_file(self):
|
|
pass
|
|
|
|
def start_type(self, name):
|
|
print
|
|
print 'type %s = Node & {' % name
|
|
kind = name
|
|
if kind == 'GenericType':
|
|
kind = 'Type'
|
|
print ' kind: \'%s\';' % kind
|
|
|
|
def end_type(self, name):
|
|
print '}'
|
|
|
|
def _js_type(self, type, plural):
|
|
if plural:
|
|
type = 'Array<%s>' % type
|
|
return type
|
|
|
|
def field(self, type, name, nullable, plural):
|
|
nullable_char = '?' if nullable else ''
|
|
js_type = self._js_type(type, plural)
|
|
print ' %(name)s%(nullable_char)s: %(nullable_char)s%(js_type)s;' % locals()
|
|
|
|
def start_union(self, name):
|
|
print ('type %s = ' % name),
|
|
self._current_options = []
|
|
|
|
def union_option(self, type):
|
|
self._current_options.append(type)
|
|
|
|
def end_union(self, name):
|
|
print '\n | '.join(self._current_options)
|
|
print
|
|
self._current_options = None
|