@@ -29,11 +29,13 @@ import Data.Unfoldable (none)
2929import GraphQL.Client.CodeGen.Types (InputOptions , GqlEnum )
3030import GraphQL.Client.CodeGen.UtilCst (qualifiedTypeToName )
3131import Partial.Unsafe (unsafePartial )
32- import PureScript.CST.Types (Module , Proper , QualifiedName )
32+ import PureScript.CST.Types (ImportDecl , Module (..), ModuleHeader (..), ModuleName (..) , Proper , QualifiedName )
3333import PureScript.CST.Types as CST
3434import Tidy.Codegen (declDerive , declNewtype , declType , docComments , leading , lineComments , typeApp , typeArrow , typeCtor , typeRecord , typeRecordEmpty , typeRow , typeString , typeWildcard )
3535import Tidy.Codegen.Class (class OverLeadingComments , toQualifiedName )
3636import Tidy.Codegen.Monad (CodegenT , codegenModule , importFrom , importType )
37+ import Tidy.Util (nameOf )
38+ import Unsafe.Coerce (unsafeCoerce )
3739
3840gqlToPursSchema :: InputOptions -> String -> String -> AST.Document -> Array GqlEnum -> Module Void
3941gqlToPursSchema
@@ -42,7 +44,7 @@ gqlToPursSchema
4244 mName
4345 (AST.Document defs)
4446 enums = do
45- unsafePartial $ codegenModule mName do
47+ sortImports $ unsafePartial $ codegenModule mName do
4648 directives <- importFrom directivesMName (importType " Directives" )
4749 voidT <- importQualified " Data.Void" " Void"
4850 proxyT <- importQualified " Type.Proxy" " Proxy"
@@ -350,6 +352,12 @@ gqlToPursSchema
350352 tell
351353 $ [ schema ] <> declarations
352354
355+ sortImports :: Module Void -> Module Void
356+ sortImports (Module m@{ header: ModuleHeader header }) = Module m { header = ModuleHeader header { imports = Array .sortWith getModuleName header.imports } }
357+ where
358+ getModuleName :: ImportDecl Void -> ModuleName
359+ getModuleName = unwrap >>> _.module >>> nameOf
360+
353361hasRootOp :: forall f . Foldable f => f AST.Definition -> AST.OperationType -> Boolean
354362hasRootOp defs op = defs # any case _ of
355363 AST.Definition_TypeSystemDefinition (AST.TypeSystemDefinition_SchemaDefinition (AST.SchemaDefinition d)) ->
0 commit comments