koron-go / materialize

component's dependency separator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

koron-go/materialize

PkgGoDev Actions/Go Go Report Card

Component's dependencies separator

Gettings started

At first, register a factory of *sql.DB as component.

import "github.com/koron-go/materialize"

materialize.MustAdd(func() (*sql.DB, error) {
  return sql.Open(os.Getenv("DB_DRIVER"), os.Getenv("DB_DATASOURCE_NAME"))
})

Then, obtain a *sql.DB instance when you use. The instance will be created automatically, and managed as singleton.

var db *sql.DB
err := materialize.Materialize(&db)
if err != nil {
  return err
}
// TODO: let's work with "db".

All materiazlied instances which implement Close() error or Close() method, will be closed when you call materialize.CloseAll().

materialize.CloseAll()

About

component's dependency separator

License:MIT License


Languages

Language:Go 98.0%Language:Makefile 2.0%