soul

package module
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 16, 2024 License: MIT Imports: 12 Imported by: 0

README

Soul CLI Documentation

Welcome to the Soul CLI documentation. This guide will help you understand and use Soul CLI to streamline your SaaS development process.

Acknowledgment

Soul CLI is heavily influenced by go-zero in concept and structure. However, we've taken the core ideas beyond microservice architecture to create a unique tool tailored for SaaS development. While inspired by go-zero, Soul CLI has its own distinct codebase and features.

Table of Contents

Introduction and Setup
Features
Advanced Topics
Examples
Support and Contribution

Quick Start

To create a new SaaS project with Soul CLI, use the following command:

soul saas -a yourfile.api -d .

For more detailed instructions, please refer to our Getting Started guide.

Key Differences from go-zero

While Soul CLI draws inspiration from go-zero, it differs in several key areas:

  1. Focus on SaaS: Soul CLI is specifically designed for SaaS development, offering features and templates tailored to common SaaS use cases.

  2. Extended Architecture: We've expanded beyond microservices to support various architectural patterns common in SaaS applications.

  3. Integrated Frontend Tools: Soul CLI includes built-in support for TypeScript clients and web components, facilitating full-stack development.

  4. SaaS-specific Features: Our CLI offers tools for common SaaS requirements like user management, subscription handling, and multi-tenancy.

  5. Customized Templating: We've developed a unique templating system that caters to SaaS-specific needs and rapid prototyping.

Support

If you encounter any issues or have questions, please check our Troubleshooting guide. If you can't find the answer there, feel free to open an issue in our GitHub repository.

Contributing

We welcome contributions to Soul CLI! Please see our Contributing guide for more information on how to get involved.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ComponentToString

func ComponentToString(c templ.Component) (string, error)

func Markdown added in v0.0.4

func Markdown(markdown string) templ.Component

func New

func New[T any](defaultProps func() *T, tpl func(*T) templ.Component, props ...OptFunc[T]) templ.Component

New creates a new templ.Component with the given props

func NewWithProps

func NewWithProps[T any](tpl func(*T) templ.Component, props *T) templ.Component

NewWithProps creates a new templ.Component with the given prop

func Render

func Render(ctx echo.Context, status int, t templ.Component) error

func Unsafe added in v0.0.4

func Unsafe(html string) templ.Component

func WithProps

func WithProps[T any](defaultProps func() *T, props ...OptFunc[T]) *T

WithProps constructs the props with the given prop functions

Types

type BufferedResponseWriter added in v0.0.4

type BufferedResponseWriter struct {
	// contains filtered or unexported fields
}

func (*BufferedResponseWriter) Header added in v0.0.4

func (w *BufferedResponseWriter) Header() http.Header

func (*BufferedResponseWriter) SetCookie added in v0.0.4

func (w *BufferedResponseWriter) SetCookie(cookie *http.Cookie)

func (*BufferedResponseWriter) Write added in v0.0.4

func (w *BufferedResponseWriter) Write(b []byte) (int, error)

func (*BufferedResponseWriter) WriteHeader added in v0.0.4

func (w *BufferedResponseWriter) WriteHeader(statusCode int)

type Component

type Component[T any] interface {
	New(props ...OptFunc[T]) templ.Component
	NewWithOpt(prop *T) templ.Component
	WithProps(props ...OptFunc[T]) *T
}

Component interface with generic methods

type OptFunc

type OptFunc[T any] func(*T)

OptFunc is a generic function type for props

Directories

Path Synopsis
db
tools
soul Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL