fileloader

package
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: MIT Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TemplateReloadModeNone   = templateReloadMode("none")
	TemplateReloadModeAlways = templateReloadMode("always")
)

Template Reload modes.

Variables

This section is empty.

Functions

func LoadStore added in v0.11.1

func LoadStore(loader *StoreLoader) (templates.Store, error)

LoadStore load templates from directory.

func NewCompositionLoaderBuilder added in v0.11.1

func NewCompositionLoaderBuilder(
	schemaLoader templatesPkg.SchemaLoader,
	examplesLoader templatesPkg.ExamplesLoader,
	tracerProvider trace.TracerProvider,
) *compositionLoaderBuilder

NewCompositionLoaderBuilder constructor.

Types

type AssetsLoader added in v0.9.1

type AssetsLoader interface {
	LoadAssets(
		templateDirPath string,
		logger log.Logger,
	) templates.Assets
}

AssetsLoader interface.

type CompositePlannerLoader added in v0.11.1

type CompositePlannerLoader interface {
	LoadPlanner(
		templateDirPath string,
	) (compositionPkg.CompositePlanner, error)

	LoaderType() string
}

CompositePlannerLoader used to load CompositePlanner.

type Config

type Config struct {
	DirPath             string
	CompositionsDirPath string
	ReloadMode          templateReloadMode
	Recursive           bool
}

Config for templates.

func DefaultConfig added in v0.9.0

func DefaultConfig() Config

DefaultConfig return default config.

func (*Config) BindFlags added in v0.9.0

func (config *Config) BindFlags() []cli.Flag

BindFlags return cli flag bindings.

type DevStore added in v0.9.0

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

DevStore is store for development mode. Reload template on every fetch.

func NewDevStore added in v0.9.0

func NewDevStore(
	templateDirPath string,
	logger log.Logger,
	templateLoader templates.TemplateLoader,
	originStore templates.Store,
) *DevStore

NewDevStore construct new DevStore.

func (*DevStore) Fetch added in v0.9.0

func (store *DevStore) Fetch(templateName templates.Name) (templates.Template, error)

Fetch template by name. Check original store first, then reload template.

func (*DevStore) List added in v0.9.0

func (store *DevStore) List() ([]templates.Template, error)

List all templates.

func (*DevStore) Put added in v0.11.1

func (store *DevStore) Put(template templates.Template) error

Put template to store.

type DirPartialsLoader added in v0.9.0

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

DirPartialsLoader load partials from directory.

func NewDirPartialsLoader added in v0.9.0

func NewDirPartialsLoader(
	processorsList OrderedPartialProcessors,
) *DirPartialsLoader

NewDirPartialsLoader create new DirPartialsLoader.

func (*DirPartialsLoader) LoadPartials added in v0.9.0

func (partialsLoader *DirPartialsLoader) LoadPartials(
	ctx context.Context,
	templateDirName string,
	templateExtension string,
) (map[string][]byte, error)

LoadPartials load partials from directory.

type FileAssets

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

FileAssets type.

func NewFileAssets

func NewFileAssets(fileSystem http.FileSystem) *FileAssets

NewFileAssets constructor.

func (*FileAssets) Open

func (assets *FileAssets) Open(path string) (*templates.Asset, error)

Open file by path.

type FileAssetsLoader

type FileAssetsLoader struct{}

FileAssetsLoader type.

func NewFileAssetsLoader

func NewFileAssetsLoader() *FileAssetsLoader

NewFileAssetsLoader constructor.

func (*FileAssetsLoader) LoadAssets

func (*FileAssetsLoader) LoadAssets(
	templateDirPath string,
	logger log.Logger,
) templates.Assets

LoadAssets FileSystem from assets dir.

type FileExamplesLoader

type FileExamplesLoader struct{}

FileExamplesLoader type.

func NewFileExamplesLoader

func NewFileExamplesLoader() *FileExamplesLoader

NewFileExamplesLoader constructor.

func (*FileExamplesLoader) LoadExamples

func (*FileExamplesLoader) LoadExamples(
	templateDirPath string,
	logger log.Logger,
) (templates.Examples, error)

LoadExamples by path.

type FileParamsLoader

type FileParamsLoader struct{}

FileParamsLoader load params from file.

func NewFileParamsLoader

func NewFileParamsLoader() *FileParamsLoader

NewFileParamsLoader constructor.

func (*FileParamsLoader) LoadParams

func (*FileParamsLoader) LoadParams(
	templateDirPath string,
	logger log.Logger,
) (*Params, error)

LoadParams from templateDirPath.

type FileSchemaLoader

type FileSchemaLoader struct{}

FileSchemaLoader load JSON Schema from file system.

func NewFileSchemaLoader

func NewFileSchemaLoader() *FileSchemaLoader

NewFileSchemaLoader construct.

func (*FileSchemaLoader) LoadSchema

func (*FileSchemaLoader) LoadSchema(
	templateDirPath string,
	logger log.Logger,
) (templates.Validator, error)

LoadSchema from templateDir.

type FileTemplateInstanceLoader

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

FileTemplateInstanceLoader load templates from file system.

func DefaultFileTemplateInstanceLoader

func DefaultFileTemplateInstanceLoader(
	partialsLoader PartialsLoader,
	markdownHelpers MarkdownHelpers,
) *FileTemplateInstanceLoader

DefaultFileTemplateInstanceLoader create FileTemplateInstanceLoader with default list of template engine loaders.

func NewFileTemplateInstanceLoader

func NewFileTemplateInstanceLoader(
	templateInstanceLoaders ...TemplateInstanceLoader,
) *FileTemplateInstanceLoader

NewFileTemplateInstanceLoader create new FileTemplateInstanceLoader with defined template engine loader.

func (FileTemplateInstanceLoader) LoadTemplateInstance

func (instanceLoader FileTemplateInstanceLoader) LoadTemplateInstance(
	templateDirPath string,
	partName string,
	logger log.Logger,
	assets templates.Assets,
) (HTMLTemplate, error)

LoadTemplateInstance iterate over template instance factory when it not return error.

type FileTemplateLoader

type FileTemplateLoader struct {
	templates.SchemaLoader

	templates.ExamplesLoader
	// contains filtered or unexported fields
}

FileTemplateLoader load template from directory on file system.

func NewFileTemplateLoader

func NewFileTemplateLoader(
	templateInstanceLoader HTMLTemplateLoader,
	schemaLoader templates.SchemaLoader,
	paramsLoader ParamsLoader,
	assetsLoader AssetsLoader,
	examplesLoader templates.ExamplesLoader,
	pdfRender pdfrender.PDFRenderer,
	tracerProvider trace.TracerProvider,
	scheduler futures.Scheduler[templates.RenderResult],
) *FileTemplateLoader

NewFileTemplateLoader constructor.

revive:disable:argument-limit

func (*FileTemplateLoader) LoadTemplate

func (templateLoader *FileTemplateLoader) LoadTemplate(
	templatesDirPath string,
	templateName string,
	logger log.Logger,
) (templates.Template, error)

LoadTemplate load template dir.

func (*FileTemplateLoader) TemplateType added in v0.11.1

func (*FileTemplateLoader) TemplateType() string

TemplateType return template type.

type GoTemplate

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

GoTemplate wrap go template and JSON schema.

func NewGoTemplate

func NewGoTemplate(template *templatePkg.Template, logger log.Logger) *GoTemplate

NewGoTemplate constructor.

func (*GoTemplate) Render

func (gt *GoTemplate) Render(data interface{}) (string, error)

Render go template.

type GoTemplateInstanceLoader

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

GoTemplateInstanceLoader load go template.

func NewGoTemplateInstanceLoader added in v0.9.0

func NewGoTemplateInstanceLoader(
	partialsLoader PartialsLoader,
	markMarkdownHelpers MarkdownHelpers,
) *GoTemplateInstanceLoader

NewGoTemplateInstanceLoader constructor.

func (*GoTemplateInstanceLoader) LoadTemplateInstance

func (loader *GoTemplateInstanceLoader) LoadTemplateInstance(
	templateDirPath string,
	partName string,
	logger log.Logger,
	assets templates.Assets,
) (HTMLTemplate, error)

LoadTemplateInstance go template partName from templateDirPath.

func (*GoTemplateInstanceLoader) TemplateName

func (*GoTemplateInstanceLoader) TemplateName(partName string) string

TemplateName return go template name.

func (*GoTemplateInstanceLoader) TemplateType

func (*GoTemplateInstanceLoader) TemplateType() string

TemplateType return go template type.

type HTML2PDFTemplate added in v0.9.1

type HTML2PDFTemplate struct {
	Name      templates.Name
	Body      HTMLTemplate
	Header    HTMLTemplate
	Footer    HTMLTemplate
	Params    *Params
	Validator templates.Validator
	Assets    templates.Assets
	Examples  templates.Examples
	PdfRender pdfrender.PDFRenderer
	Tracer    trace.Tracer
	Scheduler futures.Scheduler[futures.Result[[]byte]]
}

HTML2PDFTemplate wrap TemplateInstance with Schema.

func (*HTML2PDFTemplate) GetAssets added in v0.11.1

func (template *HTML2PDFTemplate) GetAssets() templates.Assets

GetAssets return template assets.

func (*HTML2PDFTemplate) GetExamples added in v0.9.1

func (template *HTML2PDFTemplate) GetExamples() templates.Examples

GetExamples return template examples.

func (*HTML2PDFTemplate) GetName added in v0.9.1

func (template *HTML2PDFTemplate) GetName() templates.Name

GetName return template name.

func (*HTML2PDFTemplate) GetValidator added in v0.9.1

func (template *HTML2PDFTemplate) GetValidator() templates.Validator

GetValidator return template validator.

func (*HTML2PDFTemplate) Render added in v0.9.1

func (template *HTML2PDFTemplate) Render(
	ctx context.Context,
	data templates.Data,
) templates.RenderFuture

Render template with data.

func (*HTML2PDFTemplate) RenderBodyHTML added in v0.11.1

func (template *HTML2PDFTemplate) RenderBodyHTML(
	ctx context.Context,
	data templates.Data,
) (string, error)

RenderBodyHTML implements templates.HTMLPreviewer.

func (*HTML2PDFTemplate) RenderFooterHTML added in v0.11.1

func (template *HTML2PDFTemplate) RenderFooterHTML(
	ctx context.Context,
	data templates.Data,
) (*string, error)

RenderFooterHTML implements templates.HTMLPreviewer.

func (*HTML2PDFTemplate) RenderHeaderHTML added in v0.11.1

func (template *HTML2PDFTemplate) RenderHeaderHTML(
	ctx context.Context,
	data templates.Data,
) (*string, error)

RenderHeaderHTML implements templates.HTMLPreviewer.

type HTMLTemplate added in v0.9.1

type HTMLTemplate interface {
	Render(data interface{}) (string, error)
}

HTMLTemplate render template with data.

type HTMLTemplateLoader added in v0.9.1

type HTMLTemplateLoader interface {
	LoadTemplateInstance(
		templateDirPath string,
		partName string,
		logger log.Logger,
		assets templates.Assets,
	) (HTMLTemplate, error)
}

HTMLTemplateLoader interface.

type HandlebarsTemplate added in v0.9.0

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

HandlebarsTemplate instance.

func (*HandlebarsTemplate) Render added in v0.9.0

func (template *HandlebarsTemplate) Render(data interface{}) (string, error)

Render handlebars template.

type HandlebarsTemplateInstanceLoader added in v0.9.0

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

HandlebarsTemplateInstanceLoader load handlebars template.

func NewHandlebarsTemplateInstanceLoader added in v0.9.0

func NewHandlebarsTemplateInstanceLoader(
	partialsLoader PartialsLoader,
	markdownHelpers MarkdownHelpers,
) *HandlebarsTemplateInstanceLoader

NewHandlebarsTemplateInstanceLoader constructor.

func (*HandlebarsTemplateInstanceLoader) LoadTemplateInstance added in v0.9.0

func (loader *HandlebarsTemplateInstanceLoader) LoadTemplateInstance(
	templateDir string,
	partName string,
	logger log.Logger,
	assets templates.Assets,
) (HTMLTemplate, error)

LoadTemplateInstance load template instance.

func (*HandlebarsTemplateInstanceLoader) TemplateName added in v0.9.0

func (*HandlebarsTemplateInstanceLoader) TemplateName(partName string) string

TemplateName return handlebars template name.

func (*HandlebarsTemplateInstanceLoader) TemplateType added in v0.9.0

func (*HandlebarsTemplateInstanceLoader) TemplateType() string

TemplateType return handlebars template type.

type MarkdownHelpers added in v0.11.1

type MarkdownHelpers interface {
	Markdown(source string) string
}

MarkdownHelpers helpers for markdown.

type MarkdownPartialPreprocessor added in v0.9.0

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

MarkdownPartialPreprocessor pre-processor markdown partials.

func NewMarkdownPartialPreprocessor added in v0.9.0

func NewMarkdownPartialPreprocessor() *MarkdownPartialPreprocessor

NewMarkdownPartialPreprocessor create new MarkdownPartialPreprocessor.

func (*MarkdownPartialPreprocessor) Extensions added in v0.9.0

func (*MarkdownPartialPreprocessor) Extensions() string

Extensions return extensions for markdown partials.

func (*MarkdownPartialPreprocessor) PreprocessString added in v0.11.1

func (processor *MarkdownPartialPreprocessor) PreprocessString(
	rawPayload []byte,
) ([]byte, error)

PreprocessString preprocess markdown partials.

func (*MarkdownPartialPreprocessor) PreprocessTemplate added in v0.9.0

func (processor *MarkdownPartialPreprocessor) PreprocessTemplate(
	ctx context.Context,
	rawPayload []byte,
) ([]byte, error)

PreprocessTemplate preprocess markdown partials.

type MustacheTemplate

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

MustacheTemplate engine.

func NewMustacheTemplate

func NewMustacheTemplate(
	template *mustache.Template,
	logger log.Logger,
) *MustacheTemplate

NewMustacheTemplate constructor.

func (*MustacheTemplate) Render

func (mt *MustacheTemplate) Render(data interface{}) (string, error)

Render mustache template.

type MustacheTemplateInstanceLoader

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

MustacheTemplateInstanceLoader load mustache template.

func NewMustacheTemplateInstanceLoader added in v0.9.0

func NewMustacheTemplateInstanceLoader(
	partialsLoader PartialsLoader,
) *MustacheTemplateInstanceLoader

NewMustacheTemplateInstanceLoader constructor.

func (*MustacheTemplateInstanceLoader) LoadTemplateInstance

func (loader *MustacheTemplateInstanceLoader) LoadTemplateInstance(
	templateDir string,
	partName string,
	logger log.Logger,
	_ templates.Assets,
) (HTMLTemplate, error)

LoadTemplateInstance mustache partName template from templateDir.

func (*MustacheTemplateInstanceLoader) TemplateName

func (*MustacheTemplateInstanceLoader) TemplateName(partName string) string

TemplateName return mustache template name.

func (*MustacheTemplateInstanceLoader) TemplateType

func (*MustacheTemplateInstanceLoader) TemplateType() string

TemplateType return mustache template type.

type NotDirInChildTemplatesDirError added in v0.11.1

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

NotDirInChildTemplatesDirError returned when child templates dir contains not dir entry.

func (NotDirInChildTemplatesDirError) Error added in v0.11.1

type OrderedPartialProcessors added in v0.11.1

type OrderedPartialProcessors []PartialPreprocessor

OrderedPartialProcessors list of processors in order of execution.

func NewOrderedPartialProcessors added in v0.11.1

func NewOrderedPartialProcessors(
	markdownPartialPreprocessor *MarkdownPartialPreprocessor,
) OrderedPartialProcessors

NewOrderedPartialProcessors create new OrderedPartialProcessors.

type OrderedTemplateLoaderBuilders added in v0.11.1

type OrderedTemplateLoaderBuilders []templates.TemplateLoaderBuilder

OrderedTemplateLoaderBuilders is a list of template loader builders.

func DefaultOrderedTemplateLoaderBuilders added in v0.11.1

func DefaultOrderedTemplateLoaderBuilders(
	compositionTemplateLoaderBuilder *compositionLoaderBuilder,
) OrderedTemplateLoaderBuilders

DefaultOrderedTemplateLoaderBuilders return default template loader builders.

type OrderedTemplateLoaders added in v0.11.1

type OrderedTemplateLoaders []templates.TemplateLoader

OrderedTemplateLoaders is a list of template loaders.

func DefaultOrderedTemplateLoaders added in v0.11.1

func DefaultOrderedTemplateLoaders(
	fileTemplateLoader *FileTemplateLoader,
	rawTemplateLoader *RawTemplateLoader,
	httpTemplateLoader *remote.HTTPLoader,
) OrderedTemplateLoaders

DefaultOrderedTemplateLoaders return default template loaders.

type PDFParams added in v0.9.1

type PDFParams struct {
	Landscape         *bool    `json:"landscape"`
	PrintBackground   *bool    `json:"printBackground"`
	PreferCSSPageSize *bool    `json:"preferCSSPageSize"`
	Scale             *float64 `json:"scale"`
	PaperWidth        *float64 `json:"paperWidth"`
	PaperHeight       *float64 `json:"paperHeight"`
	MarginTop         *float64 `json:"marginTop"`
	MarginBottom      *float64 `json:"marginBottom"`
	MarginLeft        *float64 `json:"marginLeft"`
	MarginRight       *float64 `json:"marginRight"`

	WaitLifecycleEvent *pdfrender.WaitLifecycleEvent `json:"waitLifecycleEvent"`
}

PDFParams definition.

func (*PDFParams) BuildPDFRenderConfig added in v0.9.1

func (params *PDFParams) BuildPDFRenderConfig() *pdfrender.Config

BuildPDFRenderConfig build pdfrender.Config from PDFParams.

type Params added in v0.9.1

type Params struct {
	PDF PDFParams `json:"pdf"`
}

Params definition.

type ParamsLoader added in v0.9.1

type ParamsLoader interface {
	LoadParams(
		templateDirPath string,
		logger log.Logger,
	) (*Params, error)
}

ParamsLoader interface.

type PartialPreprocessor added in v0.9.0

type PartialPreprocessor interface {
	Extensions() string
	PreprocessTemplate(ctx context.Context, data []byte) ([]byte, error)
}

PartialPreprocessor interface.

type PartialsLoader added in v0.9.0

type PartialsLoader interface {
	LoadPartials(
		ctx context.Context,
		templateDirName string,
		templateExtension string,
	) (map[string][]byte, error)
}

PartialsLoader interface.

type RawTemplate added in v0.11.1

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

RawTemplate render raw template.

func (*RawTemplate) GetExamples added in v0.11.1

func (*RawTemplate) GetExamples() templates.Examples

GetExamples returns template examples.

func (*RawTemplate) GetName added in v0.11.1

func (template *RawTemplate) GetName() templates.Name

GetName returns template name.

func (*RawTemplate) GetValidator added in v0.11.1

func (*RawTemplate) GetValidator() templates.Validator

GetValidator returns template validator.

func (*RawTemplate) Render added in v0.11.1

func (template *RawTemplate) Render(
	ctx context.Context,
	_ templates.Data,
) templates.RenderFuture

Render renders template.

type RawTemplateLoader added in v0.11.1

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

RawTemplateLoader loads raw templates.

func NewRawTemplateLoader added in v0.11.1

func NewRawTemplateLoader(
	tracerProvider trace.TracerProvider,
) *RawTemplateLoader

NewRawTemplateLoader constructor.

func (*RawTemplateLoader) LoadTemplate added in v0.11.1

func (loader *RawTemplateLoader) LoadTemplate(
	templatesDirPath string,
	templateName string,
	logger log.Logger,
) (templates.Template, error)

LoadTemplate loads template.

func (*RawTemplateLoader) TemplateType added in v0.11.1

func (*RawTemplateLoader) TemplateType() string

TemplateType returns template type.

type StaticTemplate

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

StaticTemplate copy HTML on render.

func NewStaticTemplate

func NewStaticTemplate(
	payload string,
	logger log.Logger,
) *StaticTemplate

NewStaticTemplate constructor.

func (*StaticTemplate) Render

func (st *StaticTemplate) Render(_ interface{}) (string, error)

Render static template.

type StaticTemplateInstanceLoader

type StaticTemplateInstanceLoader struct{}

StaticTemplateInstanceLoader load static template.

func (*StaticTemplateInstanceLoader) LoadTemplateInstance

func (loader *StaticTemplateInstanceLoader) LoadTemplateInstance(
	templateDir string,
	partName string,
	logger log.Logger,
	_ templates.Assets,
) (HTMLTemplate, error)

LoadTemplateInstance static partName template from templateDir.

func (*StaticTemplateInstanceLoader) TemplateName

func (*StaticTemplateInstanceLoader) TemplateName(partName string) string

TemplateName return static template name.

func (*StaticTemplateInstanceLoader) TemplateType

func (*StaticTemplateInstanceLoader) TemplateType() string

TemplateType return static template type.

type StoreLoader added in v0.11.1

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

StoreLoader load templates from directory.

func NewStoreLoader added in v0.11.1

func NewStoreLoader(
	config Config,
	orderedTemplateLoaders OrderedTemplateLoaders,
	orderedTemplateLoaderBuilders OrderedTemplateLoaderBuilders,
	storeProvider templates.StoreProvider,
	logger log.Logger,
) *StoreLoader

NewStoreLoader construct new TemplatesMapLoader.

type SuitableTemplateLoaderNotFoundError added in v0.11.1

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

SuitableTemplateLoaderNotFoundError returned when template loader not found.

func (SuitableTemplateLoaderNotFoundError) Error added in v0.11.1

func (SuitableTemplateLoaderNotFoundError) Unwrap added in v0.11.1

type TemplateFileNotFoundError

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

TemplateFileNotFoundError returned when template not founded on disk.

func NewTemplateFileNotFoundError

func NewTemplateFileNotFoundError(
	templateType string,
	templatePath string,
) *TemplateFileNotFoundError

NewTemplateFileNotFoundError construct new TemplateFileNotFoundError.

func (*TemplateFileNotFoundError) Error

func (err *TemplateFileNotFoundError) Error() string

func (*TemplateFileNotFoundError) Is

func (err *TemplateFileNotFoundError) Is(otherErr error) bool

Is for errors.Is.

type TemplateInstanceLoader

type TemplateInstanceLoader interface {
	LoadTemplateInstance(
		templateDirPath string,
		partName string,
		logger log.Logger,
		assets templates.Assets,
	) (HTMLTemplate, error)
	TemplateType() string
	TemplateName(partName string) string
}

TemplateInstanceLoader interface.

type UnknownPartialExtensionError added in v0.9.0

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

UnknownPartialExtensionError is an error for unknown partial extension.

func (*UnknownPartialExtensionError) Error added in v0.9.0

func (err *UnknownPartialExtensionError) Error() string

Error returns error message.

type UnknownTemplateReloadModeError added in v0.9.0

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

UnknownTemplateReloadModeError returned when unknown template reload mode passed.

func (*UnknownTemplateReloadModeError) Error added in v0.9.0

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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