adding ent client context load/store support

Summary: Pull Request resolved: https://github.com/facebookexternal/fbc/pull/1148

Reviewed By: a8m

Differential Revision: D16202464

fbshipit-source-id: 15174e19e5e514774928e4e682d1c2743e863a26
This commit is contained in:
Alex Snast
2019-07-14 08:30:31 -07:00
committed by Facebook Github Bot
parent f46c8f8848
commit ad051e6d72
4 changed files with 112 additions and 31 deletions

View File

@@ -1,4 +1,4 @@
// Code generated by go-bindata. (@generated) DO NOT EDIT.
// Package gen Code generated by go-bindata. (@generated) DO NOT EDIT.
// sources:
// template/base.tmpl
// template/builder/create.tmpl
@@ -8,6 +8,7 @@
// template/builder/update.tmpl
// template/client.tmpl
// template/config.tmpl
// template/context.tmpl
// template/dialect/gremlin/create.tmpl
// template/dialect/gremlin/delete.tmpl
// template/dialect/gremlin/group.tmpl
@@ -73,21 +74,32 @@ type bindataFileInfo struct {
modTime time.Time
}
// Name return file name
func (fi bindataFileInfo) Name() string {
return fi.name
}
// Size return file size
func (fi bindataFileInfo) Size() int64 {
return fi.size
}
// Mode return file mode
func (fi bindataFileInfo) Mode() os.FileMode {
return fi.mode
}
// Mode return file modify time
func (fi bindataFileInfo) ModTime() time.Time {
return fi.modTime
}
// IsDir return file whether a directory
func (fi bindataFileInfo) IsDir() bool {
return false
return fi.mode&os.ModeDir != 0
}
// Sys return file is sys mode
func (fi bindataFileInfo) Sys() interface{} {
return nil
}
@@ -107,7 +119,7 @@ func templateBaseTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/base.tmpl", size: 7712, mode: os.FileMode(420), modTime: time.Unix(1562276292, 0)}
info := bindataFileInfo{name: "template/base.tmpl", size: 7712, mode: os.FileMode(420), modTime: time.Unix(1562258189, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -127,7 +139,7 @@ func templateBuilderCreateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/builder/create.tmpl", size: 2706, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/builder/create.tmpl", size: 2706, mode: os.FileMode(420), modTime: time.Unix(1560858190, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -147,7 +159,7 @@ func templateBuilderDeleteTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/builder/delete.tmpl", size: 1903, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/builder/delete.tmpl", size: 1903, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -167,7 +179,7 @@ func templateBuilderQueryTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/builder/query.tmpl", size: 13074, mode: os.FileMode(420), modTime: time.Unix(1561470397, 0)}
info := bindataFileInfo{name: "template/builder/query.tmpl", size: 13074, mode: os.FileMode(420), modTime: time.Unix(1561538327, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -187,7 +199,7 @@ func templateBuilderSetterTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/builder/setter.tmpl", size: 2911, mode: os.FileMode(420), modTime: time.Unix(1555862705, 0)}
info := bindataFileInfo{name: "template/builder/setter.tmpl", size: 2911, mode: os.FileMode(420), modTime: time.Unix(1560858191, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -207,7 +219,7 @@ func templateBuilderUpdateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/builder/update.tmpl", size: 7109, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/builder/update.tmpl", size: 7109, mode: os.FileMode(420), modTime: time.Unix(1560858190, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -227,7 +239,7 @@ func templateClientTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/client.tmpl", size: 5596, mode: os.FileMode(420), modTime: time.Unix(1558976196, 0)}
info := bindataFileInfo{name: "template/client.tmpl", size: 5596, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -247,7 +259,27 @@ func templateConfigTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/config.tmpl", size: 1080, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/config.tmpl", size: 1080, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
var _templateContextTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x91\x31\x6b\xc3\x30\x10\x85\xe7\xe8\x57\x3c\x4c\xa0\x76\x31\xce\x5e\xe8\x14\xe8\x52\x28\x9d\xda\xb1\xa8\xf2\xd9\x16\x71\x4e\x46\x3e\x37\x09\xc2\xff\xbd\xa8\xb2\x9b\x90\x55\xf7\xee\xd3\xf7\xb8\x10\x50\x53\x63\x99\x90\x19\xc7\x42\x67\xc9\x30\xcf\x4a\x85\x80\xed\x70\x68\xf1\xf4\x8c\x6f\x3d\x12\xb6\xd5\xde\x71\x63\xdb\xea\x5d\x9b\x83\x6e\x29\x86\x42\x80\xd0\x71\xe8\xb5\x10\xb2\x8e\x74\x4d\x3e\x4b\x5b\x91\x60\x8f\x83\xf3\x82\x5c\x6d\xfe\xc9\xaa\x50\x4a\x2e\x03\x61\x79\x78\xa5\x0b\x46\xf1\x93\x91\x30\x2b\xb5\xdb\xe1\xc5\xbb\xe3\x3e\xcd\xe0\x49\x26\xcf\x23\xa4\x23\xec\x7b\x4b\x2c\x18\xc5\x79\xaa\x61\x19\x7a\x45\x94\x70\x1e\x6c\x7b\xd8\x26\x26\x3d\xc1\x8e\xfc\x20\x70\x4c\x95\x6a\x26\x36\xb7\xcc\xdc\xc8\x79\x5d\xac\x96\xb7\x02\x8f\x0b\x3d\xa8\x8d\x29\xf1\x15\x2b\x1b\x39\x57\x1f\xba\x9f\x28\xbf\x9a\x86\xb9\xa8\xf2\x25\x5b\xa8\x4d\xd2\x83\x51\xc9\xfc\x8d\x4e\xf7\xe2\x1a\x4c\xa7\xf5\x3b\x9c\xac\x74\x7f\x5d\x5a\xfb\x43\xbc\x36\xd2\x22\xda\x74\x54\x2f\xae\x57\x4a\x3e\x68\x1f\x03\x77\xb6\x25\xcc\xea\x5b\xdc\xcf\x62\x81\xd5\x6a\x99\x7c\x5a\xe9\x52\x8f\x84\x2b\x71\xdb\xa7\x84\x29\x54\xba\x35\x71\x1d\x8f\xf6\x1b\x00\x00\xff\xff\xa0\xc2\xb0\x6f\x0e\x02\x00\x00")
func templateContextTmplBytes() ([]byte, error) {
return bindataRead(
_templateContextTmpl,
"template/context.tmpl",
)
}
func templateContextTmpl() (*asset, error) {
bytes, err := templateContextTmplBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "template/context.tmpl", size: 526, mode: os.FileMode(420), modTime: time.Unix(1563105189, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -267,7 +299,7 @@ func templateDialectGremlinCreateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/gremlin/create.tmpl", size: 2567, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/dialect/gremlin/create.tmpl", size: 2567, mode: os.FileMode(420), modTime: time.Unix(1560858191, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -287,7 +319,7 @@ func templateDialectGremlinDeleteTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/gremlin/delete.tmpl", size: 549, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/dialect/gremlin/delete.tmpl", size: 549, mode: os.FileMode(420), modTime: time.Unix(1560858190, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -307,7 +339,7 @@ func templateDialectGremlinGroupTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/gremlin/group.tmpl", size: 1151, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/dialect/gremlin/group.tmpl", size: 1151, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -327,7 +359,7 @@ func templateDialectGremlinQueryTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/gremlin/query.tmpl", size: 2505, mode: os.FileMode(420), modTime: time.Unix(1561481160, 0)}
info := bindataFileInfo{name: "template/dialect/gremlin/query.tmpl", size: 2505, mode: os.FileMode(420), modTime: time.Unix(1561538327, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -347,7 +379,7 @@ func templateDialectGremlinUpdateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/gremlin/update.tmpl", size: 4708, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/dialect/gremlin/update.tmpl", size: 4708, mode: os.FileMode(420), modTime: time.Unix(1560858191, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -367,7 +399,7 @@ func templateDialectSqlCreateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/sql/create.tmpl", size: 6061, mode: os.FileMode(420), modTime: time.Unix(1562330003, 0)}
info := bindataFileInfo{name: "template/dialect/sql/create.tmpl", size: 6061, mode: os.FileMode(420), modTime: time.Unix(1562774910, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -387,7 +419,7 @@ func templateDialectSqlDeleteTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/sql/delete.tmpl", size: 493, mode: os.FileMode(420), modTime: time.Unix(1558541632, 0)}
info := bindataFileInfo{name: "template/dialect/sql/delete.tmpl", size: 493, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -407,7 +439,7 @@ func templateDialectSqlGroupTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/sql/group.tmpl", size: 835, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/dialect/sql/group.tmpl", size: 835, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -427,7 +459,7 @@ func templateDialectSqlQueryTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/sql/query.tmpl", size: 2732, mode: os.FileMode(420), modTime: time.Unix(1561476415, 0)}
info := bindataFileInfo{name: "template/dialect/sql/query.tmpl", size: 2732, mode: os.FileMode(420), modTime: time.Unix(1561538327, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -447,7 +479,7 @@ func templateDialectSqlUpdateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/dialect/sql/update.tmpl", size: 11248, mode: os.FileMode(420), modTime: time.Unix(1561989286, 0)}
info := bindataFileInfo{name: "template/dialect/sql/update.tmpl", size: 11248, mode: os.FileMode(420), modTime: time.Unix(1562007725, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -467,7 +499,7 @@ func templateEntTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/ent.tmpl", size: 6668, mode: os.FileMode(420), modTime: time.Unix(1562329488, 0)}
info := bindataFileInfo{name: "template/ent.tmpl", size: 6668, mode: os.FileMode(420), modTime: time.Unix(1562774910, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -487,7 +519,7 @@ func templateExampleTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/example.tmpl", size: 2407, mode: os.FileMode(420), modTime: time.Unix(1560602349, 0)}
info := bindataFileInfo{name: "template/example.tmpl", size: 2407, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -507,7 +539,7 @@ func templateHeaderTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/header.tmpl", size: 101, mode: os.FileMode(420), modTime: time.Unix(1554626550, 0)}
info := bindataFileInfo{name: "template/header.tmpl", size: 101, mode: os.FileMode(420), modTime: time.Unix(1560858191, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -527,7 +559,7 @@ func templateImportTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/import.tmpl", size: 558, mode: os.FileMode(420), modTime: time.Unix(1561475554, 0)}
info := bindataFileInfo{name: "template/import.tmpl", size: 558, mode: os.FileMode(420), modTime: time.Unix(1561538327, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -547,7 +579,7 @@ func templateMetaTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/meta.tmpl", size: 3550, mode: os.FileMode(420), modTime: time.Unix(1558789265, 0)}
info := bindataFileInfo{name: "template/meta.tmpl", size: 3550, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -567,7 +599,7 @@ func templateMigrateMigrateTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/migrate/migrate.tmpl", size: 2660, mode: os.FileMode(420), modTime: time.Unix(1561902105, 0)}
info := bindataFileInfo{name: "template/migrate/migrate.tmpl", size: 2660, mode: os.FileMode(420), modTime: time.Unix(1562007725, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -587,7 +619,7 @@ func templateMigrateSchemaTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/migrate/schema.tmpl", size: 936, mode: os.FileMode(420), modTime: time.Unix(1558503319, 0)}
info := bindataFileInfo{name: "template/migrate/schema.tmpl", size: 936, mode: os.FileMode(420), modTime: time.Unix(1560858191, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -607,7 +639,7 @@ func templateTxTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/tx.tmpl", size: 3426, mode: os.FileMode(420), modTime: time.Unix(1560345874, 0)}
info := bindataFileInfo{name: "template/tx.tmpl", size: 3426, mode: os.FileMode(420), modTime: time.Unix(1560858190, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -627,7 +659,7 @@ func templateWhereTmpl() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "template/where.tmpl", size: 6958, mode: os.FileMode(420), modTime: time.Unix(1559829316, 0)}
info := bindataFileInfo{name: "template/where.tmpl", size: 6958, mode: os.FileMode(420), modTime: time.Unix(1560858192, 0)}
a := &asset{bytes: bytes, info: info}
return a, nil
}
@@ -692,6 +724,7 @@ var _bindata = map[string]func() (*asset, error){
"template/builder/update.tmpl": templateBuilderUpdateTmpl,
"template/client.tmpl": templateClientTmpl,
"template/config.tmpl": templateConfigTmpl,
"template/context.tmpl": templateContextTmpl,
"template/dialect/gremlin/create.tmpl": templateDialectGremlinCreateTmpl,
"template/dialect/gremlin/delete.tmpl": templateDialectGremlinDeleteTmpl,
"template/dialect/gremlin/group.tmpl": templateDialectGremlinGroupTmpl,
@@ -763,8 +796,9 @@ var _bintree = &bintree{nil, map[string]*bintree{
"setter.tmpl": &bintree{templateBuilderSetterTmpl, map[string]*bintree{}},
"update.tmpl": &bintree{templateBuilderUpdateTmpl, map[string]*bintree{}},
}},
"client.tmpl": &bintree{templateClientTmpl, map[string]*bintree{}},
"config.tmpl": &bintree{templateConfigTmpl, map[string]*bintree{}},
"client.tmpl": &bintree{templateClientTmpl, map[string]*bintree{}},
"config.tmpl": &bintree{templateConfigTmpl, map[string]*bintree{}},
"context.tmpl": &bintree{templateContextTmpl, map[string]*bintree{}},
"dialect": &bintree{nil, map[string]*bintree{
"gremlin": &bintree{nil, map[string]*bintree{
"create.tmpl": &bintree{templateDialectGremlinCreateTmpl, map[string]*bintree{}},

View File

@@ -57,6 +57,10 @@ var (
Name: "client",
Format: "client.go",
},
{
Name: "context",
Format: "context.go",
},
{
Name: "tx",
Format: "tx.go",

View File

@@ -0,0 +1,23 @@
{{ define "context" }}
{{ $pkg := base $.Config.Package }}
{{ template "header" $pkg }}
import (
"context"
)
type contextKey struct{}
// FromContext returns the Client stored in a context, or nil if there isn't one.
func FromContext(ctx context.Context) *Client {
c, _ := ctx.Value(contextKey{}).(*Client)
return c
}
// NewContext returns a new context with the given Client attached.
func NewContext(parent context.Context, c *Client) context.Context {
return context.WithValue(parent, contextKey{}, c)
}
{{ end }}

View File

@@ -0,0 +1,20 @@
// Code generated (@generated) by entc, DO NOT EDIT.
package ent
import (
"context"
)
type contextKey struct{}
// FromContext returns the Client stored in a context, or nil if there isn't one.
func FromContext(ctx context.Context) *Client {
c, _ := ctx.Value(contextKey{}).(*Client)
return c
}
// NewContext returns a new context with the given Client attached.
func NewContext(parent context.Context, c *Client) context.Context {
return context.WithValue(parent, contextKey{}, c)
}