@nexusts/resilience 0.7.2 → 0.7.3

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/index.js CHANGED
@@ -566,5 +566,5 @@ export {
566
566
  Bulkhead
567
567
  };
568
568
 
569
- //# debugId=05BB0D9656B5BB4364756E2164756E21
569
+ //# debugId=56175557E445013B64756E2164756E21
570
570
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -11,6 +11,6 @@
11
11
  "/**\n * Decorator barrel for `nexusjs/resilience`.\n *\n * The three method decorators (`@Retry`, `@CircuitBreaker`,\n * `@Bulkhead`) plus the combined `@Resilient` decorator are\n * implemented as **metadata-only** decorators — they write options\n * to the method's `reflect-metadata` store, and an\n * `ResilienceInterceptor` (or a runtime hook) reads and applies\n * them at call time.\n *\n * @Retry({ attempts: 3, backoff: \"exponential\" })\n * async fetchUser(id: string) { ... }\n *\n * @CircuitBreaker({ threshold: 0.5, timeout: 30_000 })\n * async callStripe() { ... }\n *\n * @Bulkhead({ maxConcurrent: 5 })\n * async callExpensive() { ... }\n *\n * @Resilient({ retry: {...}, circuit: {...}, bulkhead: {...} })\n * async criticalCall() { ... }\n */\nimport \"reflect-metadata\";\nimport type {\n\tBulkheadConfig,\n\tCircuitBreakerConfig,\n\tResilientConfig,\n\tRetryConfig,\n} from \"../types.js\";\nimport { RESILIENCE_META } from \"../types.js\";\n\n// Use `import type` for the service to avoid a circular import:\n// `resilience.service.ts` → `decorators/index.ts` → `resilience.service.ts`.\n// At runtime, the dependency is set via `setResilienceService()` so\n// only the *type* needs to be visible at type-check time.\nimport type { ResilienceService } from \"../resilience.service.js\";\n\n// Per-method metadata kinds. Each decorator stores its own\n// payload under a separate key so a method can have e.g. `@Retry`\n// and `@CircuitBreaker` simultaneously.\nconst KEY_RETRY = Symbol.for(\"nexus:Resilience:Retry\");\nconst KEY_CIRCUIT = Symbol.for(\"nexus:Resilience:Circuit\");\nconst KEY_BULKHEAD = Symbol.for(\"nexus:Resilience:Bulkhead\");\nconst KEY_RESILIENT = Symbol.for(\"nexus:Resilience:Resilient\");\n\nexport interface RetryMeta {\n\tconfig: RetryConfig;\n\t/** Captured bound `this` at call time. */\n}\nexport interface CircuitMeta {\n\tconfig: CircuitBreakerConfig;\n}\nexport interface BulkheadMeta {\n\tconfig: BulkheadConfig;\n}\nexport interface ResilientMeta {\n\tconfig: ResilientConfig;\n}\n\n/** Read the metadata for a given method. */\nexport function getMethodRetry(\n\ttarget: object,\n\tpropertyKey: string | symbol,\n): RetryConfig | undefined {\n\treturn Reflect.getMetadata(KEY_RETRY, target, propertyKey) as RetryConfig | undefined;\n}\n\nexport function getMethodCircuit(\n\ttarget: object,\n\tpropertyKey: string | symbol,\n): CircuitBreakerConfig | undefined {\n\treturn Reflect.getMetadata(KEY_CIRCUIT, target, propertyKey) as\n\t\t| CircuitBreakerConfig\n\t\t| undefined;\n}\n\nexport function getMethodBulkhead(\n\ttarget: object,\n\tpropertyKey: string | symbol,\n): BulkheadConfig | undefined {\n\treturn Reflect.getMetadata(KEY_BULKHEAD, target, propertyKey) as\n\t\t| BulkheadConfig\n\t\t| undefined;\n}\n\nexport function getMethodResilient(\n\ttarget: object,\n\tpropertyKey: string | symbol,\n): ResilientConfig | undefined {\n\treturn Reflect.getMetadata(KEY_RESILIENT, target, propertyKey) as\n\t\t| ResilientConfig\n\t\t| undefined;\n}\n\n// ============================================================================\n// Decorator factories\n// ============================================================================\n\nfunction makeMethodDecorator<TConfig>(\n\tkey: symbol,\n\textract: (config: TConfig) => unknown,\n): (config: TConfig) => MethodDecorator {\n\treturn (config: TConfig): MethodDecorator => {\n\t\treturn (\n\t\t\t_target: object,\n\t\t\tpropertyKey: string | symbol,\n\t\t\t_descriptor: TypedPropertyDescriptor<any>,\n\t\t): void => {\n\t\t\t// Metadata-only — we don't touch `descriptor.value`\n\t\t\t// here because Bun 1.3's stage-3 decorator mode (the\n\t\t\t// default) doesn't pass it. Instead, the framework\n\t\t\t// reads the metadata at controller-mount time and\n\t\t\t// calls `applyResilience()` to wrap the method.\n\t\t\tReflect.defineMetadata(key, extract(config), _target, propertyKey);\n\t\t};\n\t};\n}\n\n// Used by `applyResilience()` below (exported for users who want\n// to wire it into their own framework hook). Not invoked from the\n// decorator factories themselves — that would require reading\n// `descriptor.value` in the decorator body, which Bun's stage-3\n// decorator mode (the default in Bun 1.3+) doesn't supply.\nexport function getResilientMetadata(target: object, propertyKey: string | symbol) {\n\tconst resilient = getMethodResilient(target, propertyKey);\n\tconst retry = resilient?.retry ?? getMethodRetry(target, propertyKey);\n\tconst circuit = resilient?.circuit ?? getMethodCircuit(target, propertyKey);\n\tconst bulkhead = resilient?.bulkhead ?? getMethodBulkhead(target, propertyKey);\n\treturn { retry, circuit, bulkhead };\n}\n\n// Used by `applyResilience()` below; same rationale as above.\nexport function makeResilientWrapper(\n\toriginal: Function,\n\tresolveMeta: () => {\n\t\tretry?: RetryConfig;\n\t\tcircuit?: CircuitBreakerConfig;\n\t\tbulkhead?: BulkheadConfig;\n\t},\n): Function {\n\treturn function (this: unknown, ...args: any[]) {\n\t\tconst meta = resolveMeta();\n\t\tif (!meta.retry && !meta.circuit && !meta.bulkhead) {\n\t\t\treturn original.apply(this, args);\n\t\t}\n\t\tconst svc = getResilienceService();\n\t\tif (!svc) {\n\t\t\treturn original.apply(this, args);\n\t\t}\n\t\tconst name = original.name || \"anonymous\";\n\n\t\tconst fn = () => original.apply(this, args);\n\t\tconst runOnce = () =>\n\t\t\tmeta.bulkhead\n\t\t\t\t? svc.getOrCreateBulkhead(name, meta.bulkhead).execute(fn)\n\t\t\t\t: fn();\n\t\tconst runWithCircuit = () =>\n\t\t\tmeta.circuit\n\t\t\t\t? svc.getOrCreateCircuit(name, meta.circuit).execute(runOnce)\n\t\t\t\t: runOnce();\n\t\tconst runWithRetry = () =>\n\t\t\tmeta.retry ? svc.retry(runWithCircuit, meta.retry) : runWithCircuit();\n\n\t\treturn runWithRetry();\n\t};\n}\n\n/**\n * Module-level handle to the `ResilienceService`. Set by\n * `ResilienceModule.forRoot()` so the eager-decorator path can\n * access the registry without each method carrying the DI token.\n */\nlet _resilienceService: ResilienceService | null = null;\n\n/** Public — used by `ResilienceModule` to register the service. */\nexport function setResilienceService(svc: ResilienceService | null): void {\n\t_resilienceService = svc;\n}\n\n/** Public — used by the eager decorator path. */\nexport function getResilienceService(): ResilienceService | null {\n\treturn _resilienceService;\n}\n\n/** `@Retry(config)` — retry the method with backoff. */\nexport const Retry = makeMethodDecorator<RetryConfig>(KEY_RETRY, (c) => c);\n\n/** `@CircuitBreaker(config)` — wrap the method in a named circuit. */\nexport const CircuitBreaker = makeMethodDecorator<CircuitBreakerConfig>(\n\tKEY_CIRCUIT,\n\t(c) => c,\n);\n\n/** `@Bulkhead(config)` — limit concurrency for the method. */\nexport const Bulkhead = makeMethodDecorator<BulkheadConfig>(KEY_BULKHEAD, (c) => c);\n\n/** `@Resilient(config)` — combine retry + circuit + bulkhead. */\nexport const Resilient = makeMethodDecorator<ResilientConfig>(\n\tKEY_RESILIENT,\n\t(c) => c,\n);\n\n// ============================================================================\n// `applyResilience()` — runtime hook\n// ============================================================================\n\n/**\n * Read all `@Resilient` / `@Retry` / `@CircuitBreaker` / `@Bulkhead`\n * metadata on `target` and apply the corresponding wrappers around\n * `descriptor.value`. The framework wires this up via\n * `ResilienceService` when controllers are mounted.\n */\nexport function applyResilience(\n\ttarget: object,\n\tpropertyKey: string | symbol,\n\tdescriptor: TypedPropertyDescriptor<any>,\n\tsvc: import(\"../resilience.service.js\").ResilienceService,\n): TypedPropertyDescriptor<any> {\n\tif (!descriptor.value || typeof descriptor.value !== \"function\") {\n\t\treturn descriptor;\n\t}\n\tconst original = descriptor.value;\n\n\tconst resilient = getMethodResilient(target, propertyKey);\n\tconst retry = resilient?.retry ?? getMethodRetry(target, propertyKey);\n\tconst circuit = resilient?.circuit ?? getMethodCircuit(target, propertyKey);\n\tconst bulkhead = resilient?.bulkhead ?? getMethodBulkhead(target, propertyKey);\n\n\tif (!retry && !circuit && !bulkhead) {\n\t\treturn descriptor; // No resilience — leave the method alone.\n\t}\n\n\tconst wrapped = async function (this: unknown, ...args: any[]) {\n\t\tconst name = String(propertyKey);\n\t\tconst fn = () => original.apply(this, args);\n\n\t\tconst runOnce = async () => {\n\t\t\tif (bulkhead) {\n\t\t\t\tconst bh = svc.getOrCreateBulkhead(name, bulkhead);\n\t\t\t\treturn bh.execute(fn);\n\t\t\t}\n\t\t\treturn fn();\n\t\t};\n\n\t\tconst runWithCircuit = async () => {\n\t\t\tif (circuit) {\n\t\t\t\tconst cb = svc.getOrCreateCircuit(name, circuit);\n\t\t\t\treturn cb.execute(runOnce);\n\t\t\t}\n\t\t\treturn runOnce();\n\t\t};\n\n\t\tconst runWithRetry = async () => {\n\t\t\tif (retry) {\n\t\t\t\treturn svc.retry(runWithCircuit, retry);\n\t\t\t}\n\t\t\treturn runWithCircuit();\n\t\t};\n\n\t\treturn runWithRetry();\n\t};\n\n\treturn {\n\t\t...descriptor,\n\t\tvalue: wrapped,\n\t};\n}\n\n// Re-export the meta key for tests.\nexport { RESILIENCE_META };\n"
12
12
  ],
13
13
  "mappings": "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",
14
- "debugId": "05BB0D9656B5BB4364756E2164756E21",
14
+ "debugId": "56175557E445013B64756E2164756E21",
15
15
  "names": []
16
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nexusts/resilience",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Retry + Circuit Breaker + Bulkhead",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -12,15 +12,20 @@
12
12
  "import": "./dist/index.js"
13
13
  }
14
14
  },
15
- "files": ["dist", "README.md"],
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
16
19
  "scripts": {
17
20
  "build": "bun run ../../build.ts"
18
21
  },
19
- "keywords": ["nexusts", "framework", "bun"],
22
+ "keywords": [
23
+ "nexusts",
24
+ "framework",
25
+ "bun"
26
+ ],
20
27
  "license": "MIT",
21
-
22
-
23
28
  "dependencies": {
24
- "@nexusts/core": "file:../core"
29
+ "@nexusts/core": "^0.7.3"
25
30
  }
26
31
  }