Skip to content

Commit f8de63b

Browse files
authored
feat: generate TypeScript declarations for miniprogram-licia (#40)
1 parent 85fdb6e commit f8de63b

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

lib/build.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ async function genPackage(pkgName, files) {
6161
if (pkgName === 'miniprogram-licia') {
6262
packInfo.main = 'miniprogram_dist/index.js';
6363
packInfo.miniprogram = 'miniprogram_dist';
64+
packInfo.typings = 'miniprogram_dist/index.d.ts';
6465
await genIndex(pkgName);
6566
}
6667

@@ -125,8 +126,10 @@ async function genIndex(pkgName) {
125126
} else {
126127
const modNames = mods.miniprogram;
127128
let data = '';
129+
let tsData = '';
128130
each(modNames, name => {
129131
data += `exports.${name} = require('./${name}');\n`;
132+
tsData += `export import ${name} = require('./${name}');\n`;
130133
});
131134
await fs.writeFile(
132135
path.resolve(
@@ -135,6 +138,13 @@ async function genIndex(pkgName) {
135138
data,
136139
'utf8'
137140
);
141+
await fs.writeFile(
142+
path.resolve(
143+
`.licia/packages/miniprogram-licia/miniprogram_dist/index.d.ts`
144+
),
145+
tsData,
146+
'utf8'
147+
);
138148
}
139149
}
140150

@@ -178,22 +188,25 @@ async function genFile(file, pkgName) {
178188
);
179189
}
180190

181-
if (pkgName === 'licia' || pkgName === 'licia-es') {
191+
if (pkgName === 'licia' || pkgName === 'licia-es' || pkgName === 'miniprogram-licia') {
182192
const tsDefinition = extractTsDefinition(
183193
pkgName,
184194
data,
185195
modName,
186196
dependencies
187197
);
188198
if (tsDefinition) {
189-
await fs.writeFile(
190-
path.resolve(
191-
'./.licia/packages/' + pkgName,
192-
modName + '.d.ts'
193-
),
194-
tsDefinition,
195-
'utf-8'
199+
let tsOutputPath = path.resolve(
200+
'./.licia/packages/' + pkgName,
201+
modName + '.d.ts'
196202
);
203+
if (pkgName === 'miniprogram-licia') {
204+
tsOutputPath = path.resolve(
205+
`./.licia/packages/${pkgName}/miniprogram_dist`,
206+
modName + '.d.ts'
207+
);
208+
}
209+
await fs.writeFile(tsOutputPath, tsDefinition, 'utf-8');
197210
}
198211
}
199212

@@ -298,7 +311,7 @@ function transBabel(data) {
298311
function extractTsDefinition(pkgName, data, modName, dependencies) {
299312
let tsDefinition = extractComment(data, 'typescript');
300313
tsDefinition = tsDefinition.replace(/export declare/g, 'declare');
301-
if (pkgName === 'licia') {
314+
if (pkgName === 'licia' || pkgName === 'miniprogram-licia') {
302315
tsDefinition += '\n\nexport = ' + modName + ';';
303316
} else {
304317
tsDefinition += '\n\nexport default ' + modName + ';';
@@ -311,7 +324,7 @@ function extractTsDefinition(pkgName, data, modName, dependencies) {
311324
each(dependencies, (val, i) => {
312325
if (!contain(tsDefinition, val)) return;
313326

314-
if (pkgName === 'licia') {
327+
if (pkgName === 'licia' || pkgName === 'miniprogram-licia') {
315328
imports += 'import ' + val + " = require('./" + val + "');";
316329
} else {
317330
imports += 'import ' + val + " from './" + val + "';";

0 commit comments

Comments
 (0)