fix: change format of output .d.ts files

This commit is contained in:
hyper
2026-03-31 16:12:17 +08:00
parent 525ae262fd
commit d056145462
4 changed files with 35 additions and 61 deletions
+8 -13
View File
@@ -387,19 +387,14 @@ function schemaToTypeString(schema) {
return "unknown";
}
}
function generateTypeDefinition(resourceName, propertyConfigs, relativePath) {
const interfaceName = path.basename(resourceName, path.extname(resourceName)).replace(/[^a-zA-Z0-9_$]/g, "_").replace(/^(\d)/, "_$1");
const properties = propertyConfigs.map((config) => ` ${config.name}: ${schemaToTypeString(config.schema)};`).join("\n");
return `declare module "${relativePath}" {
export interface ${interfaceName} {
function generateTypeDefinition(resourceName, propertyConfigs) {
const properties = propertyConfigs.map((config) => ` ${config.name}: ${schemaToTypeString(config.schema)};`).join("\n");
return `type Table = {
${properties}
}
}[];
export type RowType = ${interfaceName};
const data: ${interfaceName}[];
export default data;
}
declare const data: Table;
export default data;
`;
}
function csvLoader(content) {
@@ -474,9 +469,9 @@ function csvLoader(content) {
relativePath = relativePath.substring(1);
}
relativePath = relativePath.replace(/\\/g, "/");
const dtsFileName = relativePath.replace(/\.csv$/, ".d.ts");
const dtsFileName = `${relativePath}.d.ts`;
const outputPath = typesOutputDir ? path.join(typesOutputDir, dtsFileName) : dtsFileName;
const dtsContent = generateTypeDefinition(this.resourcePath, propertyConfigs, `./${relativePath}`);
const dtsContent = generateTypeDefinition(this.resourcePath, propertyConfigs);
if (writeToDisk) {
const absolutePath = path.join(this.context || process.cwd(), typesOutputDir || "", dtsFileName);
fs.mkdirSync(path.dirname(absolutePath), { recursive: true });
+8 -13
View File
@@ -353,19 +353,14 @@ function schemaToTypeString(schema) {
return "unknown";
}
}
function generateTypeDefinition(resourceName, propertyConfigs, relativePath) {
const interfaceName = path.basename(resourceName, path.extname(resourceName)).replace(/[^a-zA-Z0-9_$]/g, "_").replace(/^(\d)/, "_$1");
const properties = propertyConfigs.map((config) => ` ${config.name}: ${schemaToTypeString(config.schema)};`).join("\n");
return `declare module "${relativePath}" {
export interface ${interfaceName} {
function generateTypeDefinition(resourceName, propertyConfigs) {
const properties = propertyConfigs.map((config) => ` ${config.name}: ${schemaToTypeString(config.schema)};`).join("\n");
return `type Table = {
${properties}
}
}[];
export type RowType = ${interfaceName};
const data: ${interfaceName}[];
export default data;
}
declare const data: Table;
export default data;
`;
}
function csvLoader(content) {
@@ -440,9 +435,9 @@ function csvLoader(content) {
relativePath = relativePath.substring(1);
}
relativePath = relativePath.replace(/\\/g, "/");
const dtsFileName = relativePath.replace(/\.csv$/, ".d.ts");
const dtsFileName = `${relativePath}.d.ts`;
const outputPath = typesOutputDir ? path.join(typesOutputDir, dtsFileName) : dtsFileName;
const dtsContent = generateTypeDefinition(this.resourcePath, propertyConfigs, `./${relativePath}`);
const dtsContent = generateTypeDefinition(this.resourcePath, propertyConfigs);
if (writeToDisk) {
const absolutePath = path.join(this.context || process.cwd(), typesOutputDir || "", dtsFileName);
fs.mkdirSync(path.dirname(absolutePath), { recursive: true });