add GetRuntimeContextValue func

This commit is contained in:
syumai 2023-06-25 18:22:59 +09:00 committed by a
parent 39aecde5ab
commit b0b26fc15a
No known key found for this signature in database
GPG Key ID: 374BC539FE795AF0

View File

@ -2,6 +2,7 @@ package cfruntimecontext
import (
"context"
"errors"
"syscall/js"
"github.com/syumai/workers/internal/runtimecontext"
@ -13,6 +14,7 @@ import (
* type RuntimeContext {
* env: Env;
* ctx: ExecutionContext;
* ...
* }
* ```
* This type is based on the type definition of ExportedHandlerFetchHandler.
@ -33,3 +35,16 @@ func GetExecutionContext(ctx context.Context) js.Value {
runtimeCtxValue := runtimecontext.MustExtract(ctx)
return runtimeCtxValue.Get("ctx")
}
var ErrValueNotFound = errors.New("execution context value for specified key not found")
// GetRuntimeContextValue gets value for specified key from RuntimeContext.
// - if the value is undefined, return error.
func GetRuntimeContextValue(ctx context.Context, key string) (js.Value, error) {
runtimeCtxValue := runtimecontext.MustExtract(ctx)
v := runtimeCtxValue.Get(key)
if v.IsUndefined() {
return js.Value{}, ErrValueNotFound
}
return v, nil
}