@fern-api/fdr-sdk 1.2.56-d742990ae1 → 1.2.57-5c7d3476b3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../src/api-definition/snippets/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/F;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAyCxC"}
1
+ {"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../../src/api-definition/snippets/backfill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAgB/F;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,aAAa,CAAC,CA8BxB;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,mBAAmB,CAAC,CAoC9B;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC5C,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,KAAK,EAAE,sBAAsB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAyCxC"}
@@ -1,32 +1,49 @@
1
1
  import { createSnippetGenerators } from "./generators";
2
2
  import { generateHttpSnippets, shouldIncludeHttpSnippetLanguage } from "./http-snippets";
3
3
  import { generateSdkSnippets } from "./sdk-snippets";
4
+ /**
5
+ * Snippet generation is synchronous, CPU-heavy work. Yielding to the event
6
+ * loop between units keeps long enrichment passes from starving concurrent
7
+ * I/O and requests. Yields are time-budgeted and the endpoint/example loops
8
+ * are sequential: awaiting setImmediate from many concurrently-queued tasks
9
+ * coalesces all their continuations into a single check phase (one long
10
+ * block), whereas a sequential loop guarantees a full event-loop turn per
11
+ * yield.
12
+ */
13
+ const YIELD_BUDGET_MS = 20;
14
+ const yieldToEventLoop = () => new Promise((resolve) => (typeof setImmediate === "function" ? setImmediate(resolve) : setTimeout(resolve, 0)));
4
15
  /**
5
16
  * Backfill snippets for an entire API definition.
6
17
  * This is the main entry point for snippet generation during docs loading.
7
18
  */
8
19
  export async function backfillSnippets(apiDefinition, dynamicIr, flags) {
9
- return {
10
- ...apiDefinition,
11
- endpoints: await Promise.all(Object.entries(apiDefinition.endpoints).map(async ([id, endpoint]) => {
12
- let dynamicGenerators = {};
13
- try {
14
- if (dynamicIr) {
15
- dynamicGenerators = createSnippetGenerators({ endpoint, dynamicIr });
16
- }
17
- }
18
- catch (error) {
19
- console.log("[backfill] error creating dynamic snippet generators:", error);
20
- }
21
- return [
22
- id,
23
- {
24
- ...endpoint,
25
- examples: await Promise.all(endpoint.examples?.map((example) => backfillSnippetsForExample(apiDefinition, dynamicGenerators, endpoint, example, flags)) ?? [])
26
- }
27
- ];
28
- })).then((entries) => Object.fromEntries(entries))
20
+ let lastYield = Date.now();
21
+ const maybeYield = async () => {
22
+ if (Date.now() - lastYield >= YIELD_BUDGET_MS) {
23
+ await yieldToEventLoop();
24
+ lastYield = Date.now();
25
+ }
29
26
  };
27
+ const endpoints = {};
28
+ for (const [id, endpoint] of Object.entries(apiDefinition.endpoints)) {
29
+ await maybeYield();
30
+ let dynamicGenerators = {};
31
+ try {
32
+ if (dynamicIr) {
33
+ dynamicGenerators = createSnippetGenerators({ endpoint, dynamicIr });
34
+ }
35
+ }
36
+ catch (error) {
37
+ console.log("[backfill] error creating dynamic snippet generators:", error);
38
+ }
39
+ const examples = [];
40
+ for (const example of endpoint.examples ?? []) {
41
+ await maybeYield();
42
+ examples.push(await backfillSnippetsForExample(apiDefinition, dynamicGenerators, endpoint, example, flags));
43
+ }
44
+ endpoints[id] = { ...endpoint, examples };
45
+ }
46
+ return { ...apiDefinition, endpoints };
30
47
  }
31
48
  /**
32
49
  * Backfill snippets for a single endpoint example.
@@ -1 +1 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/api-definition/snippets/backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/api-definition/snippets/backfill.ts"],"names":[],"mappings":"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"}
@@ -43748,33 +43748,35 @@ function shouldIncludeHttpSnippetLanguage(language, flags) {
43748
43748
  }
43749
43749
 
43750
43750
  // src/api-definition/snippets/backfill.ts
43751
+ var YIELD_BUDGET_MS = 20;
43752
+ var yieldToEventLoop = () => new Promise((resolve) => typeof setImmediate === "function" ? setImmediate(resolve) : setTimeout(resolve, 0));
43751
43753
  async function backfillSnippets(apiDefinition, dynamicIr, flags) {
43752
- return {
43753
- ...apiDefinition,
43754
- endpoints: await Promise.all(
43755
- Object.entries(apiDefinition.endpoints).map(async ([id2, endpoint]) => {
43756
- let dynamicGenerators = {};
43757
- try {
43758
- if (dynamicIr) {
43759
- dynamicGenerators = createSnippetGenerators({ endpoint, dynamicIr });
43760
- }
43761
- } catch (error) {
43762
- console.log("[backfill] error creating dynamic snippet generators:", error);
43763
- }
43764
- return [
43765
- id2,
43766
- {
43767
- ...endpoint,
43768
- examples: await Promise.all(
43769
- endpoint.examples?.map(
43770
- (example) => backfillSnippetsForExample(apiDefinition, dynamicGenerators, endpoint, example, flags)
43771
- ) ?? []
43772
- )
43773
- }
43774
- ];
43775
- })
43776
- ).then((entries) => Object.fromEntries(entries))
43754
+ let lastYield = Date.now();
43755
+ const maybeYield = async () => {
43756
+ if (Date.now() - lastYield >= YIELD_BUDGET_MS) {
43757
+ await yieldToEventLoop();
43758
+ lastYield = Date.now();
43759
+ }
43777
43760
  };
43761
+ const endpoints = {};
43762
+ for (const [id2, endpoint] of Object.entries(apiDefinition.endpoints)) {
43763
+ await maybeYield();
43764
+ let dynamicGenerators = {};
43765
+ try {
43766
+ if (dynamicIr) {
43767
+ dynamicGenerators = createSnippetGenerators({ endpoint, dynamicIr });
43768
+ }
43769
+ } catch (error) {
43770
+ console.log("[backfill] error creating dynamic snippet generators:", error);
43771
+ }
43772
+ const examples = [];
43773
+ for (const example of endpoint.examples ?? []) {
43774
+ await maybeYield();
43775
+ examples.push(await backfillSnippetsForExample(apiDefinition, dynamicGenerators, endpoint, example, flags));
43776
+ }
43777
+ endpoints[id2] = { ...endpoint, examples };
43778
+ }
43779
+ return { ...apiDefinition, endpoints };
43778
43780
  }
43779
43781
  async function backfillSnippetsForExample(apiDefinition, dynamicGenerators, endpoint, example, flags) {
43780
43782
  const snippets = { ...example.snippets };