You've already forked pocketbase
mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-11-27 00:20:27 +02:00
[#6563] fixed DynamicModel object/array props reflect type caching
This commit is contained in:
@@ -1019,8 +1019,6 @@ func structConstructorUnmarshal(vm *goja.Runtime, call goja.ConstructorCall, ins
|
||||
return instanceValue
|
||||
}
|
||||
|
||||
var cachedDynamicModels = store.New[string, *dynamicModelType](nil)
|
||||
|
||||
// newDynamicModel creates a new dynamic struct with fields based
|
||||
// on the specified "shape".
|
||||
//
|
||||
@@ -1031,16 +1029,7 @@ var cachedDynamicModels = store.New[string, *dynamicModelType](nil)
|
||||
// "total": 0,
|
||||
// })
|
||||
func newDynamicModel(shape map[string]any) any {
|
||||
var modelType *dynamicModelType
|
||||
|
||||
shapeRaw, err := json.Marshal(shape)
|
||||
if err != nil {
|
||||
modelType = getDynamicModelStruct(shape)
|
||||
} else {
|
||||
modelType = cachedDynamicModels.GetOrSet(string(shapeRaw), func() *dynamicModelType {
|
||||
return getDynamicModelStruct(shape)
|
||||
})
|
||||
}
|
||||
modelType := getDynamicModelStruct(shape)
|
||||
|
||||
rvShapeValues := make([]reflect.Value, len(modelType.shapeValues))
|
||||
for i, v := range modelType.shapeValues {
|
||||
|
||||
Reference in New Issue
Block a user