这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 75 additions & 75 deletions console/src/components/Main/Main.js
Original file line number Diff line number Diff line change
Expand Up @@ -372,39 +372,39 @@ class Main extends React.Component {
</div>
{!this.state.loveConsentState.isDismissed
? [
<div
key="main_love_1"
className={styles.shareSection + ' dropdown-toggle'}
aria-expanded="false"
onClick={this.handleDropdownToggle.bind(this)}
>
<img
className={'img-responsive'}
src={pixHeart}
alt={'pix Heart'}
/>
{/* <i className={styles.heart + ' fa fa-heart'} /> */}
</div>,
<ul
key="main_love_2"
className={'dropdown-menu ' + styles.dropdown_menu}
>
<div className={styles.dropdown_menu_container}>
<div className={styles.closeDropDown}>
<i
className="fa fa-close"
onClick={this.closeLoveIcon.bind(this)}
/>
{/*
<div
key="main_love_1"
className={styles.shareSection + ' dropdown-toggle'}
aria-expanded="false"
onClick={this.handleDropdownToggle.bind(this)}
>
<img
className={'img-responsive'}
src={pixHeart}
alt={'pix Heart'}
/>
{/* <i className={styles.heart + ' fa fa-heart'} /> */}
</div>,
<ul
key="main_love_2"
className={'dropdown-menu ' + styles.dropdown_menu}
>
<div className={styles.dropdown_menu_container}>
<div className={styles.closeDropDown}>
<i
className="fa fa-close"
onClick={this.closeLoveIcon.bind(this)}
/>
{/*
<img
className={'img-responsive'}
src={closeIcon}
alt={'closeIcon'}
onClick={this.closeLoveIcon.bind(this)}
/>
*/}
</div>
{/*
</div>
{/*
<div className={styles.arrow_up_dropdown} />
<div className={styles.graphqlHeartText}>
Love GraphQL Engine? Shout it from the rooftops!
Expand All @@ -415,37 +415,37 @@ class Main extends React.Component {
</span>
</div>
*/}
<div className={styles.displayFlex}>
<li className={styles.pixelText1}>
<div className={styles.displayFlex}>
<li className={styles.pixelText1}>
Roses are red, <br />
Violets are blue;
<br />
<br />
Star us on Github,
<br />
<br />
To make our <i className={'fa fa-heart'} /> go
wooooo!
</li>
<li className={'dropdown-item'}>
<a
href="https://github.com/hasura/graphql-engine"
target="_blank"
rel="noopener noreferrer"
>
<div className={styles.socialIcon}>
<img
className="img img-responsive"
src={
'https://storage.googleapis.com/hasura-graphql-engine/console/assets/githubicon.png'
}
alt={'Github'}
/>
</div>
<div className={styles.pixelText}>
<i className="fa fa-star" />
</li>
<li className={'dropdown-item'}>
<a
href="https://github.com/hasura/graphql-engine"
target="_blank"
rel="noopener noreferrer"
>
<div className={styles.socialIcon}>
<img
className="img img-responsive"
src={
'https://storage.googleapis.com/hasura-graphql-engine/console/assets/githubicon.png'
}
alt={'Github'}
/>
</div>
<div className={styles.pixelText}>
<i className="fa fa-star" />
&nbsp; Star
</div>
</a>
{/*
</div>
</a>
{/*
<div className={styles.gitHubBtn}>
<iframe
title="github"
Expand All @@ -457,32 +457,32 @@ class Main extends React.Component {
/>
</div>
*/}
</li>
<li className={'dropdown-item '}>
<a
href="https://twitter.com/intent/tweet?hashtags=graphql,postgres&text=Just%20deployed%20a%20GraphQL%20backend%20with%20@HasuraHQ!%20%E2%9D%A4%EF%B8%8F%20%F0%9F%9A%80%0Ahttps://github.com/hasura/graphql-engine%0A"
target="_blank"
rel="noopener noreferrer"
>
<div className={styles.socialIcon}>
<img
className="img img-responsive"
src={
'https://storage.googleapis.com/hasura-graphql-engine/console/assets/twittericon.png'
}
alt={'Twitter'}
/>
</div>
<div className={styles.pixelText}>
<i className="fa fa-twitter" />
</li>
<li className={'dropdown-item '}>
<a
href="https://twitter.com/intent/tweet?hashtags=graphql,postgres&text=Just%20deployed%20a%20GraphQL%20backend%20with%20@HasuraHQ!%20%E2%9D%A4%EF%B8%8F%20%F0%9F%9A%80%0Ahttps://github.com/hasura/graphql-engine%0A"
target="_blank"
rel="noopener noreferrer"
>
<div className={styles.socialIcon}>
<img
className="img img-responsive"
src={
'https://storage.googleapis.com/hasura-graphql-engine/console/assets/twittericon.png'
}
alt={'Twitter'}
/>
</div>
<div className={styles.pixelText}>
<i className="fa fa-twitter" />
&nbsp; Tweet
</div>
</a>
</li>
</div>
</a>
</li>
</div>
</div>
</div>
</ul>,
]
</ul>,
]
: null}
</div>
</div>
Expand Down
29 changes: 24 additions & 5 deletions server/graphql-engine.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,13 @@ library

-- pretty printer
, ansi-wl-pprint
, binary

exposed-modules: Hasura.Server.App
exposed-modules: Hasura.Prelude
, Hasura.Logging
, Hasura.EncJSON

, Hasura.Server.App
, Hasura.Server.Auth
, Hasura.Server.Auth.JWT
, Hasura.Server.Init
Expand Down Expand Up @@ -197,13 +202,21 @@ library
, Hasura.GraphQL.Transport.WebSocket
, Hasura.GraphQL.Schema
, Hasura.GraphQL.Utils
, Hasura.GraphQL.Explain

, Hasura.LRUCache
, Hasura.GraphQL.Execute
, Hasura.GraphQL.Execute.Plan
, Hasura.GraphQL.Execute.QueryCache

, Hasura.GraphQL.Validate
, Hasura.GraphQL.Validate.Types
, Hasura.GraphQL.Validate.Context
, Hasura.GraphQL.Validate.Field
, Hasura.GraphQL.Validate.InputValue

, Hasura.GraphQL.Resolve
, Hasura.GraphQL.Explain
, Hasura.GraphQL.Resolve.LiveQuery.Generic
, Hasura.GraphQL.Resolve.LiveQuery
, Hasura.GraphQL.Resolve.BoolExp
, Hasura.GraphQL.Resolve.Context
Expand All @@ -212,6 +225,7 @@ library
, Hasura.GraphQL.Resolve.Insert
, Hasura.GraphQL.Resolve.Mutation
, Hasura.GraphQL.Resolve.Select

, Hasura.GraphQL.RemoteServer
, Hasura.GraphQL.Context
, Hasura.GraphQL.Resolve.ContextTypes
Expand All @@ -232,8 +246,6 @@ library
, Hasura.SQL.GeoJSON
, Hasura.SQL.Time
, Hasura.SQL.Rewrite
, Hasura.Prelude
, Hasura.Logging
, Network.URI.Extended
, Ops
, Migrate
Expand Down Expand Up @@ -328,7 +340,14 @@ executable graphql-engine
if flag(developer)
ghc-prof-options: -rtsopts -fprof-auto -fno-prof-count-entries

ghc-options: -O2 -Wall -threaded
ghc-options: -O2
-Wall
-Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-threaded
-rtsopts -with-rtsopts=-N

test-suite graphql-engine-test
type: exitcode-stdio-1.0
Expand Down
12 changes: 8 additions & 4 deletions server/src-exec/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@ import qualified Network.HTTP.Client.TLS as HTTP
import qualified Network.Wai.Handler.Warp as Warp

import Hasura.Events.Lib
import qualified Hasura.GraphQL.Execute as GE
import Hasura.Logging (Logger (..), defaultLoggerSettings,
mkLogger, mkLoggerCtx)
import Hasura.Prelude
import Hasura.RQL.DDL.Metadata (fetchMetadata)
import Hasura.RQL.Types (QErr, adminUserInfo,
import Hasura.RQL.Types (QErr, SQLGenCtx (..),
adminUserInfo, defaultSQLGenCtx,
emptySchemaCache)
import Hasura.Server.App (mkWaiApp)
import Hasura.Server.Auth
Expand Down Expand Up @@ -127,8 +129,10 @@ main = do
prepareEvents logger ci

pool <- Q.initPGPool ci cp
(app, cacheRef) <- mkWaiApp isoL loggerCtx pool httpManager
strfyNum am corsCfg enableConsole enableTelemetry enabledAPIs
queryCache <- GE.initQueryCache
let sqlGenCtx = SQLGenCtx strfyNum
(app, cacheRef) <- mkWaiApp isoL loggerCtx pool queryCache httpManager
sqlGenCtx am corsCfg enableConsole enableTelemetry enabledAPIs

let warpSettings = Warp.setPort port $ Warp.setHost host Warp.defaultSettings

Expand Down Expand Up @@ -181,7 +185,7 @@ main = do
runAsAdmin ci httpManager m = do
pool <- getMinimalPool ci
res <- runExceptT $ peelRun emptySchemaCache adminUserInfo
httpManager False pool Q.Serializable m
httpManager defaultSQLGenCtx pool Q.Serializable m
return $ fmap fst res

procConnInfo rci =
Expand Down
4 changes: 2 additions & 2 deletions server/src-exec/Ops.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import Language.Haskell.TH.Syntax (Q, TExp, unTypeQ)
import Migrate (curCatalogVer)

import Hasura.Prelude
import Hasura.EncJSON
import Hasura.RQL.DDL.Schema.Table
import Hasura.RQL.Types
import Hasura.Server.Query
Expand Down Expand Up @@ -140,8 +141,7 @@ execQuery queryBs = do
Just jVal -> decodeValue jVal
Nothing -> throw400 InvalidJSON "invalid json"
buildSchemaCache
runQueryM query

encJToLBS <$> runQueryM query

-- error messages
pgcryptoReqdMsg :: T.Text
Expand Down
76 changes: 76 additions & 0 deletions server/src-lib/Hasura/EncJSON.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
-- A module for representing encoded json
-- and efficient operations to construct them

module Hasura.EncJSON
( EncJSON(..)
, encJToLBS
, encJFromB
, encJFromJ
, encJFromC
, encJFromT
, encJFromBS
, encJFromLBS
, encJFromL
, encJFromAL
) where

import Hasura.Prelude

import qualified Data.Aeson as J
import qualified Data.Binary.Builder as BB
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as BL
import qualified Data.Text.Encoding as TE

-- encoded json
newtype EncJSON
= EncJSON { unEncJSON :: BB.Builder }
deriving (Semigroup, Monoid, IsString)

encJToLBS :: EncJSON -> BL.ByteString
encJToLBS = BB.toLazyByteString . unEncJSON

encJFromB :: BB.Builder -> EncJSON
encJFromB = EncJSON
{-# INLINE encJFromB #-}

encJFromBS :: B.ByteString -> EncJSON
encJFromBS = EncJSON . BB.fromByteString
{-# INLINE encJFromBS #-}

encJFromLBS :: BL.ByteString -> EncJSON
encJFromLBS = EncJSON . BB.fromLazyByteString
{-# INLINE encJFromLBS #-}

encJFromJ :: J.ToJSON a => a -> EncJSON
encJFromJ = encJFromLBS . J.encode
{-# INLINE encJFromJ #-}

encJFromC :: Char -> EncJSON
encJFromC = EncJSON . BB.putCharUtf8
{-# INLINE encJFromC #-}

encJFromT :: Text -> EncJSON
encJFromT = encJFromBS . TE.encodeUtf8
{-# INLINE encJFromT #-}

encJFromL :: [EncJSON] -> EncJSON
encJFromL = \case
[] -> "[]"
x:xs -> encJFromC '['
<> x
<> foldr go (encJFromC ']') xs
where go v b = encJFromC ',' <> v <> b

-- from association list
encJFromAL :: [(Text, EncJSON)] -> EncJSON
encJFromAL = \case
[] -> "{}"
x:xs -> encJFromC '{'
<> builder' x
<> foldr go (encJFromC '}') xs
where
go v b = encJFromC ',' <> builder' v <> b
-- builds "key":value from (key,value)
builder' (t, v) =
encJFromC '"' <> encJFromT t <> encJFromT "\":" <> v
Loading