PageSourceSearch

https://dtsx.netlify.app/assets/config.md.DxIAObCF.js

js dtsx.netlify.app collected 2026-10-03 10:40:45 UTC 38,644 bytes, 155 lines download raw bytes

1import{_ as i,i as a,o as n,ak as t}from"./chunks/framework.Da91f1N-.js";const c=JSON.parse('{"title":"Configuration","description":"","frontmatter":{},"headers":[],"relativePath":"config.md","filePath":"config.md"}'),e={name:"config.md"};function l(p,s,h,k,r,d){return n(),a("div",null,s[0]||(s[0]=[t(`<h1 id="configuration" tabindex="-1">Configuration <a class="header-anchor" href="#configuration" aria-label="Permalink to &quot;Configuration&quot;">​</a></h1><p><code>dtsx</code> can be configured with the following options:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// dts.config.ts (or dts.config.js)</span></span>
2<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { DtsGenerationConfig } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;@stacksjs/dtsx&#39;</span></span>
3<span class="line"></span>
4<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> config</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> DtsGenerationConfig</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
5<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
6<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * The current working directory for the operation.</span></span>
7<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> process.cwd()</span></span>
8<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {string}</span></span>
9<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
10<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * cwd: &#39;./&#39;</span></span>
11<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
12<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  cwd: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
13<span class="line"></span>
14<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
15<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * The root directory of the source files.</span></span>
16<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">./src</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span></span>
17<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {string}</span></span>
18<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
19<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * root: &#39;./src&#39;</span></span>
20<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
21<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  root: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./src&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
22<span class="line"></span>
23<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
24<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * The entry points for generating the declaration files.</span></span>
25<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Supports glob patterns for flexible selection.</span></span>
26<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> [&#39;</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">**/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">*.ts</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span><span style="--shiki-light:#B31D28;--shiki-light-font-style:italic;--shiki-dark:#FDAEB7;--shiki-dark-font-style:italic;">]</span></span>
27<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">   * @type {string[]}</span></span>
28<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">   * @example</span></span>
29<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">   * entrypoints: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;**/*.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
30<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">   */</span></span>
31<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  entrypoints: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;**/*.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">],</span></span>
32<span class="line"></span>
33<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
34<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * The output directory for the generated declaration files.</span></span>
35<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">./dist</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span></span>
36<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {string}</span></span>
37<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
38<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * outdir: &#39;./dist&#39;</span></span>
39<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
40<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  outdir: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./dist&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
41<span class="line"></span>
42<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
43<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Whether to preserve comments in the generated files.</span></span>
44<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> true</span></span>
45<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {boolean}</span></span>
46<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
47<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * keepComments: true</span></span>
48<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
49<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  keepComments: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
50<span class="line"></span>
51<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
52<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Whether to clean the output directory before generating new files.</span></span>
53<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> true</span></span>
54<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {boolean}</span></span>
55<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
56<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * clean: true</span></span>
57<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
58<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  clean: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
59<span class="line"></span>
60<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
61<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Path to the TypeScript configuration file.</span></span>
62<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">./tsconfig.json</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span></span>
63<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {string}</span></span>
64<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
65<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * tsconfigPath: &#39;./tsconfig.json&#39;</span></span>
66<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
67<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  tsconfigPath: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./tsconfig.json&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
68<span class="line"></span>
69<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
70<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Output structure: &#39;mirror&#39; to mirror source folder structure, &#39;flat&#39; for flat output.</span></span>
71<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">mirror</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;</span></span>
72<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {&#39;mirror&#39; | &#39;flat&#39;}</span></span>
73<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
74<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * outputStructure: &#39;mirror&#39;</span></span>
75<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
76<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  outputStructure: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;mirror&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
77<span class="line"></span>
78<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">  /**</span></span>
79<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Whether to print detailed logs to the console.</span></span>
80<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * Can be a boolean or array of specific log types.</span></span>
81<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">
81 false</span></span>
82<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@type</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> {boolean | string[]}</span></span>
83<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">@example</span></span>
84<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * verbose: true</span></span>
85<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   *</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"> // or</span></span>
86<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   * verbose: [&#39;generation&#39;, &#39;processing&#39;]</span></span>
87<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">   */</span></span>
88<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  verbose: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
89<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
90<span class="line"></span>
91<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> config</span></span></code></pre></div><h2 id="configuration-file" tabindex="-1">Configuration File <a class="header-anchor" href="#configuration-file" aria-label="Permalink to &quot;Configuration File&quot;">​</a></h2><p>The configuration can be provided in several ways:</p><h3 id="_1-configuration-file" tabindex="-1">1. Configuration File <a class="header-anchor" href="#_1-configuration-file" aria-label="Permalink to &quot;1. Configuration File&quot;">​</a></h3><p>Create a <code>dts.config.ts</code> (or <code>dts.config.js</code>) file in your project root:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// dts.config.ts</span></span>
92<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> type</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { DtsGenerationConfig } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;@stacksjs/dtsx&#39;</span></span>
93<span class="line"></span>
94<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> config</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> DtsGenerationConfig</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> {</span></span>
95<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  root: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./lib&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
96<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  outdir: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./types&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
97<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  keepComments: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
98<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  clean: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
99<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  outputStructure: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;flat&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
100<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span>
101<span class="line"></span>
102<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">export</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> config</span></span></code></pre></div><h3 id="_2-programmatic-configuration" tabindex="-1">2. Programmatic Configuration <a class="header-anchor" href="#_2-programmatic-configuration" aria-label="Permalink to &quot;2. Programmatic Configuration&quot;">​</a></h3><p>Pass options directly to the <code>generate</code> function:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span>
102<pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { generate } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;@stacksjs/dtsx&#39;</span></span>
103<span class="line"></span>
104<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">await</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> generate</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
105<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  root: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./src&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
106<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  outdir: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;./dist&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
107<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  keepComments: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
108<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  verbose: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
109<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><h3 id="_3-cli-options" tabindex="-1">3. CLI Options <a class="header-anchor" href="#_3-cli-options" aria-label="Permalink to &quot;3. CLI Options&quot;">​</a></h3><p>Use command-line flags to override configuration:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">dtsx</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> generate</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --root</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./lib</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --outdir</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ./types</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --keep-comments</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --verbose</span></span></code></pre></div><h2 id="configuration-options" tabindex="-1">Configuration Options <a class="header-anchor" href="#configuration-options" aria-label="Permalink to &quot;Configuration Options&quot;">​</a></h2><h3 id="core-options" tabindex="-1">Core Options <a class="header-anchor" href="#core-options" aria-label="Permalink to &quot;Core Options&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>cwd</code></td><td><code>string</code></td><td><code>process.cwd()</code></td><td>Current working directory</td></tr><tr><td><code>root</code></td><td><code>string</code></td><td><code>&#39;./src&#39;</code></td><td>Source root directory</td></tr><tr><td><code>entrypoints</code></td><td><code>string[]</code></td><td><code>[&#39;**/*.ts&#39;]</code></td><td>Entry point patterns</td></tr><tr><td><code>outdir</code></td><td><code>string</code></td><td><code>&#39;./dist&#39;</code></td><td>Output directory</td></tr></tbody></table><h3 id="generation-options" tabindex="-1">Generation Options <a class="header-anchor" href="#generation-options" aria-label="Permalink to &quot;Generation Options&quot;">​</a></h3><table tabindex="0"><thead><tr><th>
109Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>keepComments</code></td><td><code>boolean</code></td><td><code>true</code></td><td>Preserve comments in output</td></tr><tr><td><code>clean</code></td><td><code>boolean</code></td><td><code>true</code></td><td>Clean output directory before generation</td></tr><tr><td><code>outputStructure</code></td><td><code>&#39;mirror&#39; | &#39;flat&#39;</code></td><td><code>&#39;mirror&#39;</code></td><td>Output directory structure</td></tr></tbody></table><h3 id="build-options" tabindex="-1">Build Options <a class="header-anchor" href="#build-options" aria-label="Permalink to &quot;Build Options&quot;">​</a></h3><table tabindex="0"><thead><tr><th>Option</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><code>tsconfigPath</code></td><td><code>string</code></td><td><code>&#39;./tsconfig.json&#39;</code></td><td>Path to TypeScript config</td></tr><tr><td><code>verbose</code></td><td><code>boolean | string[]</code></td><td><code>false</code></td><td>Enable verbose logging</td></tr></tbody></table><h2 id="advanced-configuration" tabindex="-1">Advanced Configuration <a class="header-anchor" href="#advanced-configuration" aria-label="Permalink to &quot;Advanced Configuration&quot;">​</a></h2><h3 id="entry-points" tabindex="-1">Entry Points <a class="header-anchor" href="#entry-points" aria-label="Permalink to &quot;Entry Points&quot;">​</a></h3><p>Entry points support glob patterns and can be customized for different project structures:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Single entry point</span></span>
110<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entrypoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;src/index.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
111<span class="line"></span>
112<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Multiple specific files</span></span>
113<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entrypoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;src/index.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;src/types.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;src/utils.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
114<span class="line"></span>
115<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Glob patterns</span></span>
116<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entrypoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;src/**/*.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;!src/**/*.test.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span>
117<span class="line"></span>
118<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Complex patterns</span></span>
119<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">entrypoints</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span></span>
120<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">  &#39;src/components/**/*.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
121<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">  &#39;src/utils/**/*.ts&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
122<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">  &#39;src/types.ts&#39;</span></span>
123<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span></code></pre></div><h3 id="output-structure" tabindex="-1">Output Structure <a class="header-anchor" href="#output-structure" aria-label="Permalink to &quot;Output Structure&quot;">​</a></h3><p>Choose between mirroring source structure or flat output:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span>
123<pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Mirror source structure (default)</span></span>
124<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">outputStructure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;mirror&#39;</span></span>
125<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// src/components/Button.ts → dist/components/Button.d.ts</span></span>
126<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// src/utils/helpers.ts → dist/utils/helpers.d.ts</span></span>
127<span class="line"></span>
128<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Flat structure</span></span>
129<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">outputStructure</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;flat&#39;</span></span>
130<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// src/components/Button.ts → dist/Button.d.ts</span></span>
131<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// src/utils/helpers.ts → dist/helpers.d.ts</span></span></code></pre></div><h3 id="verbose-logging" tabindex="-1">Verbose Logging <a class="header-anchor" href="#verbose-logging" aria-label="Permalink to &quot;Verbose Logging&quot;">​</a></h3><p>Control logging output with granular options:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Enable all verbose logging</span></span>
132<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">verbose</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
133<span class="line"></span>
134<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Disable verbose logging</span></span>
135<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">verbose</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span></span>
136<span class="line"></span>
137<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Specific log types (future feature)</span></span>
138<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">verbose</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: [</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;generation&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;processing&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;imports&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">]</span></span></code></pre></div><h3 id="comment-preservation" tabindex="-1">Comment Preservation <a class="header-anchor" href="#comment-preservation" aria-label="Permalink to &quot;Comment Preservation&quot;">​</a></h3><p>Control how comments are handled in the generated declarations:</p><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Preserve all comments (default)</span></span>
139<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">keepComments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span></span>
140<span class="line"></span>
141<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">
141// Remove comments for smaller output</span></span>
142<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">keepComments</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">false</span></span></code></pre></div><p>When <code>keepComments</code> is enabled, the following comment types are preserved:</p><ul><li>JSDoc comments (<code>/** ... */</code>)</li><li>Block comments (<code>/* ... */</code>)</li><li>Single-line comments (<code>//</code>)</li><li>Documentation tags (<code>@param</code>, <code>@returns</code>, <code>@example</code>, etc.)</li></ul><h2 id="environment-variables" tabindex="-1">Environment Variables <a class="header-anchor" href="#environment-variables" aria-label="Permalink to &quot;Environment Variables&quot;">​</a></h2><p>Some options can be controlled via environment variables:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Set verbose logging</span></span>
143<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DTSX_VERBOSE</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">true</span></span>
144<span class="line"></span>
145<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Set output directory</span></span>
146<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DTSX_OUTDIR</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">./types</span></span>
147<span class="line"></span>
148<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># Set root directory</span></span>
149<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DTSX_ROOT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">./lib</span></span></code></pre></div><h2 id="typescript-configuration" tabindex="-1">TypeScript Configuration <a class="header-anchor" href="#typescript-configuration" aria-label="Permalink to &quot;TypeScript Configuration&quot;">​</a></h2><p>Ensure your <code>tsconfig.json</code> has <code>isolatedDeclarations</code> enabled:</p><div class="language-json vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki shiki-themes github-light github-dark vp-code" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e;" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
150<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">  &quot;compilerOptions&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: {</span></span>
151<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">    &quot;isolatedDeclarations&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
152<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">    &quot;declaration&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
153<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">    &quot;emitDeclarationOnly&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">
153false</span></span>
154<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  }</span></span>
155<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><p>This is required for dtsx to work properly with TypeScript&#39;s isolated declarations feature.</p>`,43)]))}const g=i(e,[["render",l]]);export{c as __pageData,g as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.