@forsakringskassan/docs-generator 2.20.0 → 2.21.1
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.d.ts +5 -2
- package/dist/index.js +71 -32
- package/dist/index.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +1 -1
- package/templates/base.template.html +4 -0
package/dist/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare interface CompileOptions {
|
|
|
19
19
|
*
|
|
20
20
|
* - `head` - the asset is injected in `<head>`
|
|
21
21
|
* - `body` - the asset is injected in `<body>`
|
|
22
|
-
* - `none` (default) - the asset is not injected
|
|
22
|
+
* - `none` (default) - the asset is not injected (but is available in importmap)
|
|
23
23
|
*/
|
|
24
24
|
appendTo: "none" | "head" | "body";
|
|
25
25
|
/**
|
|
@@ -222,6 +222,7 @@ declare class Generator_2 {
|
|
|
222
222
|
private markdownOptions;
|
|
223
223
|
constructor(options: GeneratorOptions);
|
|
224
224
|
compileScript(name: string, src: string | URL, options?: Partial<CompileOptions>, buildOptions?: {
|
|
225
|
+
format?: "iife" | "cjs" | "esm";
|
|
225
226
|
define?: Record<string, string>;
|
|
226
227
|
}): void;
|
|
227
228
|
compileStyle(name: string, src: string | URL, options?: Partial<CompileOptions>): void;
|
|
@@ -510,8 +511,9 @@ export declare interface ProcessorContext {
|
|
|
510
511
|
/* Excluded from this release type: hasTemplate */
|
|
511
512
|
setTopNavigation(root: NavigationSection): void;
|
|
512
513
|
setSideNavigation(root: NavigationSection): void;
|
|
513
|
-
getAllTemplateData(): Record<string, unknown>;
|
|
514
|
+
getAllTemplateData(): TemplateData & Record<string, unknown>;
|
|
514
515
|
getTemplateData<K extends keyof TemplateData>(key: K): TemplateData[K] | undefined;
|
|
516
|
+
getTemplateData<K extends keyof TemplateData>(key: K, defaultValue: TemplateData[K]): TemplateData[K];
|
|
515
517
|
getTemplateData(key: string): unknown;
|
|
516
518
|
setTemplateData<K extends keyof TemplateData>(key: string, value: TemplateData[K]): void;
|
|
517
519
|
setTemplateData(key: string, value: unknown): void;
|
|
@@ -564,6 +566,7 @@ export declare interface ProcessorRuntime {
|
|
|
564
566
|
name?: string;
|
|
565
567
|
/** Build options (passed to compileScript) */
|
|
566
568
|
buildOptions?: {
|
|
569
|
+
format?: "iife" | "cjs" | "esm";
|
|
567
570
|
define?: Record<string, string>;
|
|
568
571
|
};
|
|
569
572
|
}
|
package/dist/index.js
CHANGED
|
@@ -1595,6 +1595,7 @@ async function compileStyle(assetFolder, name, src, options) {
|
|
|
1595
1595
|
filename,
|
|
1596
1596
|
publicPath: `./assets/${filename}`,
|
|
1597
1597
|
integrity,
|
|
1598
|
+
format: "stylesheet",
|
|
1598
1599
|
size: stat.size,
|
|
1599
1600
|
type: "css"
|
|
1600
1601
|
};
|
|
@@ -1616,9 +1617,9 @@ function cssAssetProcessor(assetFolder, assets, options) {
|
|
|
1616
1617
|
name: "css-asset-processor",
|
|
1617
1618
|
after: "assets",
|
|
1618
1619
|
async handler(context) {
|
|
1619
|
-
const assetInfo = context.getTemplateData("assets"
|
|
1620
|
-
const head = context.getTemplateData("injectHead"
|
|
1621
|
-
const body = context.getTemplateData("injectBody"
|
|
1620
|
+
const assetInfo = context.getTemplateData("assets", {});
|
|
1621
|
+
const head = context.getTemplateData("injectHead", []);
|
|
1622
|
+
const body = context.getTemplateData("injectBody", []);
|
|
1622
1623
|
for (const asset of toSorted$1(assets, byPriority$1)) {
|
|
1623
1624
|
const info = await compileStyle(
|
|
1624
1625
|
assetFolder,
|
|
@@ -1628,7 +1629,10 @@ function cssAssetProcessor(assetFolder, assets, options) {
|
|
|
1628
1629
|
);
|
|
1629
1630
|
const attrs = serializeAttrs(asset.options.attributes);
|
|
1630
1631
|
const inject = { ...info, attrs: Array.from(attrs).join(" ") };
|
|
1631
|
-
assetInfo[asset.name] =
|
|
1632
|
+
assetInfo[asset.name] = {
|
|
1633
|
+
...info,
|
|
1634
|
+
importmap: false
|
|
1635
|
+
};
|
|
1632
1636
|
switch (asset.options.appendTo) {
|
|
1633
1637
|
case "none":
|
|
1634
1638
|
break;
|
|
@@ -1639,11 +1643,8 @@ function cssAssetProcessor(assetFolder, assets, options) {
|
|
|
1639
1643
|
body.push(inject);
|
|
1640
1644
|
break;
|
|
1641
1645
|
}
|
|
1642
|
-
context.setTemplateData("injectHead", head);
|
|
1643
|
-
context.setTemplateData("injectBody", body);
|
|
1644
1646
|
context.log(info.filename, formatSize(info.size));
|
|
1645
1647
|
}
|
|
1646
|
-
context.setTemplateData("assets", assetInfo);
|
|
1647
1648
|
}
|
|
1648
1649
|
};
|
|
1649
1650
|
}
|
|
@@ -1652,11 +1653,16 @@ function esbuild(options) {
|
|
|
1652
1653
|
return esbuild$1.build(options);
|
|
1653
1654
|
}
|
|
1654
1655
|
|
|
1656
|
+
function toExternalVendor(vendor) {
|
|
1657
|
+
return typeof vendor === "string" ? vendor : vendor.package;
|
|
1658
|
+
}
|
|
1655
1659
|
async function compileScript(options) {
|
|
1656
1660
|
const {
|
|
1657
1661
|
assetFolder,
|
|
1658
1662
|
name,
|
|
1659
1663
|
src,
|
|
1664
|
+
assets,
|
|
1665
|
+
vendor,
|
|
1660
1666
|
buildOptions,
|
|
1661
1667
|
fs: fs$1 = fs
|
|
1662
1668
|
} = options;
|
|
@@ -1664,13 +1670,15 @@ async function compileScript(options) {
|
|
|
1664
1670
|
try {
|
|
1665
1671
|
const entryPoints = [src instanceof URL ? node_url.fileURLToPath(src) : src];
|
|
1666
1672
|
const outfile = path$1.join("temp", `asset-${name}.js`);
|
|
1673
|
+
const external = [...assets, ...vendor.map(toExternalVendor)];
|
|
1674
|
+
const format = buildOptions.format ?? "esm";
|
|
1667
1675
|
await esbuild({
|
|
1668
1676
|
entryPoints,
|
|
1669
1677
|
outfile,
|
|
1670
1678
|
bundle: true,
|
|
1671
|
-
format
|
|
1679
|
+
format,
|
|
1672
1680
|
platform: "browser",
|
|
1673
|
-
external
|
|
1681
|
+
external,
|
|
1674
1682
|
tsconfig: path$1.join(__dirname, "../tsconfig-examples.json"),
|
|
1675
1683
|
...buildOptions,
|
|
1676
1684
|
define: {
|
|
@@ -1691,6 +1699,7 @@ async function compileScript(options) {
|
|
|
1691
1699
|
filename,
|
|
1692
1700
|
publicPath: `./assets/${filename}`,
|
|
1693
1701
|
integrity,
|
|
1702
|
+
format,
|
|
1694
1703
|
size: stat.size,
|
|
1695
1704
|
type: "js"
|
|
1696
1705
|
};
|
|
@@ -1706,24 +1715,33 @@ function byPriority({ options: a }, { options: b }) {
|
|
|
1706
1715
|
function toSorted(values, comparator) {
|
|
1707
1716
|
return [...values].sort(comparator);
|
|
1708
1717
|
}
|
|
1709
|
-
function
|
|
1718
|
+
function isExternal(asset) {
|
|
1719
|
+
return asset.options.appendTo === "none";
|
|
1720
|
+
}
|
|
1721
|
+
function jsAssetProcessor(assetFolder, assets, vendor) {
|
|
1722
|
+
const externalAssets = assets.filter(isExternal).map((it) => it.name);
|
|
1710
1723
|
return {
|
|
1711
1724
|
name: "js-asset-processor",
|
|
1712
1725
|
after: "assets",
|
|
1713
1726
|
async handler(context) {
|
|
1714
|
-
const assetInfo = context.getTemplateData("assets"
|
|
1715
|
-
const head = context.getTemplateData("injectHead"
|
|
1716
|
-
const body = context.getTemplateData("injectBody"
|
|
1727
|
+
const assetInfo = context.getTemplateData("assets", {});
|
|
1728
|
+
const head = context.getTemplateData("injectHead", []);
|
|
1729
|
+
const body = context.getTemplateData("injectBody", []);
|
|
1717
1730
|
for (const asset of toSorted(assets, byPriority)) {
|
|
1718
1731
|
const info = await compileScript({
|
|
1719
1732
|
assetFolder,
|
|
1720
1733
|
name: asset.name,
|
|
1721
1734
|
src: asset.src,
|
|
1735
|
+
assets: externalAssets,
|
|
1736
|
+
vendor,
|
|
1722
1737
|
buildOptions: asset.buildOptions
|
|
1723
1738
|
});
|
|
1724
1739
|
const attrs = serializeAttrs(asset.options.attributes);
|
|
1725
1740
|
const inject = { ...info, attrs: Array.from(attrs).join(" ") };
|
|
1726
|
-
assetInfo[asset.name] =
|
|
1741
|
+
assetInfo[asset.name] = {
|
|
1742
|
+
...info,
|
|
1743
|
+
importmap: externalAssets.includes(asset.name)
|
|
1744
|
+
};
|
|
1727
1745
|
switch (asset.options.appendTo) {
|
|
1728
1746
|
case "none":
|
|
1729
1747
|
break;
|
|
@@ -1734,8 +1752,6 @@ function jsAssetProcessor(assetFolder, assets) {
|
|
|
1734
1752
|
body.push(inject);
|
|
1735
1753
|
break;
|
|
1736
1754
|
}
|
|
1737
|
-
context.setTemplateData("injectHead", head);
|
|
1738
|
-
context.setTemplateData("injectBody", body);
|
|
1739
1755
|
context.log(info.filename, formatSize(info.size));
|
|
1740
1756
|
}
|
|
1741
1757
|
}
|
|
@@ -2262,16 +2278,25 @@ async function render(doc, docs, nav, vendors, options) {
|
|
|
2262
2278
|
sidenav,
|
|
2263
2279
|
vendors,
|
|
2264
2280
|
importmap(doc2) {
|
|
2265
|
-
const
|
|
2266
|
-
|
|
2281
|
+
const assets = Object.values(templateData.assets).filter(
|
|
2282
|
+
(it) => it.importmap
|
|
2283
|
+
);
|
|
2284
|
+
const imports = Object.fromEntries([
|
|
2285
|
+
...vendors.map((it) => {
|
|
2267
2286
|
return [it.package, relative(it.publicPath, doc2)];
|
|
2287
|
+
}),
|
|
2288
|
+
...assets.map((it) => {
|
|
2289
|
+
return [it.name, relative(it.publicPath, doc2)];
|
|
2268
2290
|
})
|
|
2269
|
-
);
|
|
2270
|
-
const integrity = Object.fromEntries(
|
|
2271
|
-
vendors.map((it) => {
|
|
2291
|
+
]);
|
|
2292
|
+
const integrity = Object.fromEntries([
|
|
2293
|
+
...vendors.map((it) => {
|
|
2294
|
+
return [relative(it.publicPath, doc2), it.integrity];
|
|
2295
|
+
}),
|
|
2296
|
+
...assets.map((it) => {
|
|
2272
2297
|
return [relative(it.publicPath, doc2), it.integrity];
|
|
2273
2298
|
})
|
|
2274
|
-
);
|
|
2299
|
+
]);
|
|
2275
2300
|
const importmap = { imports, integrity };
|
|
2276
2301
|
return JSON.stringify(importmap, null, 2);
|
|
2277
2302
|
}
|
|
@@ -2717,7 +2742,7 @@ function createContext(outputFolder, templateLoader) {
|
|
|
2717
2742
|
children: [],
|
|
2718
2743
|
visible: true
|
|
2719
2744
|
};
|
|
2720
|
-
const templateData =
|
|
2745
|
+
const templateData = /* @__PURE__ */ new Map();
|
|
2721
2746
|
return {
|
|
2722
2747
|
get docs() {
|
|
2723
2748
|
return docs;
|
|
@@ -2769,13 +2794,20 @@ function createContext(outputFolder, templateLoader) {
|
|
|
2769
2794
|
sidenav = root;
|
|
2770
2795
|
},
|
|
2771
2796
|
getAllTemplateData() {
|
|
2772
|
-
return templateData;
|
|
2797
|
+
return Object.fromEntries(templateData.entries());
|
|
2773
2798
|
},
|
|
2774
|
-
getTemplateData(key) {
|
|
2775
|
-
|
|
2799
|
+
getTemplateData(key, defaultValue) {
|
|
2800
|
+
if (templateData.has(key)) {
|
|
2801
|
+
return templateData.get(key);
|
|
2802
|
+
} else if (defaultValue) {
|
|
2803
|
+
templateData.set(key, defaultValue);
|
|
2804
|
+
return defaultValue;
|
|
2805
|
+
} else {
|
|
2806
|
+
return void 0;
|
|
2807
|
+
}
|
|
2776
2808
|
},
|
|
2777
2809
|
setTemplateData(key, value) {
|
|
2778
|
-
templateData
|
|
2810
|
+
templateData.set(key, value);
|
|
2779
2811
|
}
|
|
2780
2812
|
};
|
|
2781
2813
|
}
|
|
@@ -2813,10 +2845,17 @@ class Generator {
|
|
|
2813
2845
|
this.sourceFiles = [];
|
|
2814
2846
|
this.markdownOptions = options.markdown;
|
|
2815
2847
|
const bootstrapUrl = new URL("runtime-bootstrap.js", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href)));
|
|
2816
|
-
this.compileScript(
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2848
|
+
this.compileScript(
|
|
2849
|
+
"bootstrap",
|
|
2850
|
+
bootstrapUrl,
|
|
2851
|
+
{
|
|
2852
|
+
appendTo: "head",
|
|
2853
|
+
priority: 100
|
|
2854
|
+
},
|
|
2855
|
+
{
|
|
2856
|
+
format: "iife"
|
|
2857
|
+
}
|
|
2858
|
+
);
|
|
2820
2859
|
}
|
|
2821
2860
|
compileScript(name, src, options, buildOptions) {
|
|
2822
2861
|
this.scripts.push({
|
|
@@ -2896,7 +2935,7 @@ class Generator {
|
|
|
2896
2935
|
redirectProcessor(),
|
|
2897
2936
|
vendorProcessor(assetFolder, this.vendor),
|
|
2898
2937
|
cssAssetProcessor(assetFolder, this.styles, { cwd }),
|
|
2899
|
-
jsAssetProcessor(assetFolder, this.scripts),
|
|
2938
|
+
jsAssetProcessor(assetFolder, this.scripts, this.vendor),
|
|
2900
2939
|
staticResourcesProcessor(assetFolder, this.resources),
|
|
2901
2940
|
navigationProcessor(),
|
|
2902
2941
|
nunjucksProcessor({
|