@fern-api/fdr-sdk 1.2.56-d742990ae1 → 1.2.57-4cf0b0d54d
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/api-definition/snippets/backfill.d.ts.map +1 -1
- package/dist/api-definition/snippets/backfill.js +37 -20
- package/dist/api-definition/snippets/backfill.js.map +1 -1
- package/dist/js/api-definition/snippets/server.js +27 -25
- package/dist/js/api-definition/snippets/server.js.map +1 -1
- package/dist/js/api-definition/snippets/server.mjs +27 -25
- package/dist/js/api-definition/snippets/server.mjs.map +1 -1
- package/dist/js/navigation/ledger-root-builder.js +18 -4
- package/dist/js/navigation/ledger-root-builder.js.map +1 -1
- package/dist/js/navigation/ledger-root-builder.mjs +18 -4
- package/dist/js/navigation/ledger-root-builder.mjs.map +1 -1
- package/dist/navigation/__test__/ledger-root-builder.rootChildOrder.test.js +7 -5
- package/dist/navigation/__test__/ledger-root-builder.rootChildOrder.test.js.map +1 -1
- package/dist/navigation/ledger-root-builder.d.ts.map +1 -1
- package/dist/navigation/ledger-root-builder.js +44 -14
- package/dist/navigation/ledger-root-builder.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/api-definition/snippets/backfill.d.ts.map +1 -1
- package/dist/types/navigation/ledger-root-builder.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGrD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,aAA4B,EAC5B,SAA2C,EAC3C,KAA6B;IAE7B,
|
|
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
|
-
|
|
43753
|
-
|
|
43754
|
-
|
|
43755
|
-
|
|
43756
|
-
|
|
43757
|
-
|
|
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 };
|