@justscale/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +261 -0
- package/bin/just.js +34 -0
- package/dist/app.d.ts +56 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +182 -0
- package/dist/app.js.map +1 -0
- package/dist/builder/build-context.d.ts +8 -0
- package/dist/builder/build-context.d.ts.map +1 -0
- package/dist/builder/build-context.js +4 -0
- package/dist/builder/build-context.js.map +1 -0
- package/dist/builder/builder.d.ts +60 -0
- package/dist/builder/builder.d.ts.map +1 -0
- package/dist/builder/builder.js +72 -0
- package/dist/builder/builder.js.map +1 -0
- package/dist/builder/create-builder.d.ts +36 -0
- package/dist/builder/create-builder.d.ts.map +1 -0
- package/dist/builder/create-builder.js +66 -0
- package/dist/builder/create-builder.js.map +1 -0
- package/dist/builder/execute.d.ts +37 -0
- package/dist/builder/execute.d.ts.map +1 -0
- package/dist/builder/execute.js +62 -0
- package/dist/builder/execute.js.map +1 -0
- package/dist/builder/feature-builder.d.ts +147 -0
- package/dist/builder/feature-builder.d.ts.map +1 -0
- package/dist/builder/feature-builder.js +138 -0
- package/dist/builder/feature-builder.js.map +1 -0
- package/dist/builder/index.d.ts +35 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +37 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/plugin.d.ts +90 -0
- package/dist/builder/plugin.d.ts.map +1 -0
- package/dist/builder/plugin.js +101 -0
- package/dist/builder/plugin.js.map +1 -0
- package/dist/builder/plugins/query.d.ts +31 -0
- package/dist/builder/plugins/query.d.ts.map +1 -0
- package/dist/builder/plugins/query.js +42 -0
- package/dist/builder/plugins/query.js.map +1 -0
- package/dist/builder/plugins/validation.d.ts +12 -0
- package/dist/builder/plugins/validation.d.ts.map +1 -0
- package/dist/builder/plugins/validation.js +12 -0
- package/dist/builder/plugins/validation.js.map +1 -0
- package/dist/builder/sort.d.ts +27 -0
- package/dist/builder/sort.d.ts.map +1 -0
- package/dist/builder/sort.js +210 -0
- package/dist/builder/sort.js.map +1 -0
- package/dist/builder/stop.d.ts +24 -0
- package/dist/builder/stop.d.ts.map +1 -0
- package/dist/builder/stop.js +27 -0
- package/dist/builder/stop.js.map +1 -0
- package/dist/builder/test/permits-type-spike.d.ts +8 -0
- package/dist/builder/test/permits-type-spike.d.ts.map +1 -0
- package/dist/builder/test/permits-type-spike.js +117 -0
- package/dist/builder/test/permits-type-spike.js.map +1 -0
- package/dist/builder/types.d.ts +678 -0
- package/dist/builder/types.d.ts.map +1 -0
- package/dist/builder/types.js +98 -0
- package/dist/builder/types.js.map +1 -0
- package/dist/builder/validation.d.ts +101 -0
- package/dist/builder/validation.d.ts.map +1 -0
- package/dist/builder/validation.js +335 -0
- package/dist/builder/validation.js.map +1 -0
- package/dist/cli/adapter.d.ts +23 -0
- package/dist/cli/adapter.d.ts.map +1 -0
- package/dist/cli/adapter.js +26 -0
- package/dist/cli/adapter.js.map +1 -0
- package/dist/cli/args.d.ts +150 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +172 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/assemble.d.ts +20 -0
- package/dist/cli/assemble.d.ts.map +1 -0
- package/dist/cli/assemble.js +55 -0
- package/dist/cli/assemble.js.map +1 -0
- package/dist/cli/bin/main.d.ts +26 -0
- package/dist/cli/bin/main.d.ts.map +1 -0
- package/dist/cli/bin/main.js +475 -0
- package/dist/cli/bin/main.js.map +1 -0
- package/dist/cli/build/migrations-plugin.d.ts +21 -0
- package/dist/cli/build/migrations-plugin.d.ts.map +1 -0
- package/dist/cli/build/migrations-plugin.js +41 -0
- package/dist/cli/build/migrations-plugin.js.map +1 -0
- package/dist/cli/build/process-plugin.d.ts +29 -0
- package/dist/cli/build/process-plugin.d.ts.map +1 -0
- package/dist/cli/build/process-plugin.js +66 -0
- package/dist/cli/build/process-plugin.js.map +1 -0
- package/dist/cli/builder/create-cli-builder.d.ts +42 -0
- package/dist/cli/builder/create-cli-builder.d.ts.map +1 -0
- package/dist/cli/builder/create-cli-builder.js +104 -0
- package/dist/cli/builder/create-cli-builder.js.map +1 -0
- package/dist/cli/builder/index.d.ts +8 -0
- package/dist/cli/builder/index.d.ts.map +1 -0
- package/dist/cli/builder/index.js +7 -0
- package/dist/cli/builder/index.js.map +1 -0
- package/dist/cli/builder/types.d.ts +113 -0
- package/dist/cli/builder/types.d.ts.map +1 -0
- package/dist/cli/builder/types.js +7 -0
- package/dist/cli/builder/types.js.map +1 -0
- package/dist/cli/cluster.d.ts +8 -0
- package/dist/cli/cluster.d.ts.map +1 -0
- package/dist/cli/cluster.js +145 -0
- package/dist/cli/cluster.js.map +1 -0
- package/dist/cli/current-app.d.ts +36 -0
- package/dist/cli/current-app.d.ts.map +1 -0
- package/dist/cli/current-app.js +21 -0
- package/dist/cli/current-app.js.map +1 -0
- package/dist/cli/define-app.d.ts +35 -0
- package/dist/cli/define-app.d.ts.map +1 -0
- package/dist/cli/define-app.js +79 -0
- package/dist/cli/define-app.js.map +1 -0
- package/dist/cli/define-main.d.ts +33 -0
- package/dist/cli/define-main.d.ts.map +1 -0
- package/dist/cli/define-main.js +67 -0
- package/dist/cli/define-main.js.map +1 -0
- package/dist/cli/define-project.d.ts +93 -0
- package/dist/cli/define-project.d.ts.map +1 -0
- package/dist/cli/define-project.js +85 -0
- package/dist/cli/define-project.js.map +1 -0
- package/dist/cli/dev-server.d.ts +20 -0
- package/dist/cli/dev-server.d.ts.map +1 -0
- package/dist/cli/dev-server.js +131 -0
- package/dist/cli/dev-server.js.map +1 -0
- package/dist/cli/discovery.d.ts +29 -0
- package/dist/cli/discovery.d.ts.map +1 -0
- package/dist/cli/discovery.js +142 -0
- package/dist/cli/discovery.js.map +1 -0
- package/dist/cli/factory.d.ts +43 -0
- package/dist/cli/factory.d.ts.map +1 -0
- package/dist/cli/factory.js +52 -0
- package/dist/cli/factory.js.map +1 -0
- package/dist/cli/generators/ai.d.ts +3 -0
- package/dist/cli/generators/ai.d.ts.map +1 -0
- package/dist/cli/generators/ai.js +65 -0
- package/dist/cli/generators/ai.js.map +1 -0
- package/dist/cli/generators/ci.d.ts +5 -0
- package/dist/cli/generators/ci.d.ts.map +1 -0
- package/dist/cli/generators/ci.js +102 -0
- package/dist/cli/generators/ci.js.map +1 -0
- package/dist/cli/generators/detect.d.ts +15 -0
- package/dist/cli/generators/detect.d.ts.map +1 -0
- package/dist/cli/generators/detect.js +75 -0
- package/dist/cli/generators/detect.js.map +1 -0
- package/dist/cli/generators/ide.d.ts +3 -0
- package/dist/cli/generators/ide.d.ts.map +1 -0
- package/dist/cli/generators/ide.js +179 -0
- package/dist/cli/generators/ide.js.map +1 -0
- package/dist/cli/generators/index.d.ts +5 -0
- package/dist/cli/generators/index.d.ts.map +1 -0
- package/dist/cli/generators/index.js +5 -0
- package/dist/cli/generators/index.js.map +1 -0
- package/dist/cli/index.d.ts +81 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +88 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/io.d.ts +131 -0
- package/dist/cli/io.d.ts.map +1 -0
- package/dist/cli/io.js +373 -0
- package/dist/cli/io.js.map +1 -0
- package/dist/cli/mcp/server.d.ts +23 -0
- package/dist/cli/mcp/server.d.ts.map +1 -0
- package/dist/cli/mcp/server.js +148 -0
- package/dist/cli/mcp/server.js.map +1 -0
- package/dist/cli/parser.d.ts +106 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +520 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/runner.d.ts +75 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +422 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/service.d.ts +61 -0
- package/dist/cli/service.d.ts.map +1 -0
- package/dist/cli/service.js +95 -0
- package/dist/cli/service.js.map +1 -0
- package/dist/cli/types.d.ts +47 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +20 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli/wizard.d.ts +11 -0
- package/dist/cli/wizard.d.ts.map +1 -0
- package/dist/cli/wizard.js +2 -0
- package/dist/cli/wizard.js.map +1 -0
- package/dist/cli/workspace-controller.d.ts +36 -0
- package/dist/cli/workspace-controller.d.ts.map +1 -0
- package/dist/cli/workspace-controller.js +896 -0
- package/dist/cli/workspace-controller.js.map +1 -0
- package/dist/cluster/client.d.ts +101 -0
- package/dist/cluster/client.d.ts.map +1 -0
- package/dist/cluster/client.js +256 -0
- package/dist/cluster/client.js.map +1 -0
- package/dist/cluster/cluster.d.ts +82 -0
- package/dist/cluster/cluster.d.ts.map +1 -0
- package/dist/cluster/cluster.js +27 -0
- package/dist/cluster/cluster.js.map +1 -0
- package/dist/cluster/coordinator/cluster-node.model.d.ts +14 -0
- package/dist/cluster/coordinator/cluster-node.model.d.ts.map +1 -0
- package/dist/cluster/coordinator/cluster-node.model.js +15 -0
- package/dist/cluster/coordinator/cluster-node.model.js.map +1 -0
- package/dist/cluster/coordinator/cluster-signals.d.ts +45 -0
- package/dist/cluster/coordinator/cluster-signals.d.ts.map +1 -0
- package/dist/cluster/coordinator/cluster-signals.js +24 -0
- package/dist/cluster/coordinator/cluster-signals.js.map +1 -0
- package/dist/cluster/coordinator/coordinator.process.d.ts +21 -0
- package/dist/cluster/coordinator/coordinator.process.d.ts.map +1 -0
- package/dist/cluster/coordinator/coordinator.process.js +221 -0
- package/dist/cluster/coordinator/coordinator.process.js.map +1 -0
- package/dist/cluster/coordinator/index.d.ts +13 -0
- package/dist/cluster/coordinator/index.d.ts.map +1 -0
- package/dist/cluster/coordinator/index.js +13 -0
- package/dist/cluster/coordinator/index.js.map +1 -0
- package/dist/cluster/coordinator/node-lifecycle.d.ts +31 -0
- package/dist/cluster/coordinator/node-lifecycle.d.ts.map +1 -0
- package/dist/cluster/coordinator/node-lifecycle.js +178 -0
- package/dist/cluster/coordinator/node-lifecycle.js.map +1 -0
- package/dist/cluster/index.d.ts +45 -0
- package/dist/cluster/index.d.ts.map +1 -0
- package/dist/cluster/index.js +57 -0
- package/dist/cluster/index.js.map +1 -0
- package/dist/cluster/protocol.d.ts +204 -0
- package/dist/cluster/protocol.d.ts.map +1 -0
- package/dist/cluster/protocol.js +274 -0
- package/dist/cluster/protocol.js.map +1 -0
- package/dist/cluster/scheduled-task/builder.d.ts +24 -0
- package/dist/cluster/scheduled-task/builder.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/builder.js +63 -0
- package/dist/cluster/scheduled-task/builder.js.map +1 -0
- package/dist/cluster/scheduled-task/factory.d.ts +76 -0
- package/dist/cluster/scheduled-task/factory.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/factory.js +64 -0
- package/dist/cluster/scheduled-task/factory.js.map +1 -0
- package/dist/cluster/scheduled-task/index.d.ts +43 -0
- package/dist/cluster/scheduled-task/index.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/index.js +45 -0
- package/dist/cluster/scheduled-task/index.js.map +1 -0
- package/dist/cluster/scheduled-task/transport.d.ts +12 -0
- package/dist/cluster/scheduled-task/transport.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/transport.js +146 -0
- package/dist/cluster/scheduled-task/transport.js.map +1 -0
- package/dist/cluster/scheduled-task/types.d.ts +89 -0
- package/dist/cluster/scheduled-task/types.d.ts.map +1 -0
- package/dist/cluster/scheduled-task/types.js +7 -0
- package/dist/cluster/scheduled-task/types.js.map +1 -0
- package/dist/cluster/server.d.ts +87 -0
- package/dist/cluster/server.d.ts.map +1 -0
- package/dist/cluster/server.js +290 -0
- package/dist/cluster/server.js.map +1 -0
- package/dist/cluster/transport.d.ts +86 -0
- package/dist/cluster/transport.d.ts.map +1 -0
- package/dist/cluster/transport.js +138 -0
- package/dist/cluster/transport.js.map +1 -0
- package/dist/core/container-hooks.d.ts +22 -0
- package/dist/core/container-hooks.d.ts.map +1 -0
- package/dist/core/container-hooks.js +29 -0
- package/dist/core/container-hooks.js.map +1 -0
- package/dist/core/container-reflection.d.ts +71 -0
- package/dist/core/container-reflection.d.ts.map +1 -0
- package/dist/core/container-reflection.js +60 -0
- package/dist/core/container-reflection.js.map +1 -0
- package/dist/core/context.d.ts +146 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +155 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/contribution.d.ts +152 -0
- package/dist/core/contribution.d.ts.map +1 -0
- package/dist/core/contribution.js +213 -0
- package/dist/core/contribution.js.map +1 -0
- package/dist/core/controller.contextual.d.ts +193 -0
- package/dist/core/controller.contextual.d.ts.map +1 -0
- package/dist/core/controller.contextual.js +459 -0
- package/dist/core/controller.contextual.js.map +1 -0
- package/dist/core/controller.d.ts +510 -0
- package/dist/core/controller.d.ts.map +1 -0
- package/dist/core/controller.js +411 -0
- package/dist/core/controller.js.map +1 -0
- package/dist/core/controller.procedure.d.ts +147 -0
- package/dist/core/controller.procedure.d.ts.map +1 -0
- package/dist/core/controller.procedure.js +115 -0
- package/dist/core/controller.procedure.js.map +1 -0
- package/dist/core/disposable.d.ts +126 -0
- package/dist/core/disposable.d.ts.map +1 -0
- package/dist/core/disposable.js +179 -0
- package/dist/core/disposable.js.map +1 -0
- package/dist/core/hmr.d.ts +83 -0
- package/dist/core/hmr.d.ts.map +1 -0
- package/dist/core/hmr.js +211 -0
- package/dist/core/hmr.js.map +1 -0
- package/dist/core/index.d.ts +17 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +25 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/internal/routes.d.ts +26 -0
- package/dist/core/internal/routes.d.ts.map +1 -0
- package/dist/core/internal/routes.js +48 -0
- package/dist/core/internal/routes.js.map +1 -0
- package/dist/core/lifecycle-impl.d.ts +45 -0
- package/dist/core/lifecycle-impl.d.ts.map +1 -0
- package/dist/core/lifecycle-impl.js +102 -0
- package/dist/core/lifecycle-impl.js.map +1 -0
- package/dist/core/lifecycle.d.ts +86 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +38 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/logger.d.ts +282 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +368 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/middleware.d.ts +108 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +60 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/openapi-methods.d.ts +61 -0
- package/dist/core/openapi-methods.d.ts.map +1 -0
- package/dist/core/openapi-methods.js +53 -0
- package/dist/core/openapi-methods.js.map +1 -0
- package/dist/core/plugin.d.ts +209 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +36 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/scope-bridge.d.ts +19 -0
- package/dist/core/scope-bridge.d.ts.map +1 -0
- package/dist/core/scope-bridge.js +34 -0
- package/dist/core/scope-bridge.js.map +1 -0
- package/dist/core/service.d.ts +429 -0
- package/dist/core/service.d.ts.map +1 -0
- package/dist/core/service.js +875 -0
- package/dist/core/service.js.map +1 -0
- package/dist/features/channel/backend.d.ts +98 -0
- package/dist/features/channel/backend.d.ts.map +1 -0
- package/dist/features/channel/backend.js +75 -0
- package/dist/features/channel/backend.js.map +1 -0
- package/dist/features/channel/channel.d.ts +18 -0
- package/dist/features/channel/channel.d.ts.map +1 -0
- package/dist/features/channel/channel.js +219 -0
- package/dist/features/channel/channel.js.map +1 -0
- package/dist/features/channel/channels.d.ts +87 -0
- package/dist/features/channel/channels.d.ts.map +1 -0
- package/dist/features/channel/channels.js +252 -0
- package/dist/features/channel/channels.js.map +1 -0
- package/dist/features/channel/feature.d.ts +40 -0
- package/dist/features/channel/feature.d.ts.map +1 -0
- package/dist/features/channel/feature.js +44 -0
- package/dist/features/channel/feature.js.map +1 -0
- package/dist/features/channel/index.d.ts +41 -0
- package/dist/features/channel/index.d.ts.map +1 -0
- package/dist/features/channel/index.js +41 -0
- package/dist/features/channel/index.js.map +1 -0
- package/dist/features/channel/types.d.ts +165 -0
- package/dist/features/channel/types.d.ts.map +1 -0
- package/dist/features/channel/types.js +10 -0
- package/dist/features/channel/types.js.map +1 -0
- package/dist/features/config/cli/config-controller.d.ts +77 -0
- package/dist/features/config/cli/config-controller.d.ts.map +1 -0
- package/dist/features/config/cli/config-controller.js +209 -0
- package/dist/features/config/cli/config-controller.js.map +1 -0
- package/dist/features/config/cli/index.d.ts +9 -0
- package/dist/features/config/cli/index.d.ts.map +1 -0
- package/dist/features/config/cli/index.js +9 -0
- package/dist/features/config/cli/index.js.map +1 -0
- package/dist/features/config/cli/profile-controller.d.ts +87 -0
- package/dist/features/config/cli/profile-controller.d.ts.map +1 -0
- package/dist/features/config/cli/profile-controller.js +223 -0
- package/dist/features/config/cli/profile-controller.js.map +1 -0
- package/dist/features/config/cli/utils.d.ts +14 -0
- package/dist/features/config/cli/utils.d.ts.map +1 -0
- package/dist/features/config/cli/utils.js +29 -0
- package/dist/features/config/cli/utils.js.map +1 -0
- package/dist/features/config/config-of.d.ts +36 -0
- package/dist/features/config/config-of.d.ts.map +1 -0
- package/dist/features/config/config-of.js +36 -0
- package/dist/features/config/config-of.js.map +1 -0
- package/dist/features/config/config-service.d.ts +54 -0
- package/dist/features/config/config-service.d.ts.map +1 -0
- package/dist/features/config/config-service.js +184 -0
- package/dist/features/config/config-service.js.map +1 -0
- package/dist/features/config/create-config.d.ts +21 -0
- package/dist/features/config/create-config.d.ts.map +1 -0
- package/dist/features/config/create-config.js +16 -0
- package/dist/features/config/create-config.js.map +1 -0
- package/dist/features/config/define-config-partial.d.ts +13 -0
- package/dist/features/config/define-config-partial.d.ts.map +1 -0
- package/dist/features/config/define-config-partial.js +19 -0
- package/dist/features/config/define-config-partial.js.map +1 -0
- package/dist/features/config/env-service.d.ts +54 -0
- package/dist/features/config/env-service.d.ts.map +1 -0
- package/dist/features/config/env-service.js +115 -0
- package/dist/features/config/env-service.js.map +1 -0
- package/dist/features/config/file-watcher.d.ts +13 -0
- package/dist/features/config/file-watcher.d.ts.map +1 -0
- package/dist/features/config/file-watcher.js +98 -0
- package/dist/features/config/file-watcher.js.map +1 -0
- package/dist/features/config/index.d.ts +21 -0
- package/dist/features/config/index.d.ts.map +1 -0
- package/dist/features/config/index.js +24 -0
- package/dist/features/config/index.js.map +1 -0
- package/dist/features/config/profile-service.d.ts +59 -0
- package/dist/features/config/profile-service.d.ts.map +1 -0
- package/dist/features/config/profile-service.js +114 -0
- package/dist/features/config/profile-service.js.map +1 -0
- package/dist/features/config/types.d.ts +38 -0
- package/dist/features/config/types.d.ts.map +1 -0
- package/dist/features/config/types.js +17 -0
- package/dist/features/config/types.js.map +1 -0
- package/dist/features/contract/contract.d.ts +264 -0
- package/dist/features/contract/contract.d.ts.map +1 -0
- package/dist/features/contract/contract.js +183 -0
- package/dist/features/contract/contract.js.map +1 -0
- package/dist/features/contract/index.d.ts +2 -0
- package/dist/features/contract/index.d.ts.map +1 -0
- package/dist/features/contract/index.js +2 -0
- package/dist/features/contract/index.js.map +1 -0
- package/dist/features/env/contribute.d.ts +70 -0
- package/dist/features/env/contribute.d.ts.map +1 -0
- package/dist/features/env/contribute.js +195 -0
- package/dist/features/env/contribute.js.map +1 -0
- package/dist/features/environment/create-environment.d.ts +58 -0
- package/dist/features/environment/create-environment.d.ts.map +1 -0
- package/dist/features/environment/create-environment.js +22 -0
- package/dist/features/environment/create-environment.js.map +1 -0
- package/dist/features/environment/index.d.ts +12 -0
- package/dist/features/environment/index.d.ts.map +1 -0
- package/dist/features/environment/index.js +10 -0
- package/dist/features/environment/index.js.map +1 -0
- package/dist/features/environment/load.d.ts +59 -0
- package/dist/features/environment/load.d.ts.map +1 -0
- package/dist/features/environment/load.js +117 -0
- package/dist/features/environment/load.js.map +1 -0
- package/dist/features/environment/types.d.ts +165 -0
- package/dist/features/environment/types.d.ts.map +1 -0
- package/dist/features/environment/types.js +18 -0
- package/dist/features/environment/types.js.map +1 -0
- package/dist/features/feature-flags/create-feature-flag-provider.d.ts +21 -0
- package/dist/features/feature-flags/create-feature-flag-provider.d.ts.map +1 -0
- package/dist/features/feature-flags/create-feature-flag-provider.js +16 -0
- package/dist/features/feature-flags/create-feature-flag-provider.js.map +1 -0
- package/dist/features/feature-flags/define-feature-flag-partial.d.ts +20 -0
- package/dist/features/feature-flags/define-feature-flag-partial.d.ts.map +1 -0
- package/dist/features/feature-flags/define-feature-flag-partial.js +26 -0
- package/dist/features/feature-flags/define-feature-flag-partial.js.map +1 -0
- package/dist/features/feature-flags/feature-flag-of.d.ts +16 -0
- package/dist/features/feature-flags/feature-flag-of.d.ts.map +1 -0
- package/dist/features/feature-flags/feature-flag-of.js +16 -0
- package/dist/features/feature-flags/feature-flag-of.js.map +1 -0
- package/dist/features/feature-flags/feature-flag-service.d.ts +22 -0
- package/dist/features/feature-flags/feature-flag-service.d.ts.map +1 -0
- package/dist/features/feature-flags/feature-flag-service.js +112 -0
- package/dist/features/feature-flags/feature-flag-service.js.map +1 -0
- package/dist/features/feature-flags/index.d.ts +15 -0
- package/dist/features/feature-flags/index.d.ts.map +1 -0
- package/dist/features/feature-flags/index.js +12 -0
- package/dist/features/feature-flags/index.js.map +1 -0
- package/dist/features/feature-flags/types.d.ts +30 -0
- package/dist/features/feature-flags/types.d.ts.map +1 -0
- package/dist/features/feature-flags/types.js +8 -0
- package/dist/features/feature-flags/types.js.map +1 -0
- package/dist/features/index.d.ts +6 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +7 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/lock/index.d.ts +4 -0
- package/dist/features/lock/index.d.ts.map +1 -0
- package/dist/features/lock/index.js +4 -0
- package/dist/features/lock/index.js.map +1 -0
- package/dist/features/lock/lock-service.d.ts +74 -0
- package/dist/features/lock/lock-service.d.ts.map +1 -0
- package/dist/features/lock/lock-service.js +210 -0
- package/dist/features/lock/lock-service.js.map +1 -0
- package/dist/features/lock/memory.d.ts +60 -0
- package/dist/features/lock/memory.d.ts.map +1 -0
- package/dist/features/lock/memory.js +194 -0
- package/dist/features/lock/memory.js.map +1 -0
- package/dist/features/lock/types.d.ts +151 -0
- package/dist/features/lock/types.d.ts.map +1 -0
- package/dist/features/lock/types.js +17 -0
- package/dist/features/lock/types.js.map +1 -0
- package/dist/features/memory/index.d.ts +18 -0
- package/dist/features/memory/index.d.ts.map +1 -0
- package/dist/features/memory/index.js +18 -0
- package/dist/features/memory/index.js.map +1 -0
- package/dist/features/memory/lock-feature.d.ts +21 -0
- package/dist/features/memory/lock-feature.d.ts.map +1 -0
- package/dist/features/memory/lock-feature.js +24 -0
- package/dist/features/memory/lock-feature.js.map +1 -0
- package/dist/features/secrets/create-secret-provider.d.ts +31 -0
- package/dist/features/secrets/create-secret-provider.d.ts.map +1 -0
- package/dist/features/secrets/create-secret-provider.js +26 -0
- package/dist/features/secrets/create-secret-provider.js.map +1 -0
- package/dist/features/secrets/define-secret-partial.d.ts +16 -0
- package/dist/features/secrets/define-secret-partial.d.ts.map +1 -0
- package/dist/features/secrets/define-secret-partial.js +26 -0
- package/dist/features/secrets/define-secret-partial.js.map +1 -0
- package/dist/features/secrets/index.d.ts +17 -0
- package/dist/features/secrets/index.d.ts.map +1 -0
- package/dist/features/secrets/index.js +14 -0
- package/dist/features/secrets/index.js.map +1 -0
- package/dist/features/secrets/secret-of.d.ts +19 -0
- package/dist/features/secrets/secret-of.d.ts.map +1 -0
- package/dist/features/secrets/secret-of.js +21 -0
- package/dist/features/secrets/secret-of.js.map +1 -0
- package/dist/features/secrets/secret-service.d.ts +21 -0
- package/dist/features/secrets/secret-service.d.ts.map +1 -0
- package/dist/features/secrets/secret-service.js +28 -0
- package/dist/features/secrets/secret-service.js.map +1 -0
- package/dist/features/secrets/types.d.ts +30 -0
- package/dist/features/secrets/types.d.ts.map +1 -0
- package/dist/features/secrets/types.js +8 -0
- package/dist/features/secrets/types.js.map +1 -0
- package/dist/features/vault/env-var-vault.d.ts +24 -0
- package/dist/features/vault/env-var-vault.d.ts.map +1 -0
- package/dist/features/vault/env-var-vault.js +43 -0
- package/dist/features/vault/env-var-vault.js.map +1 -0
- package/dist/features/vault/hardcoded-vault.d.ts +34 -0
- package/dist/features/vault/hardcoded-vault.d.ts.map +1 -0
- package/dist/features/vault/hardcoded-vault.js +46 -0
- package/dist/features/vault/hardcoded-vault.js.map +1 -0
- package/dist/features/vault/hashicorp-vault.d.ts +32 -0
- package/dist/features/vault/hashicorp-vault.d.ts.map +1 -0
- package/dist/features/vault/hashicorp-vault.js +69 -0
- package/dist/features/vault/hashicorp-vault.js.map +1 -0
- package/dist/features/vault/index.d.ts +13 -0
- package/dist/features/vault/index.d.ts.map +1 -0
- package/dist/features/vault/index.js +12 -0
- package/dist/features/vault/index.js.map +1 -0
- package/dist/features/vault/kubernetes-vault.d.ts +27 -0
- package/dist/features/vault/kubernetes-vault.d.ts.map +1 -0
- package/dist/features/vault/kubernetes-vault.js +51 -0
- package/dist/features/vault/kubernetes-vault.js.map +1 -0
- package/dist/features/vault/types.d.ts +41 -0
- package/dist/features/vault/types.d.ts.map +1 -0
- package/dist/features/vault/types.js +21 -0
- package/dist/features/vault/types.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/justscale.d.ts +63 -0
- package/dist/justscale.d.ts.map +1 -0
- package/dist/justscale.js +501 -0
- package/dist/justscale.js.map +1 -0
- package/dist/kernel/adapter.d.ts +9 -0
- package/dist/kernel/adapter.d.ts.map +1 -0
- package/dist/kernel/adapter.js +2 -0
- package/dist/kernel/adapter.js.map +1 -0
- package/dist/kernel/kernel.d.ts +15 -0
- package/dist/kernel/kernel.d.ts.map +1 -0
- package/dist/kernel/kernel.js +134 -0
- package/dist/kernel/kernel.js.map +1 -0
- package/dist/models/access.d.ts +26 -0
- package/dist/models/access.d.ts.map +1 -0
- package/dist/models/access.js +126 -0
- package/dist/models/access.js.map +1 -0
- package/dist/models/apply-types-config.d.ts +52 -0
- package/dist/models/apply-types-config.d.ts.map +1 -0
- package/dist/models/apply-types-config.js +47 -0
- package/dist/models/apply-types-config.js.map +1 -0
- package/dist/models/define-model.d.ts +249 -0
- package/dist/models/define-model.d.ts.map +1 -0
- package/dist/models/define-model.js +388 -0
- package/dist/models/define-model.js.map +1 -0
- package/dist/models/field.d.ts +309 -0
- package/dist/models/field.d.ts.map +1 -0
- package/dist/models/field.js +312 -0
- package/dist/models/field.js.map +1 -0
- package/dist/models/in-memory/condition-evaluator.d.ts +53 -0
- package/dist/models/in-memory/condition-evaluator.d.ts.map +1 -0
- package/dist/models/in-memory/condition-evaluator.js +593 -0
- package/dist/models/in-memory/condition-evaluator.js.map +1 -0
- package/dist/models/in-memory/in-memory-model.d.ts +89 -0
- package/dist/models/in-memory/in-memory-model.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-model.js +101 -0
- package/dist/models/in-memory/in-memory-model.js.map +1 -0
- package/dist/models/in-memory/in-memory-repository.d.ts +208 -0
- package/dist/models/in-memory/in-memory-repository.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-repository.js +618 -0
- package/dist/models/in-memory/in-memory-repository.js.map +1 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts +92 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.d.ts.map +1 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.js +395 -0
- package/dist/models/in-memory/in-memory-scheduled-task.repository.js.map +1 -0
- package/dist/models/in-memory/index.d.ts +35 -0
- package/dist/models/in-memory/index.d.ts.map +1 -0
- package/dist/models/in-memory/index.js +36 -0
- package/dist/models/in-memory/index.js.map +1 -0
- package/dist/models/index.d.ts +52 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +86 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/model-name-registry.d.ts +16 -0
- package/dist/models/model-name-registry.d.ts.map +1 -0
- package/dist/models/model-name-registry.js +19 -0
- package/dist/models/model-name-registry.js.map +1 -0
- package/dist/models/model.d.ts +15 -0
- package/dist/models/model.d.ts.map +1 -0
- package/dist/models/model.js +114 -0
- package/dist/models/model.js.map +1 -0
- package/dist/models/model.repository.d.ts +318 -0
- package/dist/models/model.repository.d.ts.map +1 -0
- package/dist/models/model.repository.js +146 -0
- package/dist/models/model.repository.js.map +1 -0
- package/dist/models/observable.d.ts +15 -0
- package/dist/models/observable.d.ts.map +1 -0
- package/dist/models/observable.js +64 -0
- package/dist/models/observable.js.map +1 -0
- package/dist/models/proxy.d.ts +5 -0
- package/dist/models/proxy.d.ts.map +1 -0
- package/dist/models/proxy.js +407 -0
- package/dist/models/proxy.js.map +1 -0
- package/dist/models/query.d.ts +574 -0
- package/dist/models/query.d.ts.map +1 -0
- package/dist/models/query.js +701 -0
- package/dist/models/query.js.map +1 -0
- package/dist/models/reference/reference.d.ts +229 -0
- package/dist/models/reference/reference.d.ts.map +1 -0
- package/dist/models/reference/reference.js +331 -0
- package/dist/models/reference/reference.js.map +1 -0
- package/dist/models/reference/transient-ref.d.ts +123 -0
- package/dist/models/reference/transient-ref.d.ts.map +1 -0
- package/dist/models/reference/transient-ref.js +152 -0
- package/dist/models/reference/transient-ref.js.map +1 -0
- package/dist/models/repository.d.ts +53 -0
- package/dist/models/repository.d.ts.map +1 -0
- package/dist/models/repository.js +37 -0
- package/dist/models/repository.js.map +1 -0
- package/dist/models/scheduled-task/index.d.ts +13 -0
- package/dist/models/scheduled-task/index.d.ts.map +1 -0
- package/dist/models/scheduled-task/index.js +12 -0
- package/dist/models/scheduled-task/index.js.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.d.ts +73 -0
- package/dist/models/scheduled-task/scheduled-task.d.ts.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.js +95 -0
- package/dist/models/scheduled-task/scheduled-task.js.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.repository.d.ts +150 -0
- package/dist/models/scheduled-task/scheduled-task.repository.d.ts.map +1 -0
- package/dist/models/scheduled-task/scheduled-task.repository.js +40 -0
- package/dist/models/scheduled-task/scheduled-task.repository.js.map +1 -0
- package/dist/models/stream.d.ts +139 -0
- package/dist/models/stream.d.ts.map +1 -0
- package/dist/models/stream.js +153 -0
- package/dist/models/stream.js.map +1 -0
- package/dist/models/symbols.d.ts +73 -0
- package/dist/models/symbols.d.ts.map +1 -0
- package/dist/models/symbols.js +97 -0
- package/dist/models/symbols.js.map +1 -0
- package/dist/models/types.d.ts +291 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +50 -0
- package/dist/models/types.js.map +1 -0
- package/dist/models/watch.d.ts +27 -0
- package/dist/models/watch.d.ts.map +1 -0
- package/dist/models/watch.js +124 -0
- package/dist/models/watch.js.map +1 -0
- package/dist/models/zod-ref.d.ts +46 -0
- package/dist/models/zod-ref.d.ts.map +1 -0
- package/dist/models/zod-ref.js +31 -0
- package/dist/models/zod-ref.js.map +1 -0
- package/dist/process/builtin-serializers.d.ts +19 -0
- package/dist/process/builtin-serializers.d.ts.map +1 -0
- package/dist/process/builtin-serializers.js +213 -0
- package/dist/process/builtin-serializers.js.map +1 -0
- package/dist/process/cluster-plugin.d.ts +129 -0
- package/dist/process/cluster-plugin.d.ts.map +1 -0
- package/dist/process/cluster-plugin.js +175 -0
- package/dist/process/cluster-plugin.js.map +1 -0
- package/dist/process/createProcess.d.ts +67 -0
- package/dist/process/createProcess.d.ts.map +1 -0
- package/dist/process/createProcess.js +111 -0
- package/dist/process/createProcess.js.map +1 -0
- package/dist/process/define-signals.d.ts +113 -0
- package/dist/process/define-signals.d.ts.map +1 -0
- package/dist/process/define-signals.js +222 -0
- package/dist/process/define-signals.js.map +1 -0
- package/dist/process/delay-controller.d.ts +35 -0
- package/dist/process/delay-controller.d.ts.map +1 -0
- package/dist/process/delay-controller.js +55 -0
- package/dist/process/delay-controller.js.map +1 -0
- package/dist/process/index.d.ts +38 -0
- package/dist/process/index.d.ts.map +1 -0
- package/dist/process/index.js +47 -0
- package/dist/process/index.js.map +1 -0
- package/dist/process/primitives.d.ts +393 -0
- package/dist/process/primitives.d.ts.map +1 -0
- package/dist/process/primitives.js +325 -0
- package/dist/process/primitives.js.map +1 -0
- package/dist/process/serialization.d.ts +58 -0
- package/dist/process/serialization.d.ts.map +1 -0
- package/dist/process/serialization.js +220 -0
- package/dist/process/serialization.js.map +1 -0
- package/dist/process/stream-utils.d.ts +123 -0
- package/dist/process/stream-utils.d.ts.map +1 -0
- package/dist/process/stream-utils.js +247 -0
- package/dist/process/stream-utils.js.map +1 -0
- package/dist/process/testing/clock.d.ts +115 -0
- package/dist/process/testing/clock.d.ts.map +1 -0
- package/dist/process/testing/clock.js +166 -0
- package/dist/process/testing/clock.js.map +1 -0
- package/dist/process/testing/index.d.ts +9 -0
- package/dist/process/testing/index.d.ts.map +1 -0
- package/dist/process/testing/index.js +9 -0
- package/dist/process/testing/index.js.map +1 -0
- package/dist/process/testing.d.ts +50 -0
- package/dist/process/testing.d.ts.map +1 -0
- package/dist/process/testing.js +59 -0
- package/dist/process/testing.js.map +1 -0
- package/dist/process/types.d.ts +540 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/process/types.js +21 -0
- package/dist/process/types.js.map +1 -0
- package/dist/queue/index.d.ts +2 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +2 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/queue.d.ts +34 -0
- package/dist/queue/queue.d.ts.map +1 -0
- package/dist/queue/queue.js +108 -0
- package/dist/queue/queue.js.map +1 -0
- package/dist/runtime/process/compiled.d.ts +56 -0
- package/dist/runtime/process/compiled.d.ts.map +1 -0
- package/dist/runtime/process/compiled.js +221 -0
- package/dist/runtime/process/compiled.js.map +1 -0
- package/dist/runtime/process/executor.d.ts +279 -0
- package/dist/runtime/process/executor.d.ts.map +1 -0
- package/dist/runtime/process/executor.js +1941 -0
- package/dist/runtime/process/executor.js.map +1 -0
- package/dist/runtime/process/factory.d.ts +72 -0
- package/dist/runtime/process/factory.d.ts.map +1 -0
- package/dist/runtime/process/factory.js +78 -0
- package/dist/runtime/process/factory.js.map +1 -0
- package/dist/runtime/process/freeze.d.ts +5 -0
- package/dist/runtime/process/freeze.d.ts.map +1 -0
- package/dist/runtime/process/freeze.js +94 -0
- package/dist/runtime/process/freeze.js.map +1 -0
- package/dist/runtime/process/scheduled-task-timer.d.ts +52 -0
- package/dist/runtime/process/scheduled-task-timer.d.ts.map +1 -0
- package/dist/runtime/process/scheduled-task-timer.js +104 -0
- package/dist/runtime/process/scheduled-task-timer.js.map +1 -0
- package/dist/runtime/process/signal-bus.d.ts +186 -0
- package/dist/runtime/process/signal-bus.d.ts.map +1 -0
- package/dist/runtime/process/signal-bus.js +256 -0
- package/dist/runtime/process/signal-bus.js.map +1 -0
- package/dist/runtime/process/state-serializer.d.ts +30 -0
- package/dist/runtime/process/state-serializer.d.ts.map +1 -0
- package/dist/runtime/process/state-serializer.js +244 -0
- package/dist/runtime/process/state-serializer.js.map +1 -0
- package/dist/runtime/process/storage.d.ts +96 -0
- package/dist/runtime/process/storage.d.ts.map +1 -0
- package/dist/runtime/process/storage.js +165 -0
- package/dist/runtime/process/storage.js.map +1 -0
- package/dist/runtime/process/timer-scheduler.d.ts +115 -0
- package/dist/runtime/process/timer-scheduler.d.ts.map +1 -0
- package/dist/runtime/process/timer-scheduler.js +192 -0
- package/dist/runtime/process/timer-scheduler.js.map +1 -0
- package/dist/runtime/process/trace.d.ts +17 -0
- package/dist/runtime/process/trace.d.ts.map +1 -0
- package/dist/runtime/process/trace.js +26 -0
- package/dist/runtime/process/trace.js.map +1 -0
- package/dist/runtime/protobuf/encoding/index.d.ts +26 -0
- package/dist/runtime/protobuf/encoding/index.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/index.js +30 -0
- package/dist/runtime/protobuf/encoding/index.js.map +1 -0
- package/dist/runtime/protobuf/encoding/reader.d.ts +182 -0
- package/dist/runtime/protobuf/encoding/reader.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/reader.js +353 -0
- package/dist/runtime/protobuf/encoding/reader.js.map +1 -0
- package/dist/runtime/protobuf/encoding/varint.d.ts +67 -0
- package/dist/runtime/protobuf/encoding/varint.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/varint.js +117 -0
- package/dist/runtime/protobuf/encoding/varint.js.map +1 -0
- package/dist/runtime/protobuf/encoding/wire-types.d.ts +62 -0
- package/dist/runtime/protobuf/encoding/wire-types.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/wire-types.js +103 -0
- package/dist/runtime/protobuf/encoding/wire-types.js.map +1 -0
- package/dist/runtime/protobuf/encoding/writer.d.ts +147 -0
- package/dist/runtime/protobuf/encoding/writer.d.ts.map +1 -0
- package/dist/runtime/protobuf/encoding/writer.js +214 -0
- package/dist/runtime/protobuf/encoding/writer.js.map +1 -0
- package/dist/runtime/protobuf/index.d.ts +3 -0
- package/dist/runtime/protobuf/index.d.ts.map +1 -0
- package/dist/runtime/protobuf/index.js +3 -0
- package/dist/runtime/protobuf/index.js.map +1 -0
- package/dist/runtime/protobuf/serialized.d.ts +48 -0
- package/dist/runtime/protobuf/serialized.d.ts.map +1 -0
- package/dist/runtime/protobuf/serialized.js +517 -0
- package/dist/runtime/protobuf/serialized.js.map +1 -0
- package/package.json +209 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/models/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reference - A lazy, Promise-like reference to another entity.
|
|
3
|
+
*
|
|
4
|
+
* Models declare relationships using Reference<T>, keeping them
|
|
5
|
+
* storage-agnostic. The actual resolution happens via a resolver
|
|
6
|
+
* that has access to repositories through DI.
|
|
7
|
+
*
|
|
8
|
+
* References implement PromiseLike, so you can directly await them:
|
|
9
|
+
* const author = await post.author;
|
|
10
|
+
*/
|
|
11
|
+
import type { Persistent } from '../types.js';
|
|
12
|
+
import { REFERENCE, REFERENCES, SET_RESOLVER, HYDRATE } from '../symbols.js';
|
|
13
|
+
export { SET_RESOLVER, HYDRATE };
|
|
14
|
+
/**
|
|
15
|
+
* Extract the data type from a ModelClass.
|
|
16
|
+
* If T is a class constructor, extracts the constructor parameter type.
|
|
17
|
+
* Otherwise returns T as-is.
|
|
18
|
+
*/
|
|
19
|
+
type ExtractModelData<T> = T extends abstract new (data: infer D) => unknown ? D : T;
|
|
20
|
+
/**
|
|
21
|
+
* Resolver function type - resolves an ID to a model.
|
|
22
|
+
* This gets injected by the repository/DI system.
|
|
23
|
+
*/
|
|
24
|
+
export type ReferenceResolver<T> = (id: string) => Promise<Persistent<T> | null>;
|
|
25
|
+
/**
|
|
26
|
+
* Batch resolver function type - resolves multiple IDs efficiently.
|
|
27
|
+
* Returns a Map of id -> entity (or null if not found).
|
|
28
|
+
*
|
|
29
|
+
* This is used by DataLoader to batch multiple reference resolutions
|
|
30
|
+
* into a single query, avoiding the N+1 problem.
|
|
31
|
+
*/
|
|
32
|
+
export type BatchReferenceResolver<T> = (ids: string[]) => Promise<Map<string, Persistent<T> | null>>;
|
|
33
|
+
/**
|
|
34
|
+
* A reference to another entity that implements PromiseLike.
|
|
35
|
+
*
|
|
36
|
+
* The reference holds:
|
|
37
|
+
* - The ID (always available synchronously)
|
|
38
|
+
* - Optionally, the resolved entity (after resolution)
|
|
39
|
+
* - A resolver function (injected by the system)
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const Post = defineModel('Post', {
|
|
44
|
+
* title: field.string(),
|
|
45
|
+
* author: field.ref(User),
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* const post = await postRepo.get(Post.ref('1'));
|
|
49
|
+
*
|
|
50
|
+
* // Just await the reference - no .resolve() needed!
|
|
51
|
+
* const author = await post.author;
|
|
52
|
+
*
|
|
53
|
+
* // Or use Promise.all for parallel resolution
|
|
54
|
+
* const [author, tags] = await Promise.all([post.author, post.tags]);
|
|
55
|
+
*
|
|
56
|
+
* // Sync access to the reference identifier (infrastructure use only)
|
|
57
|
+
* post.author.identifier; // 'user-123'
|
|
58
|
+
* post.author.isLoaded; // true (after await)
|
|
59
|
+
* post.author.value; // User entity (sync, throws if not loaded)
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare class Reference<T> implements PromiseLike<Persistent<T> | undefined> {
|
|
63
|
+
/** Symbol marker for type identification */
|
|
64
|
+
readonly [REFERENCE]: true;
|
|
65
|
+
/** Internal ID storage */
|
|
66
|
+
private readonly _id;
|
|
67
|
+
/** Internal model name (set by adapter registration, used for serialization) */
|
|
68
|
+
private _modelName;
|
|
69
|
+
/** Internal cached value */
|
|
70
|
+
private _value;
|
|
71
|
+
/** Internal resolver */
|
|
72
|
+
private _resolver;
|
|
73
|
+
constructor(id: string, modelName?: string);
|
|
74
|
+
/** The raw identifier of the referenced entity */
|
|
75
|
+
get identifier(): string;
|
|
76
|
+
/** The model name this reference belongs to (if known) */
|
|
77
|
+
get modelName(): string | undefined;
|
|
78
|
+
/** Returns the identifier - enables `${ref}` in template literals and string coercion */
|
|
79
|
+
toString(): string;
|
|
80
|
+
/** Whether the reference has been resolved */
|
|
81
|
+
get isLoaded(): boolean;
|
|
82
|
+
/** The resolved entity (throws if not loaded) */
|
|
83
|
+
get value(): Persistent<T>;
|
|
84
|
+
/** The resolved entity or null if not loaded */
|
|
85
|
+
get valueOrNull(): Persistent<T> | null;
|
|
86
|
+
/**
|
|
87
|
+
* Attach a resolver to this reference.
|
|
88
|
+
* Called by the field setter when the reference is assigned.
|
|
89
|
+
* Uses Symbol-keyed method for internal use only.
|
|
90
|
+
*
|
|
91
|
+
* Accepts `any` so Reference<T> is covariant in T - allows Reference<SubType>
|
|
92
|
+
* to be assigned where Reference<SuperType> is expected.
|
|
93
|
+
*/
|
|
94
|
+
[SET_RESOLVER](resolver: ReferenceResolver<any>): void;
|
|
95
|
+
/**
|
|
96
|
+
* Pre-populate this reference with an already-loaded entity.
|
|
97
|
+
* Uses Symbol-keyed method for internal use only.
|
|
98
|
+
*
|
|
99
|
+
* Accepts `any` so Reference<T> is covariant in T - allows Reference<SubType>
|
|
100
|
+
* to be assigned where Reference<SuperType> is expected.
|
|
101
|
+
*/
|
|
102
|
+
[HYDRATE](value: Persistent<any>): void;
|
|
103
|
+
/**
|
|
104
|
+
* Implement PromiseLike - makes the reference directly awaitable.
|
|
105
|
+
*
|
|
106
|
+
* `await post.author` becomes possible without calling .resolve().
|
|
107
|
+
*
|
|
108
|
+
* If already loaded, returns immediately (no async).
|
|
109
|
+
* Otherwise, resolves first then returns.
|
|
110
|
+
*/
|
|
111
|
+
then<TResult1 = Persistent<T> | undefined, TResult2 = never>(onfulfilled?: ((value: Persistent<T> | undefined) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): PromiseLike<TResult1 | TResult2>;
|
|
112
|
+
/**
|
|
113
|
+
* Resolve the reference, fetching the entity.
|
|
114
|
+
* Returns undefined if the referenced entity does not exist.
|
|
115
|
+
* Caches the result - subsequent calls return the cached value.
|
|
116
|
+
*
|
|
117
|
+
* Usually you can just `await` the reference directly instead.
|
|
118
|
+
*/
|
|
119
|
+
resolve(): Promise<Persistent<T> | undefined>;
|
|
120
|
+
/**
|
|
121
|
+
* Create a reference that's already resolved.
|
|
122
|
+
* Uses ExtractModelData to ensure compatibility with field.ref() types.
|
|
123
|
+
*
|
|
124
|
+
* @param key - The adapter-internal key for this entity
|
|
125
|
+
* @param entity - The already-loaded entity
|
|
126
|
+
*/
|
|
127
|
+
static resolved<M>(key: string, entity: Persistent<M>): Reference<ExtractModelData<M>>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Type guard to check if a value is a Reference.
|
|
131
|
+
*/
|
|
132
|
+
export declare function isReference<T>(value: unknown): value is Reference<T>;
|
|
133
|
+
/**
|
|
134
|
+
* A collection of references to other entities that implements PromiseLike.
|
|
135
|
+
*
|
|
136
|
+
* Just like Reference, you can directly await References:
|
|
137
|
+
* const tags = await post.tags;
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const Post = defineModel('Post', {
|
|
142
|
+
* title: field.string(),
|
|
143
|
+
* tags: field.refs(Tag),
|
|
144
|
+
* });
|
|
145
|
+
*
|
|
146
|
+
* const post = await postRepo.get(Post.ref('1'));
|
|
147
|
+
*
|
|
148
|
+
* // Just await the references - no .resolveAll() needed!
|
|
149
|
+
* const tags = await post.tags;
|
|
150
|
+
*
|
|
151
|
+
* // Works with Promise.all too
|
|
152
|
+
* const [author, tags] = await Promise.all([post.author, post.tags]);
|
|
153
|
+
*
|
|
154
|
+
* // Sync access
|
|
155
|
+
* post.tags.identifiers; // ['tag-1', 'tag-2']
|
|
156
|
+
* post.tags.length; // 2
|
|
157
|
+
* post.tags.isLoaded; // true (after await)
|
|
158
|
+
* post.tags.values; // Tag[] (sync, throws if not loaded)
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare class References<T> implements PromiseLike<Persistent<T>[]> {
|
|
162
|
+
/** Symbol marker for type identification */
|
|
163
|
+
readonly [REFERENCES]: true;
|
|
164
|
+
/** Internal IDs storage */
|
|
165
|
+
private readonly _ids;
|
|
166
|
+
/** Internal cached values */
|
|
167
|
+
private _values;
|
|
168
|
+
/** Internal resolver */
|
|
169
|
+
private _resolver;
|
|
170
|
+
/** Internal batch resolver (optional, used for efficient batching) */
|
|
171
|
+
private _batchResolver;
|
|
172
|
+
constructor(ids: string[]);
|
|
173
|
+
/** The raw identifiers of the referenced entities - use for infrastructure only */
|
|
174
|
+
get identifiers(): readonly string[];
|
|
175
|
+
/** Number of references */
|
|
176
|
+
get length(): number;
|
|
177
|
+
/** Whether the references have been resolved */
|
|
178
|
+
get isLoaded(): boolean;
|
|
179
|
+
/** The resolved entities (throws if not loaded) */
|
|
180
|
+
get values(): Persistent<T>[];
|
|
181
|
+
/** The resolved entities or null if not loaded */
|
|
182
|
+
get valuesOrNull(): Persistent<T>[] | null;
|
|
183
|
+
/**
|
|
184
|
+
* Attach a resolver to these references.
|
|
185
|
+
* Uses Symbol-keyed method for internal use only.
|
|
186
|
+
*/
|
|
187
|
+
[SET_RESOLVER](resolver: ReferenceResolver<T>): void;
|
|
188
|
+
/**
|
|
189
|
+
* Pre-populate these references with already-loaded entities.
|
|
190
|
+
* Uses Symbol-keyed method for internal use only.
|
|
191
|
+
*/
|
|
192
|
+
[HYDRATE](values: Persistent<T>[]): void;
|
|
193
|
+
/**
|
|
194
|
+
* Attach a batch resolver to these references.
|
|
195
|
+
* When available, this will be used instead of the single resolver for better performance.
|
|
196
|
+
*
|
|
197
|
+
* @internal
|
|
198
|
+
*/
|
|
199
|
+
setBatchResolver(batchResolver: BatchReferenceResolver<T>): void;
|
|
200
|
+
/**
|
|
201
|
+
* Implement PromiseLike - makes the references directly awaitable.
|
|
202
|
+
*
|
|
203
|
+
* `await post.tags` becomes possible without calling .resolveAll().
|
|
204
|
+
*/
|
|
205
|
+
then<TResult1 = Persistent<T>[], TResult2 = never>(onfulfilled?: ((value: Persistent<T>[]) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null | undefined): PromiseLike<TResult1 | TResult2>;
|
|
206
|
+
/**
|
|
207
|
+
* Resolve all references, fetching the entities.
|
|
208
|
+
* Caches the result - subsequent calls return the cached values.
|
|
209
|
+
*
|
|
210
|
+
* If a batch resolver is available, it will be used for efficient batching.
|
|
211
|
+
* Otherwise, falls back to resolving IDs one at a time.
|
|
212
|
+
*
|
|
213
|
+
* Usually you can just `await` the references directly instead.
|
|
214
|
+
*/
|
|
215
|
+
resolveAll(): Promise<Persistent<T>[]>;
|
|
216
|
+
/**
|
|
217
|
+
* Create references that are already resolved.
|
|
218
|
+
* Uses ExtractModelData to ensure compatibility with field.refs() types.
|
|
219
|
+
*
|
|
220
|
+
* @param keys - The adapter-internal keys for the entities
|
|
221
|
+
* @param entities - The already-loaded entities (must match keys order)
|
|
222
|
+
*/
|
|
223
|
+
static resolved<M>(keys: string[], entities: Persistent<M>[]): References<ExtractModelData<M>>;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Type guard to check if a value is a References collection.
|
|
227
|
+
*/
|
|
228
|
+
export declare function isReferences<T>(value: unknown): value is References<T>;
|
|
229
|
+
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/models/reference/reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reference - A lazy, Promise-like reference to another entity.
|
|
3
|
+
*
|
|
4
|
+
* Models declare relationships using Reference<T>, keeping them
|
|
5
|
+
* storage-agnostic. The actual resolution happens via a resolver
|
|
6
|
+
* that has access to repositories through DI.
|
|
7
|
+
*
|
|
8
|
+
* References implement PromiseLike, so you can directly await them:
|
|
9
|
+
* const author = await post.author;
|
|
10
|
+
*/
|
|
11
|
+
import { REFERENCE, REFERENCES, SET_RESOLVER, HYDRATE, } from '../symbols.js';
|
|
12
|
+
// Re-export for use by other modules that need to attach resolvers
|
|
13
|
+
export { SET_RESOLVER, HYDRATE };
|
|
14
|
+
/**
|
|
15
|
+
* A reference to another entity that implements PromiseLike.
|
|
16
|
+
*
|
|
17
|
+
* The reference holds:
|
|
18
|
+
* - The ID (always available synchronously)
|
|
19
|
+
* - Optionally, the resolved entity (after resolution)
|
|
20
|
+
* - A resolver function (injected by the system)
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const Post = defineModel('Post', {
|
|
25
|
+
* title: field.string(),
|
|
26
|
+
* author: field.ref(User),
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* const post = await postRepo.get(Post.ref('1'));
|
|
30
|
+
*
|
|
31
|
+
* // Just await the reference - no .resolve() needed!
|
|
32
|
+
* const author = await post.author;
|
|
33
|
+
*
|
|
34
|
+
* // Or use Promise.all for parallel resolution
|
|
35
|
+
* const [author, tags] = await Promise.all([post.author, post.tags]);
|
|
36
|
+
*
|
|
37
|
+
* // Sync access to the reference identifier (infrastructure use only)
|
|
38
|
+
* post.author.identifier; // 'user-123'
|
|
39
|
+
* post.author.isLoaded; // true (after await)
|
|
40
|
+
* post.author.value; // User entity (sync, throws if not loaded)
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export class Reference {
|
|
44
|
+
/** Symbol marker for type identification */
|
|
45
|
+
[REFERENCE] = true;
|
|
46
|
+
/** Internal ID storage */
|
|
47
|
+
_id;
|
|
48
|
+
/** Internal model name (set by adapter registration, used for serialization) */
|
|
49
|
+
_modelName;
|
|
50
|
+
/** Internal cached value */
|
|
51
|
+
_value = null;
|
|
52
|
+
/** Internal resolver */
|
|
53
|
+
_resolver = null;
|
|
54
|
+
constructor(id, modelName) {
|
|
55
|
+
this._id = id;
|
|
56
|
+
this._modelName = modelName;
|
|
57
|
+
}
|
|
58
|
+
/** The raw identifier of the referenced entity */
|
|
59
|
+
get identifier() {
|
|
60
|
+
return this._id;
|
|
61
|
+
}
|
|
62
|
+
/** The model name this reference belongs to (if known) */
|
|
63
|
+
get modelName() {
|
|
64
|
+
return this._modelName;
|
|
65
|
+
}
|
|
66
|
+
/** Returns the identifier - enables `${ref}` in template literals and string coercion */
|
|
67
|
+
toString() {
|
|
68
|
+
return this._id;
|
|
69
|
+
}
|
|
70
|
+
/** Whether the reference has been resolved */
|
|
71
|
+
get isLoaded() {
|
|
72
|
+
return this._value !== null;
|
|
73
|
+
}
|
|
74
|
+
/** The resolved entity (throws if not loaded) */
|
|
75
|
+
get value() {
|
|
76
|
+
if (this._value === null) {
|
|
77
|
+
throw new Error('Reference not loaded. Await the reference first.');
|
|
78
|
+
}
|
|
79
|
+
return this._value;
|
|
80
|
+
}
|
|
81
|
+
/** The resolved entity or null if not loaded */
|
|
82
|
+
get valueOrNull() {
|
|
83
|
+
return this._value;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Attach a resolver to this reference.
|
|
87
|
+
* Called by the field setter when the reference is assigned.
|
|
88
|
+
* Uses Symbol-keyed method for internal use only.
|
|
89
|
+
*
|
|
90
|
+
* Accepts `any` so Reference<T> is covariant in T - allows Reference<SubType>
|
|
91
|
+
* to be assigned where Reference<SuperType> is expected.
|
|
92
|
+
*/
|
|
93
|
+
// biome-ignore lint/suspicious/noExplicitAny: covariance - internal symbol method, never called by user code
|
|
94
|
+
[SET_RESOLVER](resolver) {
|
|
95
|
+
this._resolver = resolver;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Pre-populate this reference with an already-loaded entity.
|
|
99
|
+
* Uses Symbol-keyed method for internal use only.
|
|
100
|
+
*
|
|
101
|
+
* Accepts `any` so Reference<T> is covariant in T - allows Reference<SubType>
|
|
102
|
+
* to be assigned where Reference<SuperType> is expected.
|
|
103
|
+
*/
|
|
104
|
+
// biome-ignore lint/suspicious/noExplicitAny: covariance - internal symbol method, never called by user code
|
|
105
|
+
[HYDRATE](value) {
|
|
106
|
+
this._value = value;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Implement PromiseLike - makes the reference directly awaitable.
|
|
110
|
+
*
|
|
111
|
+
* `await post.author` becomes possible without calling .resolve().
|
|
112
|
+
*
|
|
113
|
+
* If already loaded, returns immediately (no async).
|
|
114
|
+
* Otherwise, resolves first then returns.
|
|
115
|
+
*/
|
|
116
|
+
then(onfulfilled, onrejected) {
|
|
117
|
+
// If already loaded, return immediately (fast path)
|
|
118
|
+
if (this._value !== null) {
|
|
119
|
+
return Promise.resolve(this._value).then(onfulfilled, onrejected);
|
|
120
|
+
}
|
|
121
|
+
// Otherwise resolve first
|
|
122
|
+
return this.resolve().then(onfulfilled, onrejected);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolve the reference, fetching the entity.
|
|
126
|
+
* Returns undefined if the referenced entity does not exist.
|
|
127
|
+
* Caches the result - subsequent calls return the cached value.
|
|
128
|
+
*
|
|
129
|
+
* Usually you can just `await` the reference directly instead.
|
|
130
|
+
*/
|
|
131
|
+
async resolve() {
|
|
132
|
+
if (this._value !== null) {
|
|
133
|
+
return this._value;
|
|
134
|
+
}
|
|
135
|
+
if (this._resolver === null) {
|
|
136
|
+
throw new Error('Reference has no resolver. Was this entity loaded from a repository?');
|
|
137
|
+
}
|
|
138
|
+
const resolved = await this._resolver(this._id);
|
|
139
|
+
if (resolved === null) {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
this._value = resolved;
|
|
143
|
+
return resolved;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Create a reference that's already resolved.
|
|
147
|
+
* Uses ExtractModelData to ensure compatibility with field.ref() types.
|
|
148
|
+
*
|
|
149
|
+
* @param key - The adapter-internal key for this entity
|
|
150
|
+
* @param entity - The already-loaded entity
|
|
151
|
+
*/
|
|
152
|
+
static resolved(key, entity) {
|
|
153
|
+
const ref = new Reference(key);
|
|
154
|
+
ref._value = entity;
|
|
155
|
+
return ref;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Type guard to check if a value is a Reference.
|
|
160
|
+
*/
|
|
161
|
+
export function isReference(value) {
|
|
162
|
+
return (value !== null &&
|
|
163
|
+
typeof value === 'object' &&
|
|
164
|
+
REFERENCE in value &&
|
|
165
|
+
value[REFERENCE] === true);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A collection of references to other entities that implements PromiseLike.
|
|
169
|
+
*
|
|
170
|
+
* Just like Reference, you can directly await References:
|
|
171
|
+
* const tags = await post.tags;
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const Post = defineModel('Post', {
|
|
176
|
+
* title: field.string(),
|
|
177
|
+
* tags: field.refs(Tag),
|
|
178
|
+
* });
|
|
179
|
+
*
|
|
180
|
+
* const post = await postRepo.get(Post.ref('1'));
|
|
181
|
+
*
|
|
182
|
+
* // Just await the references - no .resolveAll() needed!
|
|
183
|
+
* const tags = await post.tags;
|
|
184
|
+
*
|
|
185
|
+
* // Works with Promise.all too
|
|
186
|
+
* const [author, tags] = await Promise.all([post.author, post.tags]);
|
|
187
|
+
*
|
|
188
|
+
* // Sync access
|
|
189
|
+
* post.tags.identifiers; // ['tag-1', 'tag-2']
|
|
190
|
+
* post.tags.length; // 2
|
|
191
|
+
* post.tags.isLoaded; // true (after await)
|
|
192
|
+
* post.tags.values; // Tag[] (sync, throws if not loaded)
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
export class References {
|
|
196
|
+
/** Symbol marker for type identification */
|
|
197
|
+
[REFERENCES] = true;
|
|
198
|
+
/** Internal IDs storage */
|
|
199
|
+
_ids;
|
|
200
|
+
/** Internal cached values */
|
|
201
|
+
_values = null;
|
|
202
|
+
/** Internal resolver */
|
|
203
|
+
_resolver = null;
|
|
204
|
+
/** Internal batch resolver (optional, used for efficient batching) */
|
|
205
|
+
_batchResolver = null;
|
|
206
|
+
constructor(ids) {
|
|
207
|
+
this._ids = ids;
|
|
208
|
+
}
|
|
209
|
+
/** The raw identifiers of the referenced entities - use for infrastructure only */
|
|
210
|
+
get identifiers() {
|
|
211
|
+
return this._ids;
|
|
212
|
+
}
|
|
213
|
+
/** Number of references */
|
|
214
|
+
get length() {
|
|
215
|
+
return this._ids.length;
|
|
216
|
+
}
|
|
217
|
+
/** Whether the references have been resolved */
|
|
218
|
+
get isLoaded() {
|
|
219
|
+
return this._values !== null;
|
|
220
|
+
}
|
|
221
|
+
/** The resolved entities (throws if not loaded) */
|
|
222
|
+
get values() {
|
|
223
|
+
if (this._values === null) {
|
|
224
|
+
throw new Error('References not loaded. Await the references first.');
|
|
225
|
+
}
|
|
226
|
+
return this._values;
|
|
227
|
+
}
|
|
228
|
+
/** The resolved entities or null if not loaded */
|
|
229
|
+
get valuesOrNull() {
|
|
230
|
+
return this._values;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Attach a resolver to these references.
|
|
234
|
+
* Uses Symbol-keyed method for internal use only.
|
|
235
|
+
*/
|
|
236
|
+
[SET_RESOLVER](resolver) {
|
|
237
|
+
this._resolver = resolver;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Pre-populate these references with already-loaded entities.
|
|
241
|
+
* Uses Symbol-keyed method for internal use only.
|
|
242
|
+
*/
|
|
243
|
+
[HYDRATE](values) {
|
|
244
|
+
this._values = values;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Attach a batch resolver to these references.
|
|
248
|
+
* When available, this will be used instead of the single resolver for better performance.
|
|
249
|
+
*
|
|
250
|
+
* @internal
|
|
251
|
+
*/
|
|
252
|
+
setBatchResolver(batchResolver) {
|
|
253
|
+
this._batchResolver = batchResolver;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Implement PromiseLike - makes the references directly awaitable.
|
|
257
|
+
*
|
|
258
|
+
* `await post.tags` becomes possible without calling .resolveAll().
|
|
259
|
+
*/
|
|
260
|
+
then(onfulfilled, onrejected) {
|
|
261
|
+
// If already loaded, return immediately (fast path)
|
|
262
|
+
if (this._values !== null) {
|
|
263
|
+
return Promise.resolve(this._values).then(onfulfilled, onrejected);
|
|
264
|
+
}
|
|
265
|
+
// Otherwise resolve first
|
|
266
|
+
return this.resolveAll().then(onfulfilled, onrejected);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Resolve all references, fetching the entities.
|
|
270
|
+
* Caches the result - subsequent calls return the cached values.
|
|
271
|
+
*
|
|
272
|
+
* If a batch resolver is available, it will be used for efficient batching.
|
|
273
|
+
* Otherwise, falls back to resolving IDs one at a time.
|
|
274
|
+
*
|
|
275
|
+
* Usually you can just `await` the references directly instead.
|
|
276
|
+
*/
|
|
277
|
+
async resolveAll() {
|
|
278
|
+
if (this._values !== null) {
|
|
279
|
+
return this._values;
|
|
280
|
+
}
|
|
281
|
+
if (this._resolver === null) {
|
|
282
|
+
throw new Error('References have no resolver. Was this entity loaded from a repository?');
|
|
283
|
+
}
|
|
284
|
+
// Use batch resolver if available (more efficient)
|
|
285
|
+
if (this._batchResolver !== null) {
|
|
286
|
+
const resultMap = await this._batchResolver(this._ids);
|
|
287
|
+
const results = [];
|
|
288
|
+
// Preserve order and filter out nulls
|
|
289
|
+
for (const id of this._ids) {
|
|
290
|
+
const resolved = resultMap.get(id);
|
|
291
|
+
if (resolved !== null && resolved !== undefined) {
|
|
292
|
+
results.push(resolved);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
this._values = results;
|
|
296
|
+
return results;
|
|
297
|
+
}
|
|
298
|
+
// Fall back to one-by-one resolution
|
|
299
|
+
const results = [];
|
|
300
|
+
for (const id of this._ids) {
|
|
301
|
+
const resolved = await this._resolver(id);
|
|
302
|
+
if (resolved !== null) {
|
|
303
|
+
results.push(resolved);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
this._values = results;
|
|
307
|
+
return results;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Create references that are already resolved.
|
|
311
|
+
* Uses ExtractModelData to ensure compatibility with field.refs() types.
|
|
312
|
+
*
|
|
313
|
+
* @param keys - The adapter-internal keys for the entities
|
|
314
|
+
* @param entities - The already-loaded entities (must match keys order)
|
|
315
|
+
*/
|
|
316
|
+
static resolved(keys, entities) {
|
|
317
|
+
const refs = new References(keys);
|
|
318
|
+
refs._values = entities;
|
|
319
|
+
return refs;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Type guard to check if a value is a References collection.
|
|
324
|
+
*/
|
|
325
|
+
export function isReferences(value) {
|
|
326
|
+
return (value !== null &&
|
|
327
|
+
typeof value === 'object' &&
|
|
328
|
+
REFERENCES in value &&
|
|
329
|
+
value[REFERENCES] === true);
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/models/reference/reference.ts"],"names":[],"mappings":"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"}
|