@bleedingdev/modern-js-plugin-bff 3.5.0-ultramodern.9 → 3.5.0-ultramodern.90
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/dist/cjs/cli/compress.js +52 -0
- package/dist/cjs/cli/generator.js +184 -0
- package/dist/cjs/cli/prefix.js +50 -0
- package/dist/cjs/cli/serverGlobalVars.js +127 -0
- package/dist/cjs/cli/watch.js +51 -0
- package/dist/cjs/cli.js +11 -130
- package/dist/cjs/loader.js +19 -2
- package/dist/cjs/runtime/data-platform/batch/queue.js +284 -0
- package/dist/cjs/runtime/data-platform/batch/request.js +98 -0
- package/dist/cjs/runtime/data-platform/batch/response.js +64 -0
- package/dist/cjs/runtime/data-platform/batch/telemetry.js +67 -0
- package/dist/cjs/runtime/data-platform/batch/url.js +69 -0
- package/dist/cjs/runtime/data-platform/batch-transport.js +59 -0
- package/dist/cjs/runtime/data-platform/codec.js +155 -0
- package/dist/cjs/runtime/data-platform/index.js +30 -633
- package/dist/cjs/runtime/data-platform/invalidation.js +61 -0
- package/dist/cjs/runtime/data-platform/trace.js +73 -0
- package/dist/cjs/runtime/data-platform/types.js +48 -0
- package/dist/cjs/runtime/data-platform/validation.js +178 -0
- package/dist/cjs/runtime/effect/adapter/constants.js +44 -0
- package/dist/cjs/runtime/effect/adapter/cross-project-policy.js +61 -0
- package/dist/cjs/runtime/effect/adapter/entry.js +92 -0
- package/dist/cjs/runtime/effect/adapter/error-response.js +79 -0
- package/dist/cjs/runtime/effect/adapter/handler.js +53 -0
- package/dist/cjs/runtime/effect/adapter.js +26 -146
- package/dist/cjs/runtime/effect/backend-federation/entry.js +99 -0
- package/dist/cjs/runtime/effect/backend-federation/identity.js +82 -0
- package/dist/cjs/runtime/effect/backend-federation/load.js +66 -0
- package/dist/cjs/runtime/effect/backend-federation/plugin.js +53 -0
- package/dist/cjs/runtime/effect/backend-federation/remotes.js +50 -0
- package/dist/cjs/runtime/effect/backend-federation/runtime.js +64 -0
- package/dist/cjs/runtime/effect/backend-federation/types.js +18 -0
- package/dist/cjs/runtime/effect/backend-federation/utils.js +48 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/errors.js +83 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/index.js +55 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/load.js +94 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/metadata.js +101 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/reference.js +120 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/remote.js +68 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/types.js +18 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest/validation.js +109 -0
- package/dist/cjs/runtime/effect/backend-federation-manifest.js +62 -0
- package/dist/cjs/runtime/effect/backend-federation.js +65 -0
- package/dist/cjs/runtime/effect/dispatch.js +101 -0
- package/dist/cjs/runtime/effect/edge.js +64 -71
- package/dist/cjs/runtime/effect/endpoint-contracts.js +7 -21
- package/dist/cjs/runtime/effect/entry-shape.js +84 -0
- package/dist/cjs/runtime/effect/handler/batch-handler.js +161 -0
- package/dist/cjs/runtime/effect/handler/batch.js +195 -0
- package/dist/cjs/runtime/effect/handler/definition.js +101 -0
- package/dist/cjs/runtime/effect/handler/envelope.js +104 -0
- package/dist/cjs/runtime/effect/handler/http.js +96 -0
- package/dist/cjs/runtime/effect/handler/openapi.js +57 -0
- package/dist/cjs/runtime/effect/handler/routing.js +100 -0
- package/dist/cjs/runtime/effect/handler/rpc.js +63 -0
- package/dist/cjs/runtime/effect/handler/types.js +43 -0
- package/dist/cjs/runtime/effect/handler.js +37 -529
- package/dist/cjs/runtime/effect/index.js +91 -15
- package/dist/cjs/runtime/effect/module.js +23 -80
- package/dist/cjs/runtime/effect/rpcSerialization.js +54 -0
- package/dist/cjs/runtime/effect-client/batch.js +73 -0
- package/dist/cjs/runtime/effect-client/envelope.js +145 -0
- package/dist/cjs/runtime/effect-client/guards.js +44 -0
- package/dist/cjs/runtime/effect-client/index.js +6 -16
- package/dist/cjs/runtime/effect-client/request-context.js +64 -0
- package/dist/cjs/runtime/effect-client/request.js +66 -0
- package/dist/cjs/runtime/effect-client/runtime.js +12 -178
- package/dist/cjs/runtime/effect-client/types.js +18 -0
- package/dist/cjs/runtime/safe-failure.js +2 -1
- package/dist/cjs/utils/client-generator/files.js +152 -0
- package/dist/cjs/utils/client-generator/generate.js +138 -0
- package/dist/cjs/utils/client-generator/index.js +83 -0
- package/dist/cjs/utils/client-generator/package-json.js +132 -0
- package/dist/cjs/utils/client-generator/write-package.js +125 -0
- package/dist/cjs/utils/clientGenerator.js +26 -303
- package/dist/cjs/utils/effect-client-generator/generator.js +68 -0
- package/dist/cjs/utils/effect-client-generator/index.js +51 -0
- package/dist/cjs/utils/effect-client-generator/paths.js +73 -0
- package/dist/cjs/utils/effect-client-generator/rendering.js +231 -0
- package/dist/cjs/utils/effect-client-generator/runtime.js +85 -0
- package/dist/cjs/utils/effect-client-generator/types.js +18 -0
- package/dist/cjs/utils/effectClientGenerator.js +5 -262
- package/dist/cjs/utils/effectSourceLoader.js +252 -0
- package/dist/esm/cli/compress.mjs +14 -0
- package/dist/esm/cli/generator.mjs +133 -0
- package/dist/esm/cli/prefix.mjs +9 -0
- package/dist/esm/cli/serverGlobalVars.mjs +76 -0
- package/dist/esm/cli/watch.mjs +13 -0
- package/dist/esm/cli.mjs +7 -121
- package/dist/esm/loader.mjs +19 -2
- package/dist/esm/runtime/data-platform/batch/queue.mjs +246 -0
- package/dist/esm/runtime/data-platform/batch/request.mjs +45 -0
- package/dist/esm/runtime/data-platform/batch/response.mjs +23 -0
- package/dist/esm/runtime/data-platform/batch/telemetry.mjs +23 -0
- package/dist/esm/runtime/data-platform/batch/url.mjs +25 -0
- package/dist/esm/runtime/data-platform/batch-transport.mjs +12 -0
- package/dist/esm/runtime/data-platform/codec.mjs +90 -0
- package/dist/esm/runtime/data-platform/index.mjs +6 -610
- package/dist/esm/runtime/data-platform/invalidation.mjs +20 -0
- package/dist/esm/runtime/data-platform/trace.mjs +29 -0
- package/dist/esm/runtime/data-platform/types.mjs +4 -0
- package/dist/esm/runtime/data-platform/validation.mjs +128 -0
- package/dist/esm/runtime/effect/adapter/constants.mjs +6 -0
- package/dist/esm/runtime/effect/adapter/cross-project-policy.mjs +23 -0
- package/dist/esm/runtime/effect/adapter/entry.mjs +44 -0
- package/dist/esm/runtime/effect/adapter/error-response.mjs +41 -0
- package/dist/esm/runtime/effect/adapter/handler.mjs +15 -0
- package/dist/esm/runtime/effect/adapter.mjs +27 -147
- package/dist/esm/runtime/effect/backend-federation/entry.mjs +61 -0
- package/dist/esm/runtime/effect/backend-federation/identity.mjs +41 -0
- package/dist/esm/runtime/effect/backend-federation/load.mjs +28 -0
- package/dist/esm/runtime/effect/backend-federation/plugin.mjs +15 -0
- package/dist/esm/runtime/effect/backend-federation/remotes.mjs +12 -0
- package/dist/esm/runtime/effect/backend-federation/runtime.mjs +26 -0
- package/dist/esm/runtime/effect/backend-federation/types.mjs +0 -0
- package/dist/esm/runtime/effect/backend-federation/utils.mjs +7 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/errors.mjs +32 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/index.mjs +4 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/load.mjs +56 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/metadata.mjs +42 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/reference.mjs +76 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/remote.mjs +30 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/types.mjs +0 -0
- package/dist/esm/runtime/effect/backend-federation-manifest/validation.mjs +65 -0
- package/dist/esm/runtime/effect/backend-federation-manifest.mjs +1 -0
- package/dist/esm/runtime/effect/backend-federation.mjs +5 -0
- package/dist/esm/runtime/effect/dispatch.mjs +63 -0
- package/dist/esm/runtime/effect/edge.mjs +17 -63
- package/dist/esm/runtime/effect/endpoint-contracts.mjs +8 -13
- package/dist/esm/runtime/effect/entry-shape.mjs +36 -0
- package/dist/esm/runtime/effect/handler/batch-handler.mjs +123 -0
- package/dist/esm/runtime/effect/handler/batch.mjs +124 -0
- package/dist/esm/runtime/effect/handler/definition.mjs +60 -0
- package/dist/esm/runtime/effect/handler/envelope.mjs +63 -0
- package/dist/esm/runtime/effect/handler/http.mjs +58 -0
- package/dist/esm/runtime/effect/handler/openapi.mjs +19 -0
- package/dist/esm/runtime/effect/handler/routing.mjs +50 -0
- package/dist/esm/runtime/effect/handler/rpc.mjs +22 -0
- package/dist/esm/runtime/effect/handler/types.mjs +5 -0
- package/dist/esm/runtime/effect/handler.mjs +11 -506
- package/dist/esm/runtime/effect/index.mjs +5 -2
- package/dist/esm/runtime/effect/module.mjs +25 -82
- package/dist/esm/runtime/effect/rpcSerialization.mjs +16 -0
- package/dist/esm/runtime/effect-client/batch.mjs +35 -0
- package/dist/esm/runtime/effect-client/envelope.mjs +104 -0
- package/dist/esm/runtime/effect-client/guards.mjs +3 -0
- package/dist/esm/runtime/effect-client/index.mjs +27 -37
- package/dist/esm/runtime/effect-client/request-context.mjs +23 -0
- package/dist/esm/runtime/effect-client/request.mjs +28 -0
- package/dist/esm/runtime/effect-client/runtime.mjs +12 -178
- package/dist/esm/runtime/effect-client/types.mjs +0 -0
- package/dist/esm/runtime/safe-failure.mjs +2 -1
- package/dist/esm/utils/client-generator/files.mjs +68 -0
- package/dist/esm/utils/client-generator/generate.mjs +88 -0
- package/dist/esm/utils/client-generator/index.mjs +4 -0
- package/dist/esm/utils/client-generator/package-json.mjs +78 -0
- package/dist/esm/utils/client-generator/write-package.mjs +74 -0
- package/dist/esm/utils/clientGenerator.mjs +2 -293
- package/dist/esm/utils/effect-client-generator/generator.mjs +27 -0
- package/dist/esm/utils/effect-client-generator/index.mjs +3 -0
- package/dist/esm/utils/effect-client-generator/paths.mjs +25 -0
- package/dist/esm/utils/effect-client-generator/rendering.mjs +180 -0
- package/dist/esm/utils/effect-client-generator/runtime.mjs +34 -0
- package/dist/esm/utils/effect-client-generator/types.mjs +0 -0
- package/dist/esm/utils/effectClientGenerator.mjs +1 -249
- package/dist/esm/utils/effectSourceLoader.mjs +199 -0
- package/dist/esm-node/cli/compress.mjs +15 -0
- package/dist/esm-node/cli/generator.mjs +134 -0
- package/dist/esm-node/cli/prefix.mjs +10 -0
- package/dist/esm-node/cli/serverGlobalVars.mjs +77 -0
- package/dist/esm-node/cli/watch.mjs +14 -0
- package/dist/esm-node/cli.mjs +7 -121
- package/dist/esm-node/loader.mjs +19 -2
- package/dist/esm-node/runtime/data-platform/batch/queue.mjs +247 -0
- package/dist/esm-node/runtime/data-platform/batch/request.mjs +46 -0
- package/dist/esm-node/runtime/data-platform/batch/response.mjs +24 -0
- package/dist/esm-node/runtime/data-platform/batch/telemetry.mjs +24 -0
- package/dist/esm-node/runtime/data-platform/batch/url.mjs +26 -0
- package/dist/esm-node/runtime/data-platform/batch-transport.mjs +13 -0
- package/dist/esm-node/runtime/data-platform/codec.mjs +91 -0
- package/dist/esm-node/runtime/data-platform/index.mjs +6 -610
- package/dist/esm-node/runtime/data-platform/invalidation.mjs +21 -0
- package/dist/esm-node/runtime/data-platform/trace.mjs +30 -0
- package/dist/esm-node/runtime/data-platform/types.mjs +5 -0
- package/dist/esm-node/runtime/data-platform/validation.mjs +129 -0
- package/dist/esm-node/runtime/effect/adapter/constants.mjs +7 -0
- package/dist/esm-node/runtime/effect/adapter/cross-project-policy.mjs +24 -0
- package/dist/esm-node/runtime/effect/adapter/entry.mjs +45 -0
- package/dist/esm-node/runtime/effect/adapter/error-response.mjs +42 -0
- package/dist/esm-node/runtime/effect/adapter/handler.mjs +16 -0
- package/dist/esm-node/runtime/effect/adapter.mjs +28 -149
- package/dist/esm-node/runtime/effect/backend-federation/entry.mjs +62 -0
- package/dist/esm-node/runtime/effect/backend-federation/identity.mjs +42 -0
- package/dist/esm-node/runtime/effect/backend-federation/load.mjs +29 -0
- package/dist/esm-node/runtime/effect/backend-federation/plugin.mjs +16 -0
- package/dist/esm-node/runtime/effect/backend-federation/remotes.mjs +13 -0
- package/dist/esm-node/runtime/effect/backend-federation/runtime.mjs +27 -0
- package/dist/esm-node/runtime/effect/backend-federation/types.mjs +1 -0
- package/dist/esm-node/runtime/effect/backend-federation/utils.mjs +8 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/errors.mjs +33 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/index.mjs +5 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/load.mjs +57 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/metadata.mjs +43 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/reference.mjs +77 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/remote.mjs +31 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/types.mjs +1 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest/validation.mjs +66 -0
- package/dist/esm-node/runtime/effect/backend-federation-manifest.mjs +2 -0
- package/dist/esm-node/runtime/effect/backend-federation.mjs +6 -0
- package/dist/esm-node/runtime/effect/dispatch.mjs +64 -0
- package/dist/esm-node/runtime/effect/edge.mjs +17 -63
- package/dist/esm-node/runtime/effect/endpoint-contracts.mjs +8 -13
- package/dist/esm-node/runtime/effect/entry-shape.mjs +37 -0
- package/dist/esm-node/runtime/effect/handler/batch-handler.mjs +124 -0
- package/dist/esm-node/runtime/effect/handler/batch.mjs +125 -0
- package/dist/esm-node/runtime/effect/handler/definition.mjs +61 -0
- package/dist/esm-node/runtime/effect/handler/envelope.mjs +64 -0
- package/dist/esm-node/runtime/effect/handler/http.mjs +59 -0
- package/dist/esm-node/runtime/effect/handler/openapi.mjs +20 -0
- package/dist/esm-node/runtime/effect/handler/routing.mjs +51 -0
- package/dist/esm-node/runtime/effect/handler/rpc.mjs +23 -0
- package/dist/esm-node/runtime/effect/handler/types.mjs +6 -0
- package/dist/esm-node/runtime/effect/handler.mjs +11 -506
- package/dist/esm-node/runtime/effect/index.mjs +5 -2
- package/dist/esm-node/runtime/effect/module.mjs +25 -82
- package/dist/esm-node/runtime/effect/rpcSerialization.mjs +17 -0
- package/dist/esm-node/runtime/effect-client/batch.mjs +36 -0
- package/dist/esm-node/runtime/effect-client/envelope.mjs +105 -0
- package/dist/esm-node/runtime/effect-client/guards.mjs +4 -0
- package/dist/esm-node/runtime/effect-client/index.mjs +27 -37
- package/dist/esm-node/runtime/effect-client/request-context.mjs +24 -0
- package/dist/esm-node/runtime/effect-client/request.mjs +29 -0
- package/dist/esm-node/runtime/effect-client/runtime.mjs +12 -178
- package/dist/esm-node/runtime/effect-client/types.mjs +1 -0
- package/dist/esm-node/runtime/safe-failure.mjs +2 -1
- package/dist/esm-node/utils/client-generator/files.mjs +69 -0
- package/dist/esm-node/utils/client-generator/generate.mjs +89 -0
- package/dist/esm-node/utils/client-generator/index.mjs +5 -0
- package/dist/esm-node/utils/client-generator/package-json.mjs +79 -0
- package/dist/esm-node/utils/client-generator/write-package.mjs +75 -0
- package/dist/esm-node/utils/clientGenerator.mjs +2 -293
- package/dist/esm-node/utils/effect-client-generator/generator.mjs +28 -0
- package/dist/esm-node/utils/effect-client-generator/index.mjs +4 -0
- package/dist/esm-node/utils/effect-client-generator/paths.mjs +26 -0
- package/dist/esm-node/utils/effect-client-generator/rendering.mjs +181 -0
- package/dist/esm-node/utils/effect-client-generator/runtime.mjs +36 -0
- package/dist/esm-node/utils/effect-client-generator/types.mjs +1 -0
- package/dist/esm-node/utils/effectClientGenerator.mjs +2 -251
- package/dist/esm-node/utils/effectSourceLoader.mjs +200 -0
- package/dist/types/cli/compress.d.ts +2 -0
- package/dist/types/cli/generator.d.ts +7 -0
- package/dist/types/cli/prefix.d.ts +2 -0
- package/dist/types/cli/serverGlobalVars.d.ts +4 -0
- package/dist/types/cli/watch.d.ts +1 -0
- package/dist/types/cli.d.ts +0 -1
- package/dist/types/runtime/data-platform/batch/queue.d.ts +8 -0
- package/dist/types/runtime/data-platform/batch/request.d.ts +13 -0
- package/dist/types/runtime/data-platform/batch/response.d.ts +3 -0
- package/dist/types/runtime/data-platform/batch/telemetry.d.ts +4 -0
- package/dist/types/runtime/data-platform/batch/url.d.ts +4 -0
- package/dist/types/runtime/data-platform/batch-transport.d.ts +3 -0
- package/dist/types/runtime/data-platform/codec.d.ts +17 -0
- package/dist/types/runtime/data-platform/index.d.ts +7 -191
- package/dist/types/runtime/data-platform/invalidation.d.ts +8 -0
- package/dist/types/runtime/data-platform/trace.d.ts +4 -0
- package/dist/types/runtime/data-platform/types.d.ts +146 -0
- package/dist/types/runtime/data-platform/validation.d.ts +29 -0
- package/dist/types/runtime/effect/adapter/constants.d.ts +1 -0
- package/dist/types/runtime/effect/adapter/cross-project-policy.d.ts +4 -0
- package/dist/types/runtime/effect/adapter/entry.d.ts +2 -0
- package/dist/types/runtime/effect/adapter/error-response.d.ts +2 -0
- package/dist/types/runtime/effect/adapter/handler.d.ts +7 -0
- package/dist/types/runtime/effect/adapter.d.ts +4 -13
- package/dist/types/runtime/effect/backend-federation/entry.d.ts +2 -0
- package/dist/types/runtime/effect/backend-federation/identity.d.ts +30 -0
- package/dist/types/runtime/effect/backend-federation/load.d.ts +13 -0
- package/dist/types/runtime/effect/backend-federation/plugin.d.ts +3 -0
- package/dist/types/runtime/effect/backend-federation/remotes.d.ts +2 -0
- package/dist/types/runtime/effect/backend-federation/runtime.d.ts +3 -0
- package/dist/types/runtime/effect/backend-federation/types.d.ts +73 -0
- package/dist/types/runtime/effect/backend-federation/utils.d.ts +2 -0
- package/dist/types/runtime/effect/backend-federation-manifest/errors.d.ts +11 -0
- package/dist/types/runtime/effect/backend-federation-manifest/index.d.ts +6 -0
- package/dist/types/runtime/effect/backend-federation-manifest/load.d.ts +3 -0
- package/dist/types/runtime/effect/backend-federation-manifest/metadata.d.ts +18 -0
- package/dist/types/runtime/effect/backend-federation-manifest/reference.d.ts +4 -0
- package/dist/types/runtime/effect/backend-federation-manifest/remote.d.ts +3 -0
- package/dist/types/runtime/effect/backend-federation-manifest/types.d.ts +51 -0
- package/dist/types/runtime/effect/backend-federation-manifest/validation.d.ts +5 -0
- package/dist/types/runtime/effect/backend-federation-manifest.d.ts +1 -0
- package/dist/types/runtime/effect/backend-federation.d.ts +7 -0
- package/dist/types/runtime/effect/dispatch.d.ts +13 -0
- package/dist/types/runtime/effect/edge.d.ts +8 -8
- package/dist/types/runtime/effect/endpoint-contracts.d.ts +5 -7
- package/dist/types/runtime/effect/entry-shape.d.ts +31 -0
- package/dist/types/runtime/effect/handler/batch-handler.d.ts +11 -0
- package/dist/types/runtime/effect/handler/batch.d.ts +17 -0
- package/dist/types/runtime/effect/handler/definition.d.ts +17 -0
- package/dist/types/runtime/effect/handler/envelope.d.ts +13 -0
- package/dist/types/runtime/effect/handler/http.d.ts +14 -0
- package/dist/types/runtime/effect/handler/openapi.d.ts +4 -0
- package/dist/types/runtime/effect/handler/routing.d.ts +5 -0
- package/dist/types/runtime/effect/handler/rpc.d.ts +7 -0
- package/dist/types/runtime/effect/handler/types.d.ts +148 -0
- package/dist/types/runtime/effect/handler.d.ts +4 -190
- package/dist/types/runtime/effect/index.d.ts +3 -0
- package/dist/types/runtime/effect/module.d.ts +3 -2
- package/dist/types/runtime/effect/rpcSerialization.d.ts +3 -0
- package/dist/types/runtime/effect-client/batch.d.ts +2 -0
- package/dist/types/runtime/effect-client/envelope.d.ts +15 -0
- package/dist/types/runtime/effect-client/guards.d.ts +2 -0
- package/dist/types/runtime/effect-client/index.d.ts +1 -1
- package/dist/types/runtime/effect-client/request-context.d.ts +3 -0
- package/dist/types/runtime/effect-client/request.d.ts +1 -0
- package/dist/types/runtime/effect-client/runtime.d.ts +2 -68
- package/dist/types/runtime/effect-client/types.d.ts +68 -0
- package/dist/types/utils/client-generator/files.d.ts +28 -0
- package/dist/types/utils/client-generator/generate.d.ts +26 -0
- package/dist/types/utils/client-generator/index.d.ts +7 -0
- package/dist/types/utils/client-generator/package-json.d.ts +16 -0
- package/dist/types/utils/client-generator/write-package.d.ts +6 -0
- package/dist/types/utils/clientGenerator.d.ts +2 -37
- package/dist/types/utils/crossProjectServerPolicy.d.ts +3 -2
- package/dist/types/utils/effect-client-generator/generator.d.ts +10 -0
- package/dist/types/utils/effect-client-generator/index.d.ts +4 -0
- package/dist/types/utils/effect-client-generator/paths.d.ts +5 -0
- package/dist/types/utils/effect-client-generator/rendering.d.ts +4 -0
- package/dist/types/utils/effect-client-generator/runtime.d.ts +12 -0
- package/dist/types/utils/effect-client-generator/types.d.ts +27 -0
- package/dist/types/utils/effectClientGenerator.d.ts +2 -41
- package/dist/types/utils/effectSourceLoader.d.ts +15 -0
- package/package.json +45 -33
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { ApiRouter } from "@modern-js/bff-core";
|
|
3
|
+
import { compile } from "@modern-js/server-utils";
|
|
4
|
+
import { API_DIR, SHARED_DIR, fs, resolveServerTsconfig } from "@modern-js/utils";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import clientGenerator from "../utils/clientGenerator.mjs";
|
|
7
|
+
import { bundleEffectEntryForNode } from "../utils/effectSourceLoader.mjs";
|
|
8
|
+
import pluginGenerator from "../utils/pluginGenerator.mjs";
|
|
9
|
+
import runtimeGenerator from "../utils/runtimeGenerator.mjs";
|
|
10
|
+
import { getPrimaryPrefix } from "./prefix.mjs";
|
|
11
|
+
import { serializeServerGlobalVars, transformServerGlobalVars } from "./serverGlobalVars.mjs";
|
|
12
|
+
const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
|
|
13
|
+
const effectEntryExtensions = [
|
|
14
|
+
'.js',
|
|
15
|
+
'.jsx',
|
|
16
|
+
'.ts',
|
|
17
|
+
'.tsx',
|
|
18
|
+
'.mjs',
|
|
19
|
+
'.mts',
|
|
20
|
+
'.cjs',
|
|
21
|
+
'.cts'
|
|
22
|
+
];
|
|
23
|
+
function resolveEffectSourceEntry(appDirectory, apiDirectory, configuredEntry) {
|
|
24
|
+
const entry = configuredEntry ? path.isAbsolute(configuredEntry) ? configuredEntry : path.resolve(appDirectory, configuredEntry) : path.resolve(apiDirectory, 'index');
|
|
25
|
+
return path.extname(entry) ? entry : effectEntryExtensions.map((extension)=>`${entry}${extension}`).find((candidate)=>fs.existsSync(candidate));
|
|
26
|
+
}
|
|
27
|
+
function resolveBuiltEffectEntry(appDirectory, distDirectory, sourceEntry) {
|
|
28
|
+
if (!sourceEntry) return;
|
|
29
|
+
const relativeEntry = path.relative(appDirectory, sourceEntry);
|
|
30
|
+
if ('..' === relativeEntry || relativeEntry.startsWith(`..${path.sep}`)) throw new Error(`Effect BFF entry must be inside the application directory: ${sourceEntry}`);
|
|
31
|
+
const builtEntry = path.resolve(distDirectory, relativeEntry).replace(/\.(?:[cm]?ts|tsx|jsx)$/u, '.js');
|
|
32
|
+
return fs.existsSync(builtEntry) ? builtEntry : void 0;
|
|
33
|
+
}
|
|
34
|
+
const createBffGenerator = (api)=>{
|
|
35
|
+
const compileApi = async ()=>{
|
|
36
|
+
const { appDirectory, distDirectory, apiDirectory, bffRuntimeFramework, sharedDirectory, moduleType } = api.getAppContext();
|
|
37
|
+
const modernConfig = api.getNormalizedConfig();
|
|
38
|
+
const distDir = path.resolve(distDirectory);
|
|
39
|
+
const apiDir = apiDirectory || path.resolve(appDirectory, API_DIR);
|
|
40
|
+
const sharedDir = sharedDirectory || path.resolve(appDirectory, SHARED_DIR);
|
|
41
|
+
const tsconfigPath = resolveServerTsconfig(appDirectory, modernConfig?.server?.tsconfigPath);
|
|
42
|
+
const sourceDirs = [];
|
|
43
|
+
if (await fs.pathExists(apiDir)) sourceDirs.push(apiDir);
|
|
44
|
+
if (await fs.pathExists(sharedDir)) sourceDirs.push(sharedDir);
|
|
45
|
+
const { alias, globalVars } = modernConfig.source;
|
|
46
|
+
const { alias: resolveAlias } = modernConfig.resolve;
|
|
47
|
+
if (sourceDirs.length > 0) {
|
|
48
|
+
const combinedAlias = [].concat(alias ?? []).concat(resolveAlias ?? []);
|
|
49
|
+
const serializedGlobalVars = serializeServerGlobalVars(globalVars);
|
|
50
|
+
await compile(appDirectory, {
|
|
51
|
+
alias: combinedAlias
|
|
52
|
+
}, {
|
|
53
|
+
sourceDirs,
|
|
54
|
+
distDir,
|
|
55
|
+
tsconfigPath,
|
|
56
|
+
moduleType,
|
|
57
|
+
throwErrorInsteadOfExit: true
|
|
58
|
+
});
|
|
59
|
+
await transformServerGlobalVars(sourceDirs.map((sourceDir)=>path.resolve(distDir, path.relative(appDirectory, sourceDir))), serializedGlobalVars);
|
|
60
|
+
if ('effect' === bffRuntimeFramework) {
|
|
61
|
+
const sourceEntry = resolveEffectSourceEntry(appDirectory, apiDir, modernConfig.bff?.effect?.entry);
|
|
62
|
+
const builtEntry = resolveBuiltEffectEntry(appDirectory, distDir, sourceEntry);
|
|
63
|
+
if (!builtEntry) throw new Error(`Effect BFF entry was not emitted into ${distDir}: ${sourceEntry ?? path.resolve(apiDir, 'index')}`);
|
|
64
|
+
await bundleEffectEntryForNode({
|
|
65
|
+
appDir: appDirectory,
|
|
66
|
+
entryPath: builtEntry,
|
|
67
|
+
format: 'module' === moduleType ? 'esm' : 'cjs'
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const generate = async ()=>{
|
|
73
|
+
const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework } = api.getAppContext();
|
|
74
|
+
const modernConfig = api.getNormalizedConfig();
|
|
75
|
+
const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
|
|
76
|
+
const { bff } = modernConfig || {};
|
|
77
|
+
const prefix = getPrimaryPrefix(bff?.prefix);
|
|
78
|
+
const httpMethodDecider = bff?.httpMethodDecider;
|
|
79
|
+
const apiRouter = new ApiRouter({
|
|
80
|
+
apiDir: apiDirectory,
|
|
81
|
+
appDir: appDirectory,
|
|
82
|
+
lambdaDir: lambdaDirectory,
|
|
83
|
+
prefix,
|
|
84
|
+
httpMethodDecider,
|
|
85
|
+
isBuild: true
|
|
86
|
+
});
|
|
87
|
+
const lambdaDir = apiRouter.getLambdaDir();
|
|
88
|
+
const existLambda = apiRouter.isExistLambda();
|
|
89
|
+
const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
|
|
90
|
+
const relativeApiPath = path.relative(appDirectory, apiDirectory);
|
|
91
|
+
const relativeLambdaPath = path.relative(appDirectory, lambdaDir);
|
|
92
|
+
await pluginGenerator({
|
|
93
|
+
prefix,
|
|
94
|
+
appDirectory,
|
|
95
|
+
relativeDistPath,
|
|
96
|
+
relativeApiPath,
|
|
97
|
+
relativeLambdaPath,
|
|
98
|
+
runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect'
|
|
99
|
+
});
|
|
100
|
+
await clientGenerator({
|
|
101
|
+
prefix,
|
|
102
|
+
appDir: appDirectory,
|
|
103
|
+
apiDir: apiDirectory,
|
|
104
|
+
lambdaDir,
|
|
105
|
+
existLambda,
|
|
106
|
+
port,
|
|
107
|
+
requestCreator: bff?.requestCreator,
|
|
108
|
+
httpMethodDecider,
|
|
109
|
+
relativeDistPath,
|
|
110
|
+
relativeApiPath,
|
|
111
|
+
bffRuntimeFramework,
|
|
112
|
+
effectEntry: bff?.effect?.entry,
|
|
113
|
+
effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
|
|
114
|
+
});
|
|
115
|
+
await runtimeGenerator({
|
|
116
|
+
runtime,
|
|
117
|
+
appDirectory,
|
|
118
|
+
relativeDistPath
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
const handleCrossProjectInvocation = async (isBuild = false)=>{
|
|
122
|
+
const { bff } = api.getNormalizedConfig();
|
|
123
|
+
if (bff?.crossProject) {
|
|
124
|
+
if (!isBuild) await compileApi();
|
|
125
|
+
await generate();
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return {
|
|
129
|
+
compileApi,
|
|
130
|
+
generate,
|
|
131
|
+
handleCrossProjectInvocation
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
export { createBffGenerator };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { DEFAULT_API_PREFIX } from "@modern-js/utils";
|
|
3
|
+
const normalizePrefixList = (prefix)=>{
|
|
4
|
+
if (Array.isArray(prefix)) return prefix.filter(Boolean);
|
|
5
|
+
return [
|
|
6
|
+
prefix || DEFAULT_API_PREFIX
|
|
7
|
+
];
|
|
8
|
+
};
|
|
9
|
+
const getPrimaryPrefix = (prefix)=>normalizePrefixList(prefix)[0] || DEFAULT_API_PREFIX;
|
|
10
|
+
export { getPrimaryPrefix, normalizePrefixList };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { applyOptionsChain, fs } from "@modern-js/utils";
|
|
3
|
+
import { transform } from "@swc/core";
|
|
4
|
+
import path from "path";
|
|
5
|
+
const RELEASE_IDENTITY_GLOBAL_NAMES = [
|
|
6
|
+
'ULTRAMODERN_BUILD_MARKER',
|
|
7
|
+
'ULTRAMODERN_SOURCE_REVISION',
|
|
8
|
+
'ULTRAMODERN_RELEASE_VERSION'
|
|
9
|
+
];
|
|
10
|
+
const collectJavaScriptFiles = async (directory)=>{
|
|
11
|
+
const entries = await fs.readdir(directory, {
|
|
12
|
+
withFileTypes: true
|
|
13
|
+
});
|
|
14
|
+
const nested = await Promise.all(entries.map(async (entry)=>{
|
|
15
|
+
const absolutePath = path.join(directory, entry.name);
|
|
16
|
+
if (entry.isDirectory()) return collectJavaScriptFiles(absolutePath);
|
|
17
|
+
return /\.(?:c|m)?js$/u.test(entry.name) ? [
|
|
18
|
+
absolutePath
|
|
19
|
+
] : [];
|
|
20
|
+
}));
|
|
21
|
+
return nested.flat();
|
|
22
|
+
};
|
|
23
|
+
const serializeServerGlobalVars = (options)=>{
|
|
24
|
+
const globalVars = applyOptionsChain({}, options, {
|
|
25
|
+
env: 'server',
|
|
26
|
+
target: 'node'
|
|
27
|
+
});
|
|
28
|
+
return Object.fromEntries(Object.entries(globalVars).map(([key, value])=>{
|
|
29
|
+
let serialized;
|
|
30
|
+
try {
|
|
31
|
+
serialized = JSON.stringify(value);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
throw new Error(`source.globalVars["${key}"] cannot be serialized exactly for BFF compilation.`, {
|
|
34
|
+
cause: error
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (void 0 === serialized) throw new Error(`source.globalVars["${key}"] cannot be serialized exactly for BFF compilation.`);
|
|
38
|
+
return [
|
|
39
|
+
key,
|
|
40
|
+
serialized
|
|
41
|
+
];
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
const transformServerGlobalVars = async (outputDirectories, globalVars)=>{
|
|
45
|
+
if (0 === Object.keys(globalVars).length) return;
|
|
46
|
+
const existingDirectories = (await Promise.all(outputDirectories.map(async (directory)=>await fs.pathExists(directory) ? directory : void 0))).filter((directory)=>Boolean(directory));
|
|
47
|
+
const files = (await Promise.all(existingDirectories.map(collectJavaScriptFiles))).flat();
|
|
48
|
+
const releaseIdentityBanner = RELEASE_IDENTITY_GLOBAL_NAMES.every((name)=>Object.hasOwn(globalVars, name)) ? `${RELEASE_IDENTITY_GLOBAL_NAMES.map((name)=>`void ${globalVars[name]};`).join('')}\n` : '';
|
|
49
|
+
await Promise.all(files.map(async (filename)=>{
|
|
50
|
+
const source = await fs.readFile(filename, 'utf8');
|
|
51
|
+
const sourceMapFilename = `${filename}.map`;
|
|
52
|
+
const sourceMapExists = await fs.pathExists(sourceMapFilename);
|
|
53
|
+
const inputSourceMap = sourceMapExists ? await fs.readFile(sourceMapFilename, 'utf8') : void 0;
|
|
54
|
+
const result = await transform(`${releaseIdentityBanner}${source}`, {
|
|
55
|
+
filename,
|
|
56
|
+
inputSourceMap,
|
|
57
|
+
sourceMaps: sourceMapExists,
|
|
58
|
+
jsc: {
|
|
59
|
+
parser: {
|
|
60
|
+
syntax: "ecmascript"
|
|
61
|
+
},
|
|
62
|
+
preserveAllComments: true,
|
|
63
|
+
target: 'es2022',
|
|
64
|
+
transform: {
|
|
65
|
+
optimizer: {
|
|
66
|
+
globals: {
|
|
67
|
+
vars: globalVars
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
await fs.writeFile(filename, result.code);
|
|
74
|
+
if (sourceMapExists && result.map) await fs.writeFile(sourceMapFilename, result.map);
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
export { serializeServerGlobalVars, transformServerGlobalVars };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
const WATCHABLE_EXTENSIONS = [
|
|
3
|
+
'.ts',
|
|
4
|
+
'.tsx',
|
|
5
|
+
'.js',
|
|
6
|
+
'.jsx',
|
|
7
|
+
'.mts',
|
|
8
|
+
'.cts',
|
|
9
|
+
'.mjs',
|
|
10
|
+
'.cjs',
|
|
11
|
+
'.json'
|
|
12
|
+
];
|
|
13
|
+
const isWatchableBffFile = (filename)=>WATCHABLE_EXTENSIONS.some((ext)=>filename.endsWith(ext));
|
|
14
|
+
export { isWatchableBffFile };
|
package/dist/esm-node/cli.mjs
CHANGED
|
@@ -1,34 +1,14 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
import { ApiRouter } from "@modern-js/bff-core";
|
|
3
|
-
import {
|
|
4
|
-
import { API_DIR, DEFAULT_API_PREFIX, SHARED_DIR, fs, normalizeOutputPath, resolveServerTsconfig } from "@modern-js/utils";
|
|
3
|
+
import { normalizeOutputPath } from "@modern-js/utils";
|
|
5
4
|
import path from "path";
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
5
|
+
import { createCompressConfig } from "./cli/compress.mjs";
|
|
6
|
+
import { createBffGenerator } from "./cli/generator.mjs";
|
|
7
|
+
import { getPrimaryPrefix } from "./cli/prefix.mjs";
|
|
8
|
+
import { isWatchableBffFile } from "./cli/watch.mjs";
|
|
9
9
|
import { fileURLToPath as __rspack_fileURLToPath } from "node:url";
|
|
10
10
|
import { dirname as __rspack_dirname } from "node:path";
|
|
11
11
|
var __rspack_import_meta_dirname__ = __rspack_dirname(__rspack_fileURLToPath(import.meta.url));
|
|
12
|
-
const RUNTIME_CREATE_REQUEST = '@modern-js/plugin-bff/client';
|
|
13
|
-
const WATCHABLE_EXTENSIONS = [
|
|
14
|
-
'.ts',
|
|
15
|
-
'.tsx',
|
|
16
|
-
'.js',
|
|
17
|
-
'.jsx',
|
|
18
|
-
'.mts',
|
|
19
|
-
'.cts',
|
|
20
|
-
'.mjs',
|
|
21
|
-
'.cjs',
|
|
22
|
-
'.json'
|
|
23
|
-
];
|
|
24
|
-
const isWatchableBffFile = (filename)=>WATCHABLE_EXTENSIONS.some((ext)=>filename.endsWith(ext));
|
|
25
|
-
const normalizePrefixList = (prefix)=>{
|
|
26
|
-
if (Array.isArray(prefix)) return prefix.filter(Boolean);
|
|
27
|
-
return [
|
|
28
|
-
prefix || DEFAULT_API_PREFIX
|
|
29
|
-
];
|
|
30
|
-
};
|
|
31
|
-
const getPrimaryPrefix = (prefix)=>normalizePrefixList(prefix)[0] || DEFAULT_API_PREFIX;
|
|
32
12
|
const bffPlugin = ()=>({
|
|
33
13
|
name: '@modern-js/plugin-bff',
|
|
34
14
|
setup: (api)=>{
|
|
@@ -40,106 +20,14 @@ const bffPlugin = ()=>({
|
|
|
40
20
|
bffRuntimeFramework: 'hono' === userRuntimeFramework ? 'hono' : 'effect'
|
|
41
21
|
});
|
|
42
22
|
}
|
|
43
|
-
const compileApi =
|
|
44
|
-
const { appDirectory, distDirectory, apiDirectory, sharedDirectory, moduleType } = api.getAppContext();
|
|
45
|
-
const modernConfig = api.getNormalizedConfig();
|
|
46
|
-
const distDir = path.resolve(distDirectory);
|
|
47
|
-
const apiDir = apiDirectory || path.resolve(appDirectory, API_DIR);
|
|
48
|
-
const sharedDir = sharedDirectory || path.resolve(appDirectory, SHARED_DIR);
|
|
49
|
-
const tsconfigPath = resolveServerTsconfig(appDirectory, modernConfig?.server?.tsconfigPath);
|
|
50
|
-
const sourceDirs = [];
|
|
51
|
-
if (await fs.pathExists(apiDir)) sourceDirs.push(apiDir);
|
|
52
|
-
if (await fs.pathExists(sharedDir)) sourceDirs.push(sharedDir);
|
|
53
|
-
const { alias } = modernConfig.source;
|
|
54
|
-
const { alias: resolveAlias } = modernConfig.resolve;
|
|
55
|
-
if (sourceDirs.length > 0) {
|
|
56
|
-
const combinedAlias = [].concat(alias ?? []).concat(resolveAlias ?? []);
|
|
57
|
-
await compile(appDirectory, {
|
|
58
|
-
alias: combinedAlias
|
|
59
|
-
}, {
|
|
60
|
-
sourceDirs,
|
|
61
|
-
distDir,
|
|
62
|
-
tsconfigPath,
|
|
63
|
-
moduleType,
|
|
64
|
-
throwErrorInsteadOfExit: true
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
const generator = async ()=>{
|
|
69
|
-
const { appDirectory, apiDirectory, lambdaDirectory, port, bffRuntimeFramework } = api.getAppContext();
|
|
70
|
-
const modernConfig = api.getNormalizedConfig();
|
|
71
|
-
const relativeDistPath = modernConfig?.output?.distPath?.root || 'dist';
|
|
72
|
-
const { bff } = modernConfig || {};
|
|
73
|
-
const prefix = getPrimaryPrefix(bff?.prefix);
|
|
74
|
-
const httpMethodDecider = bff?.httpMethodDecider;
|
|
75
|
-
const apiRouter = new ApiRouter({
|
|
76
|
-
apiDir: apiDirectory,
|
|
77
|
-
appDir: appDirectory,
|
|
78
|
-
lambdaDir: lambdaDirectory,
|
|
79
|
-
prefix,
|
|
80
|
-
httpMethodDecider,
|
|
81
|
-
isBuild: true
|
|
82
|
-
});
|
|
83
|
-
const lambdaDir = apiRouter.getLambdaDir();
|
|
84
|
-
const existLambda = apiRouter.isExistLambda();
|
|
85
|
-
const runtime = bff?.runtimeCreateRequest || RUNTIME_CREATE_REQUEST;
|
|
86
|
-
const relativeApiPath = path.relative(appDirectory, apiDirectory);
|
|
87
|
-
const relativeLambdaPath = path.relative(appDirectory, lambdaDir);
|
|
88
|
-
await pluginGenerator({
|
|
89
|
-
prefix,
|
|
90
|
-
appDirectory,
|
|
91
|
-
relativeDistPath,
|
|
92
|
-
relativeApiPath,
|
|
93
|
-
relativeLambdaPath,
|
|
94
|
-
runtimeFramework: 'hono' === bffRuntimeFramework ? 'hono' : 'effect'
|
|
95
|
-
});
|
|
96
|
-
await clientGenerator({
|
|
97
|
-
prefix,
|
|
98
|
-
appDir: appDirectory,
|
|
99
|
-
apiDir: apiDirectory,
|
|
100
|
-
lambdaDir,
|
|
101
|
-
existLambda,
|
|
102
|
-
port,
|
|
103
|
-
requestCreator: bff?.requestCreator,
|
|
104
|
-
httpMethodDecider,
|
|
105
|
-
relativeDistPath,
|
|
106
|
-
relativeApiPath,
|
|
107
|
-
bffRuntimeFramework,
|
|
108
|
-
effectEntry: bff?.effect?.entry,
|
|
109
|
-
effectDataPlatformBatch: bff?.effect?.dataPlatform?.batch
|
|
110
|
-
});
|
|
111
|
-
await runtimeGenerator({
|
|
112
|
-
runtime,
|
|
113
|
-
appDirectory,
|
|
114
|
-
relativeDistPath
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
const handleCrossProjectInvocation = async (isBuild = false)=>{
|
|
118
|
-
const { bff } = api.getNormalizedConfig();
|
|
119
|
-
if (bff?.crossProject) {
|
|
120
|
-
if (!isBuild) await compileApi();
|
|
121
|
-
await generator();
|
|
122
|
-
}
|
|
123
|
-
};
|
|
23
|
+
const { compileApi, handleCrossProjectInvocation } = createBffGenerator(api);
|
|
124
24
|
const isHono = ()=>{
|
|
125
25
|
const { bffRuntimeFramework } = api.getAppContext();
|
|
126
26
|
return 'hono' === bffRuntimeFramework;
|
|
127
27
|
};
|
|
128
|
-
const createCompressConfig = (devServer, prefix)=>{
|
|
129
|
-
if (!devServer || 'object' != typeof devServer || Array.isArray(devServer)) return;
|
|
130
|
-
const { compress } = devServer;
|
|
131
|
-
if (void 0 === compress || true === compress) {
|
|
132
|
-
const prefixes = normalizePrefixList(prefix);
|
|
133
|
-
return {
|
|
134
|
-
filter: (req)=>!prefixes.some((item)=>req.url?.includes(item))
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
if (false === compress) return false;
|
|
138
|
-
return compress;
|
|
139
|
-
};
|
|
140
28
|
api.config(async ()=>{
|
|
141
29
|
const devServer = api.getConfig()?.tools?.devServer;
|
|
142
|
-
const prefix = api.getConfig()?.bff?.prefix
|
|
30
|
+
const prefix = api.getConfig()?.bff?.prefix;
|
|
143
31
|
const compress = createCompressConfig(devServer, prefix);
|
|
144
32
|
return {
|
|
145
33
|
tools: {
|
|
@@ -244,6 +132,4 @@ const bffPlugin = ()=>({
|
|
|
244
132
|
});
|
|
245
133
|
}
|
|
246
134
|
});
|
|
247
|
-
const cli = bffPlugin;
|
|
248
|
-
export default cli;
|
|
249
135
|
export { bffPlugin };
|
package/dist/esm-node/loader.mjs
CHANGED
|
@@ -4,6 +4,8 @@ import { generateClient } from "@modern-js/bff-core";
|
|
|
4
4
|
import { logger } from "@modern-js/utils";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { generateEffectClientCode, resolveEffectEntryFile } from "./utils/effectClientGenerator.mjs";
|
|
7
|
+
const EFFECT_BFF_WORKER_RUNTIME_QUERY = 'modern-bff-runtime';
|
|
8
|
+
const EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY = 'modern-bff-runtime-source';
|
|
7
9
|
async function transformEffectRuntimeSource(source, filename) {
|
|
8
10
|
const swc = await import("@swc/core");
|
|
9
11
|
const result = await swc.transform(source, {
|
|
@@ -22,22 +24,36 @@ async function transformEffectRuntimeSource(source, filename) {
|
|
|
22
24
|
});
|
|
23
25
|
return result.code;
|
|
24
26
|
}
|
|
27
|
+
function createEffectWorkerRuntimeWrapper(resourcePath) {
|
|
28
|
+
const sourceRequest = `${resourcePath}?${EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY}`;
|
|
29
|
+
return `import * as effectBffModule from ${JSON.stringify(sourceRequest)};
|
|
30
|
+
import { createEffectBffEdgeDispatcher } from '@modern-js/plugin-bff/effect-edge';
|
|
31
|
+
|
|
32
|
+
export const __modern_create_effect_bff_dispatcher = options =>
|
|
33
|
+
createEffectBffEdgeDispatcher({
|
|
34
|
+
...options,
|
|
35
|
+
module: effectBffModule,
|
|
36
|
+
});
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
25
39
|
async function loader(source) {
|
|
26
40
|
this.cacheable();
|
|
27
41
|
const { resourcePath } = this;
|
|
28
42
|
delete require.cache[resourcePath];
|
|
29
43
|
const callback = this.async();
|
|
30
44
|
const draftOptions = this.getOptions();
|
|
45
|
+
const resourceQueries = new URLSearchParams(this.resourceQuery);
|
|
31
46
|
const effectEntryFile = resolveEffectEntryFile({
|
|
32
47
|
appDir: draftOptions.appDir,
|
|
33
48
|
apiDir: draftOptions.apiDir,
|
|
34
49
|
effectEntry: draftOptions.effectEntry
|
|
35
50
|
});
|
|
36
|
-
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath) &&
|
|
51
|
+
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_SOURCE_QUERY)) {
|
|
37
52
|
const code = await transformEffectRuntimeSource(source, resourcePath);
|
|
38
53
|
callback(void 0, code);
|
|
39
54
|
return;
|
|
40
55
|
}
|
|
56
|
+
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath) && resourceQueries.has(EFFECT_BFF_WORKER_RUNTIME_QUERY)) return void callback(void 0, createEffectWorkerRuntimeWrapper(resourcePath));
|
|
41
57
|
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && path.resolve(effectEntryFile) === path.resolve(resourcePath)) {
|
|
42
58
|
const code = await generateEffectClientCode({
|
|
43
59
|
appDir: draftOptions.appDir,
|
|
@@ -48,7 +64,8 @@ async function loader(source) {
|
|
|
48
64
|
target: draftOptions.target,
|
|
49
65
|
requestCreator: draftOptions.requestCreator,
|
|
50
66
|
httpMethodDecider: draftOptions.httpMethodDecider,
|
|
51
|
-
dataPlatformBatch: draftOptions.effectDataPlatformBatch
|
|
67
|
+
dataPlatformBatch: draftOptions.effectDataPlatformBatch,
|
|
68
|
+
onDependency: (dependency)=>this.addDependency(dependency)
|
|
52
69
|
});
|
|
53
70
|
if (code) return void callback(void 0, code);
|
|
54
71
|
callback(void 0, `throw new Error('Failed to generate Effect client for ${resourcePath}')`);
|