Skip to content

aexol-studio/purplehaze

Repository files navigation

Purple haze

NPM Version

Inspired by generative programming and weed :). So I was learning Elm language at home usually in the evening and now I am missing all this generative stuff from Elm libs in TS.

Documentation

Documentation for this project is hosted on Github Pages

Bullet points

  • You can use URL imports
  • You will get typings for URL imports
  • SSG phase runs inside browser
  • transpiles with esbuild
  • you can use window and other browser internals during SSG phase

What is generated?

  • when you type URL of an esmodule typings are fetched in the background and typings generated locally for intellisense
  • when you add Markdown files with gray matter it will generate typings for those
  • when you add a Page it will generate Route types so you won't make a mistake later when routing to another page
  • when you add GraphQL backends it will generate Zeus libraries for it making communication with GraphQL backend type safe
  • when you modify config you can access type safe values from it during build ssg process
  • when you add env variables you can access the record with all of them

Roadmap

  • Add esbuild
  • Add TS support
  • Add intelligent .d.ts autocompletion for imported es modules
  • Add image supports
  • Generate tsconfig
  • Relative imports
  • Allow head modification
  • Pass env to browser
  • Provide a way to inject config
  • TSConfig generation for included declarations to work
  • Make zeus configurable and importable file
  • Clear error handling with line numbers
  • split utility functions css,html,md from zeus
  • allow to auto-zeus multiple schemas
  • Types from url streaming
  • JSX, TSX support
  • Provide verbose info levels
  • Create docs and landing page deployable to pages
  • Resolve imports with no extension
  • catch esbuild transform errors
  • support files exporting multiple static pages
  • Add possibility to override html tag
  • Create static gray matter typings for .md files
  • Generate Routes typings for existing export default files
  • catch all errors including no network error
  • generate TS Files from Markdown
  • css support
  • fetch accurate typings withe relative packages typings
  • create CI process description