Skip to content

Subset AST types and printer for TypeScript d.ts type declaration files.

License

Notifications You must be signed in to change notification settings

thought2/purescript-dts

Repository files navigation

purescript-dts

Subset AST types and printer for TypeScript d.ts type declaration files.

Example

module Test.Sample where

import DTS

import Data.Newtype (unwrap)
import Effect (Effect)
import Effect.Class.Console (log)
import Prelude (mempty, Unit, ($))

someModule :: TsModule
someModule = TsModule
  [ TsDeclTypeDef (TsName "Nums") Public mempty (TsTypeArray TsTypeNumber)
  , TsDeclValueDef (TsName "user") Public
      ( TsTypeRecord
          [ TsRecordField "name" { readonly: true, optional: false } TsTypeString
          , TsRecordField "age" { readonly: true, optional: false } TsTypeNumber
          ]
      )
  , TsDeclValueDef (TsName "fun") Public
      ( TsTypeFunction
          (TsTypeArgsQuant mempty)
          [ TsFnArg (TsName "x") TsTypeNumber 
          , TsFnArg (TsName "y") TsTypeNumber
          ]
          TsTypeString
      )
  ]

main :: Effect Unit
main = do
  log $ unwrap $ printTsModule someModule

If you run

spago run --main Test.Sample

the following TypeScript code will be logged to the console:

export type Nums = Array<number>

export const user : { readonly 'name': string; readonly 'age': number; }

export const fun : (x: number, y: number) => string

About

Subset AST types and printer for TypeScript d.ts type declaration files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published