__result__ variable in bindings
This commit is contained in:
parent
82a4e52384
commit
7eef1d30f3
|
@ -16,7 +16,9 @@ let runFetchResult = (project, sourceId) => {
|
|||
|
||||
let runFetchFlatBindings = (project, sourceId) => {
|
||||
Project.run(project, sourceId)
|
||||
Project.getBindings(project, sourceId)->InternalExpressionValue.toStringBindings
|
||||
Project.getBindings(project, sourceId)
|
||||
->Bindings.removeResult
|
||||
->InternalExpressionValue.toStringBindings
|
||||
}
|
||||
|
||||
test("setting continuation", () => {
|
||||
|
|
|
@ -46,12 +46,12 @@ Case "Running a single source".
|
|||
Getting None means you have forgotten to run the source.
|
||||
*/
|
||||
let result = project->Project.getResult("main")
|
||||
let bindings = project->Project.getBindings("main")
|
||||
let bindings = project->Project.getBindings("main")->Bindings.removeResult
|
||||
|
||||
/* Let's display the result and bindings */
|
||||
(
|
||||
result->InternalExpressionValue.toStringResult,
|
||||
bindings->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(3)", "@{}")
|
||||
/* You've got 3 with empty bindings. */
|
||||
})
|
||||
|
@ -61,7 +61,7 @@ Case "Running a single source".
|
|||
Project.setSource(project, "main", "1 + 2")
|
||||
Project.runAll(project)
|
||||
let result = Project.getResult(project, "main")
|
||||
let bindings = Project.getBindings(project, "main")
|
||||
let bindings = Project.getBindings(project, "main")->Bindings.removeResult
|
||||
/* Now you have external bindings and external result. */
|
||||
(
|
||||
result->InternalExpressionValue.toStringResult,
|
||||
|
@ -89,7 +89,7 @@ Case "Running a single source".
|
|||
let (result, bindings) = Project.evaluate("1+2")
|
||||
(
|
||||
result->InternalExpressionValue.toStringResult,
|
||||
bindings->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings->Bindings.removeResult->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(3)", "@{}")
|
||||
})
|
||||
})
|
||||
|
|
|
@ -29,11 +29,11 @@ describe("ReducerProject Tutorial", () => {
|
|||
|
||||
/* And let's check the result and bindings of source3 */
|
||||
let result3 = Project.getResult(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")->Bindings.removeResult
|
||||
|
||||
(
|
||||
result3->InternalExpressionValue.toStringResult,
|
||||
bindings3->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings3->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(())", "@{x: 1,y: 2,z: 3}")
|
||||
})
|
||||
|
||||
|
@ -55,11 +55,11 @@ describe("ReducerProject Tutorial", () => {
|
|||
|
||||
/* And let's check the result and bindings of source3 */
|
||||
let result3 = Project.getResult(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")->Bindings.removeResult
|
||||
|
||||
(
|
||||
result3->InternalExpressionValue.toStringResult,
|
||||
bindings3->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings3->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(())", "@{x: 1,y: 2,z: 3}")
|
||||
})
|
||||
|
||||
|
@ -91,11 +91,11 @@ describe("ReducerProject Tutorial", () => {
|
|||
This time you are getting all the variables because we are including the other sources
|
||||
Behind the scenes parseIncludes is setting the dependencies */
|
||||
let result3 = Project.getResult(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")
|
||||
let bindings3 = Project.getBindings(project, "source3")->Bindings.removeResult
|
||||
|
||||
(
|
||||
result3->InternalExpressionValue.toStringResult,
|
||||
bindings3->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings3->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(())", "@{x: 1,y: 2,z: 3}")
|
||||
/*
|
||||
Doing it like this is too verbose for a storybook
|
||||
|
|
|
@ -147,7 +147,7 @@ Here we will finally proceed to a real life scenario. */
|
|||
test("recursive includes", () => {
|
||||
(
|
||||
result->InternalExpressionValue.toStringResult,
|
||||
bindings->InternalExpressionValue.IEvBindings->InternalExpressionValue.toString,
|
||||
bindings->Bindings.removeResult->InternalExpressionValue.toStringBindings,
|
||||
)->expect == ("Ok(6)", "@{doubleX: 2,x: 1,y: 2,z: 3}")
|
||||
/* Everything as expected */
|
||||
})
|
||||
|
|
|
@ -183,3 +183,7 @@ let chainTo = (nameSpace: t, previousNameSpaces: array<t>) => {
|
|||
mergeFrom(prevNameSpace, topNameSpace)
|
||||
)
|
||||
}
|
||||
|
||||
let removeResult = (NameSpace(container): t): t => {
|
||||
container->Belt.Map.String.remove("__result__")->NameSpace
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ let callInternal = (
|
|||
|
||||
let doDumpBindings = (continuation: nameSpace, value: internalExpressionValue) => {
|
||||
// let _ = Continuation.inspect(continuation, "doDumpBindings")
|
||||
accessors.states.continuation = continuation
|
||||
accessors.states.continuation = continuation->Bindings.set("__result__", value)
|
||||
value->Ok
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user