{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilyDependencies #-}
module Live3 where
import Data.Aeson as A
import Data.Aeson.TypeScript.TH
import Data.Function
import Data.Proxy
data Test = TestBlah {x :: Int, y :: Bool}
$(deriveTypeScript (A.defaultOptions { A.tagSingleConstructors = True }) ''Test)
main :: IO ()
main = getTypeScriptDeclarations (Proxy @Test)
& formatTSDeclarations
& putStrLn