prisma-client-lib
Advanced tools
Comparing version 1.34.8 to 1.34.10
@@ -52,2 +52,3 @@ "use strict"; | ||
} | ||
var objectName = type.name.replace('Connection', ''); | ||
return "\n type " + goCase(type.name) + "Exec struct {\n exec *prisma.Exec\n }\n\n " + Object.keys(fieldMap) | ||
@@ -101,5 +102,4 @@ .filter(function (key) { | ||
// edges is a special case where a field `node` has nested fields | ||
var objectName = type.name.replace('Connection', ''); | ||
return (sTyp + | ||
("\n func (instance *" + goCase(type.name) + "Exec) " + goCase(field.name) + "() *" + objectName + "EdgeExecArray {\n edges := instance.exec.Client.GetMany(\n instance.exec,\n nil,\n [3]string{\"" + objectName + "WhereInput\", \"" + objectName + "OrderByInput\", \"" + objectName + "Edge\"},\n \"edges\",\n []string{\"cursor\"})\n\n nodes := edges.Client.GetMany(\n edges,\n nil,\n [3]string{\"\", \"\", \"" + objectName + "\"},\n \"node\",\n []string{\"id\", \"createdAt\", \"updatedAt\", \"name\", \"desc\"})\n\n return &" + objectName + "EdgeExecArray{nodes}\n }")); | ||
("\n func (instance *" + goCase(type.name) + "Exec) " + goCase(field.name) + "() *" + objectName + "EdgeExecArray {\n edges := instance.exec.Client.GetMany(\n instance.exec,\n nil,\n [3]string{\"" + objectName + "WhereInput\", \"" + objectName + "OrderByInput\", \"" + objectName + "Edge\"},\n \"edges\",\n []string{" + typeFields.join(',') + "})\n\n nodes := edges.Client.GetOne(\n edges,\n nil,\n [2]string{\"\", \"" + objectName + "\"},\n \"node\",\n " + objectName + "Fields)\n\n return &" + objectName + "EdgeExecArray{nodes}\n }")); | ||
} | ||
@@ -110,5 +110,22 @@ return (sTyp + | ||
}) | ||
.join('\n') + "\n\n func (instance " + goCase(type.name) + "Exec) Exec(ctx context.Context) (*" + goCase(type.name) + ", error) {\n var v " + goCase(type.name) + "\n ok, err := instance.exec.Exec(ctx, &v)\n if err != nil {\n return nil, err\n }\n if !ok {\n return nil, ErrNoResult\n }\n return &v, nil\n }\n\n func (instance " + goCase(type.name) + "Exec) Exists(ctx context.Context) (bool, error) {\n return instance.exec.Exists(ctx)\n }\n\n type " + goCase(type.name) + "ExecArray struct {\n exec *prisma.Exec\n }\n\n func (instance " + goCase(type.name) + "ExecArray) Exec(ctx context.Context) ([]" + goCase(type.name) + ", error) {\n var v []" + goCase(type.name) + "\n err := instance.exec.ExecArray(ctx, &v)\n return v, err\n }\n\n type " + goCase(type.name) + " struct {\n " + Object.keys(fieldMap) | ||
.join('\n') + "\n\n " + ( | ||
// Connection.Exec gets a special method, because it's the only time it fetches multiple things | ||
// currently, there is no easy way to fetch multiple things, so we just get Edges() and PageInfo() | ||
// separately, which is not super efficient but sufficient for the v1 client | ||
type.name.endsWith('Connection') | ||
? "\n func (instance " + goCase(type.name) + "Exec) Exec(ctx context.Context) (*" + goCase(type.name) + ", error) {\n edges, err := instance.Edges().Exec(ctx)\n if err != nil {\n return nil, err\n }\n\n pageInfo, err := instance.PageInfo().Exec(ctx)\n if err != nil {\n return nil, err\n }\n\n return &" + goCase(type.name) + "{\n Edges: edges,\n PageInfo: *pageInfo,\n }, nil\n }\n " | ||
: "\n func (instance " + goCase(type.name) + "Exec) Exec(ctx context.Context) (*" + goCase(type.name) + ", error) {\n var v " + goCase(type.name) + "\n ok, err := instance.exec.Exec(ctx, &v)\n if err != nil {\n return nil, err\n }\n if !ok {\n return nil, ErrNoResult\n }\n return &v, nil\n }\n ") + "\n\n func (instance " + goCase(type.name) + "Exec) Exists(ctx context.Context) (bool, error) {\n return instance.exec.Exists(ctx)\n }\n\n type " + goCase(type.name) + "ExecArray struct {\n exec *prisma.Exec\n }\n\n func (instance " + goCase(type.name) + "ExecArray) Exec(ctx context.Context) ([]" + goCase(type.name) + ", error) {\n var v []" + goCase(type.name) + "\n err := instance.exec.ExecArray(ctx, &v)\n return v, err\n }\n\n var " + type.name + "Fields = []string{" + | ||
// saves all node fields | ||
// this type is required to make it available in connection queries (connection->edge->node) | ||
Object | ||
.keys(fieldMap) | ||
.filter(function (key) { | ||
var field = fieldMap[key]; | ||
var _a = _this.extractFieldLikeType(field), isScalar = _a.isScalar, isEnum = _a.isEnum; | ||
return isScalar || isEnum; | ||
}) | ||
.map(function (i) { return "\"" + i + "\""; }) | ||
.join(', ') + "}\n\n type " + goCase(type.name) + " struct {\n " + Object.keys(fieldMap) | ||
.filter(function (key) { | ||
var field = fieldMap[key]; | ||
var _a = _this.extractFieldLikeType(field), name = _a.name, isScalar = _a.isScalar, isEnum = _a.isEnum; | ||
@@ -303,5 +320,5 @@ // include specific connection-related fields | ||
var param = this.paramsType(field); | ||
var objectName = goCase(field.name).replace('s' + 'Connection', ''); | ||
var objectName = goCase(typeName).replace('Connection', ''); | ||
return (param.code + | ||
("\n func (client *Client) " + goCase(field.name) + " (params *" + param.type + ") (*" + goCase(typeName) + "Exec) {\n var wparams *prisma.WhereParams\n if params != nil {\n wparams = &prisma.WhereParams{\n Where: params.Where,\n OrderBy: (*string)(params.OrderBy),\n Skip: params.Skip,\n After: params.After,\n Before: params.Before,\n First: params.First,\n Last: params.Last,\n }\n }\n\n ret := client.Client.GetMany(\n nil,\n wparams,\n [3]string{\"" + objectName + "WhereInput\", \"" + objectName + "OrderByInput\", \"" + objectName + "\"},\n \"" + field.name + "\",\n []string{\"edges\", \"pageInfo\"})\n\n return &" + goCase(typeName) + "Exec{ret}\n }")); | ||
("\n // Nodes return just nodes without cursors. It uses the already fetched edges.\n func (s *" + goCase(typeName) + ") Nodes() []" + objectName + " {\n var nodes []" + objectName + "\n for _, edge := range s.Edges {\n nodes = append(nodes, edge.Node)\n }\n return nodes\n }\n\n // Nodes return just nodes without cursors, but as a slice of pointers. It uses the already fetched edges.\n func (s *" + goCase(typeName) + ") NodesPtr() []*" + objectName + " {\n var nodes []*" + objectName + "\n for _, edge := range s.Edges {\n item := edge\n nodes = append(nodes, &item.Node)\n }\n return nodes\n }\n\n func (client *Client) " + goCase(field.name) + " (params *" + param.type + ") (*" + goCase(typeName) + "Exec) {\n var wparams *prisma.WhereParams\n if params != nil {\n wparams = &prisma.WhereParams{\n Where: params.Where,\n OrderBy: (*string)(params.OrderBy),\n Skip: params.Skip,\n After: params.After,\n Before: params.Before,\n First: params.First,\n Last: params.Last,\n }\n }\n\n ret := client.Client.GetMany(\n nil,\n wparams,\n [3]string{\"" + objectName + "WhereInput\", \"" + objectName + "OrderByInput\", \"" + objectName + "\"},\n \"" + field.name + "\",\n []string{\"edges\", \"pageInfo\"})\n\n return &" + goCase(typeName) + "Exec{ret}\n }")); | ||
}; | ||
@@ -308,0 +325,0 @@ GoGenerator.prototype.opCreate = function (field) { |
{ | ||
"name": "prisma-client-lib", | ||
"version": "1.34.8", | ||
"version": "1.34.10", | ||
"author": "Tim Suchanek <suchanek@prisma.io>", | ||
@@ -33,4 +33,4 @@ "license": "Apache-2.0", | ||
"prettier": "1.16.4", | ||
"prisma-datamodel": "1.34.8", | ||
"prisma-generate-schema": "1.34.8", | ||
"prisma-datamodel": "1.34.10", | ||
"prisma-generate-schema": "1.34.10", | ||
"subscriptions-transport-ws": "^0.9.15", | ||
@@ -37,0 +37,0 @@ "uppercamelcase": "^3.0.0", |
Sorry, the diff of this file is not supported yet
296030
3813
+ Addedprisma-datamodel@1.34.10(transitive)
+ Addedprisma-generate-schema@1.34.10(transitive)
- Removedprisma-datamodel@1.34.8(transitive)
- Removedprisma-generate-schema@1.34.8(transitive)
Updatedprisma-datamodel@1.34.10