Conversation
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/207b39e6-c3a8-4822-b7ad-31589e0a984e Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/207b39e6-c3a8-4822-b7ad-31589e0a984e Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/207b39e6-c3a8-4822-b7ad-31589e0a984e Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
|
@copilot remove fn/wrap and other command related helpers from queries, and enforce Command helpers to work with type: “command” only |
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/a83dabc4-7697-47f9-b57a-cff535a0200d Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
Done in
|
|
@copilot rename .fetch to .request |
TaggedRequestFor into Query/Command factories and enforce helper surface by request kindTaggedRequestFor into Query/Command factories and enforce helper surfaces by request kind
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/94200174-a762-4f4f-9694-fcde39079683 Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
|
@copilot update tests to actually test on Commands (with and without dependencies), as Queries don't have these helpers anymore anyway. |
Done in Renamed the Vue request helper from |
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/0f13e328-67ff-4d47-a725-8bd28ad338d4 Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
... Done in I updated No UI changes in this PR (type-test only), so screenshot is not applicable. |
|
@copilot add jsdoc on all:
|
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/4258e834-6915-4825-a2b0-a32258f1510e Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
Done in I added JSDoc for
No UI changes in this PR, so screenshot is not applicable. |
|
@copilot MutationExtWithInput still seems to have a stray function definition that should no longer be there: /**
* Send the request to the endpoint and return the raw Effect response.
* Also invalidates query caches using the request namespace by default.
* Namespace invalidation targets parent namespace keys
* (for example `$project/$configuration.get` invalidates `$project`).
* Override invalidation in client options via `queryInvalidation`.
*/
(i: I): Effect.Effect<A, E, R> |
Agent-Logs-Url: https://github.com/effect-app/libs/sessions/df606d86-8d4f-4d9b-9c8e-3af0b7dfbfc8 Co-authored-by: patroza <42661+patroza@users.noreply.github.com>
... Addressed in I reshaped No UI changes in this PR, so screenshot is not applicable. |
|
@copilot actually I was wrong, please undo it. |
This reverts commit c303476.
TaggedRequestForpreviously produced a single request factory, so requests were not explicitly typed as query vs command and Vue client helpers exposed mixed query/mutation APIs on all operations. This change introduces request-kind tagging at definition time and narrows helper exposure to match that kind.Request factory model
TaggedRequestFor(moduleName)now returns an object with:QueryCommandmoduleNametype: "query" | "command"in addition toidandmoduleName.Core request typing
Reqnow includes a requiredtypediscriminator ("query" | "command"), enabling downstream type-level gating.Vue client helper gating
query,suspense,request).mutate,request).fn,wrap).helpers.*Request) are now restricted totype: "command"requests only.Call-site and test updates
TaggedRequestFor("X")<...>()(...)to explicitTaggedRequestFor("X").Query/.Command.effect-app,infra, andvue..fetchto.requestin types/tests/docs.effect-appand@effect-app/vue.