fix(core): update
This commit is contained in:
parent
138d71e8c5
commit
1965bd9b47
13
readme.md
13
readme.md
@ -1,4 +1,5 @@
|
|||||||
# @git.zone/tsdoc
|
# @git.zone/tsdoc
|
||||||
|
|
||||||
An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.
|
An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
@ -62,7 +63,7 @@ const tsconfigPath = plugins.path.join(__dirname, 'tsconfig.json');
|
|||||||
const outputPath = plugins.path.join(__dirname, 'docs');
|
const outputPath = plugins.path.join(__dirname, 'docs');
|
||||||
|
|
||||||
await plugins.smartshellInstance.exec(
|
await plugins.smartshellInstance.exec(
|
||||||
`typedoc --tsconfig ${tsconfigPath} --out ${outputPath} index.ts`
|
`typedoc --tsconfig ${tsconfigPath} --out ${outputPath} index.ts`,
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -243,7 +244,7 @@ import * as plugins from './plugins';
|
|||||||
|
|
||||||
export const packageDir = plugins.path.join(
|
export const packageDir = plugins.path.join(
|
||||||
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||||
'../'
|
'../',
|
||||||
);
|
);
|
||||||
export const cwd = process.cwd();
|
export const cwd = process.cwd();
|
||||||
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
|
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
|
||||||
@ -273,7 +274,7 @@ import { AiDoc } from './classes.aidoc';
|
|||||||
export const run = async () => {
|
export const run = async () => {
|
||||||
const tsdocCli = new plugins.smartcli.Smartcli();
|
const tsdocCli = new plugins.smartcli.Smartcli();
|
||||||
|
|
||||||
tsdocCli.standardCommand().subscribe(async argvArg => {
|
tsdocCli.standardCommand().subscribe(async (argvArg) => {
|
||||||
switch (true) {
|
switch (true) {
|
||||||
case await TypeDoc.isTypeDocDir(paths.cwd):
|
case await TypeDoc.isTypeDocDir(paths.cwd):
|
||||||
tsdocCli.triggerCommand('typedoc', argvArg);
|
tsdocCli.triggerCommand('typedoc', argvArg);
|
||||||
@ -283,14 +284,14 @@ export const run = async () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
tsdocCli.addCommand('typedoc').subscribe(async argvArg => {
|
tsdocCli.addCommand('typedoc').subscribe(async (argvArg) => {
|
||||||
const typeDocInstance = new TypeDoc(paths.cwd);
|
const typeDocInstance = new TypeDoc(paths.cwd);
|
||||||
await typeDocInstance.compile({
|
await typeDocInstance.compile({
|
||||||
publicSubdir: argvArg.publicSubdir
|
publicSubdir: argvArg.publicSubdir,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
tsdocCli.addCommand('aidoc').subscribe(async argvArg => {
|
tsdocCli.addCommand('aidoc').subscribe(async (argvArg) => {
|
||||||
const aidocInstance = new AiDoc(argvArg);
|
const aidocInstance = new AiDoc(argvArg);
|
||||||
await aidocInstance.start();
|
await aidocInstance.start();
|
||||||
await aidocInstance.buildReadme(paths.cwd);
|
await aidocInstance.buildReadme(paths.cwd);
|
||||||
|
@ -8,7 +8,7 @@ let aidocs: tsdocs.AiDoc;
|
|||||||
|
|
||||||
tap.test('should create an AIdocs class', async () => {
|
tap.test('should create an AIdocs class', async () => {
|
||||||
aidocs = new tsdocs.AiDoc({
|
aidocs = new tsdocs.AiDoc({
|
||||||
'OPENAI_TOKEN': await testQenv.getEnvVarOnDemand('OPENAI_TOKEN')
|
OPENAI_TOKEN: await testQenv.getEnvVarOnDemand('OPENAI_TOKEN'),
|
||||||
});
|
});
|
||||||
expect(aidocs).toBeInstanceOf(tsdocs.AiDoc);
|
expect(aidocs).toBeInstanceOf(tsdocs.AiDoc);
|
||||||
});
|
});
|
||||||
@ -16,12 +16,11 @@ tap.test('should create an AIdocs class', async () => {
|
|||||||
tap.test('should start AIdocs', async () => {
|
tap.test('should start AIdocs', async () => {
|
||||||
await aidocs.start();
|
await aidocs.start();
|
||||||
await aidocs.buildReadme('./');
|
await aidocs.buildReadme('./');
|
||||||
})
|
});
|
||||||
|
|
||||||
tap.test('should start AIdocs', async () => {
|
tap.test('should start AIdocs', async () => {
|
||||||
await aidocs.start();
|
await aidocs.start();
|
||||||
await aidocs.buildDescription('./');
|
await aidocs.buildDescription('./');
|
||||||
})
|
});
|
||||||
|
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tsdoc',
|
name: '@git.zone/tsdoc',
|
||||||
version: '1.1.30',
|
version: '1.1.31',
|
||||||
description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.'
|
description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.'
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ Don't wrap the JSON in three ticks json!!!
|
|||||||
|
|
||||||
console.log(result.message);
|
console.log(result.message);
|
||||||
const resultObject: IDescriptionInterface = JSON.parse(
|
const resultObject: IDescriptionInterface = JSON.parse(
|
||||||
result.message.replace('```json', '').replace('```', '')
|
result.message.replace('```json', '').replace('```', ''),
|
||||||
);
|
);
|
||||||
|
|
||||||
const npmextraJson = (await projectContext.gatherFiles()).smartfilesNpmextraJSON;
|
const npmextraJson = (await projectContext.gatherFiles()).smartfilesNpmextraJSON;
|
||||||
|
@ -13,28 +13,28 @@ export class ProjectContext {
|
|||||||
public async gatherFiles() {
|
public async gatherFiles() {
|
||||||
const smartfilePackageJSON = await plugins.smartfile.SmartFile.fromFilePath(
|
const smartfilePackageJSON = await plugins.smartfile.SmartFile.fromFilePath(
|
||||||
plugins.path.join(this.projectDir, 'package.json'),
|
plugins.path.join(this.projectDir, 'package.json'),
|
||||||
this.projectDir
|
this.projectDir,
|
||||||
);
|
);
|
||||||
const smartfilesReadme = await plugins.smartfile.SmartFile.fromFilePath(
|
const smartfilesReadme = await plugins.smartfile.SmartFile.fromFilePath(
|
||||||
plugins.path.join(this.projectDir, 'readme.md'),
|
plugins.path.join(this.projectDir, 'readme.md'),
|
||||||
this.projectDir
|
this.projectDir,
|
||||||
);
|
);
|
||||||
|
|
||||||
const smartfilesReadmeHints = await plugins.smartfile.SmartFile.fromFilePath(
|
const smartfilesReadmeHints = await plugins.smartfile.SmartFile.fromFilePath(
|
||||||
plugins.path.join(this.projectDir, 'readme.hints.md'),
|
plugins.path.join(this.projectDir, 'readme.hints.md'),
|
||||||
this.projectDir
|
this.projectDir,
|
||||||
);
|
);
|
||||||
const smartfilesNpmextraJSON = await plugins.smartfile.SmartFile.fromFilePath(
|
const smartfilesNpmextraJSON = await plugins.smartfile.SmartFile.fromFilePath(
|
||||||
plugins.path.join(this.projectDir, 'npmextra.json'),
|
plugins.path.join(this.projectDir, 'npmextra.json'),
|
||||||
this.projectDir
|
this.projectDir,
|
||||||
);
|
);
|
||||||
const smartfilesMod = await plugins.smartfile.fs.fileTreeToObject(
|
const smartfilesMod = await plugins.smartfile.fs.fileTreeToObject(
|
||||||
this.projectDir,
|
this.projectDir,
|
||||||
'ts*/**/*.ts'
|
'ts*/**/*.ts',
|
||||||
);
|
);
|
||||||
const smartfilesTest = await plugins.smartfile.fs.fileTreeToObject(
|
const smartfilesTest = await plugins.smartfile.fs.fileTreeToObject(
|
||||||
this.projectDir,
|
this.projectDir,
|
||||||
'test/**/*.ts'
|
'test/**/*.ts',
|
||||||
);
|
);
|
||||||
return {
|
return {
|
||||||
smartfilePackageJSON,
|
smartfilePackageJSON,
|
||||||
@ -47,10 +47,10 @@ export class ProjectContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async convertFilesToContext(filesArg: plugins.smartfile.SmartFile[]) {
|
public async convertFilesToContext(filesArg: plugins.smartfile.SmartFile[]) {
|
||||||
console.log(`Using the following files for the documentation:`)
|
console.log(`Using the following files for the documentation:`);
|
||||||
filesArg.map(fileArg => {
|
filesArg.map((fileArg) => {
|
||||||
console.log(` -> ${fileArg.relative}`);
|
console.log(` -> ${fileArg.relative}`);
|
||||||
})
|
});
|
||||||
return filesArg
|
return filesArg
|
||||||
.map((smartfile) => {
|
.map((smartfile) => {
|
||||||
return `
|
return `
|
||||||
|
@ -3,7 +3,6 @@ import * as plugins from '../plugins.js';
|
|||||||
import { ProjectContext } from './projectcontext.js';
|
import { ProjectContext } from './projectcontext.js';
|
||||||
|
|
||||||
export class Readme {
|
export class Readme {
|
||||||
|
|
||||||
// INSTANCE
|
// INSTANCE
|
||||||
private aiDocsRef: AiDoc;
|
private aiDocsRef: AiDoc;
|
||||||
private projectDir: string;
|
private projectDir: string;
|
||||||
@ -21,8 +20,10 @@ export class Readme {
|
|||||||
const contextString = await projectContext.update();
|
const contextString = await projectContext.update();
|
||||||
|
|
||||||
// lets first check legal before introducung any cost
|
// lets first check legal before introducung any cost
|
||||||
const npmExtraJson = JSON.parse(((await projectContext.gatherFiles()).smartfilesNpmextraJSON).contents.toString());
|
const npmExtraJson = JSON.parse(
|
||||||
const legalInfo = npmExtraJson?.tsdoc?.legal
|
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString(),
|
||||||
|
);
|
||||||
|
const legalInfo = npmExtraJson?.tsdoc?.legal;
|
||||||
if (!legalInfo) {
|
if (!legalInfo) {
|
||||||
const error = new Error(`No legal information found in npmextra.json`);
|
const error = new Error(`No legal information found in npmextra.json`);
|
||||||
console.log(error);
|
console.log(error);
|
||||||
@ -68,11 +69,8 @@ The Readme should follow the following template:
|
|||||||
userMessage: contextString,
|
userMessage: contextString,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
finalReadmeString += result.message + '\n' + legalInfo;
|
finalReadmeString += result.message + '\n' + legalInfo;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
console.log(`\n======================\n`);
|
console.log(`\n======================\n`);
|
||||||
console.log(result.message);
|
console.log(result.message);
|
||||||
console.log(`\n======================\n`);
|
console.log(`\n======================\n`);
|
||||||
|
@ -85,9 +85,7 @@ export class AiDoc {
|
|||||||
return await descriptionInstance.build();
|
return await descriptionInstance.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async buildNextCommit(projectDirArg: string) {
|
public async buildNextCommit(projectDirArg: string) {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public async getProjectContext(projectDirArg: string) {
|
public async getProjectContext(projectDirArg: string) {
|
||||||
const projectContextInstance = new aiDocsClasses.ProjectContext(projectDirArg);
|
const projectContextInstance = new aiDocsClasses.ProjectContext(projectDirArg);
|
||||||
|
@ -20,15 +20,15 @@ export class TypeDoc {
|
|||||||
|
|
||||||
public async compile(options?: { publicSubdir?: string }) {
|
public async compile(options?: { publicSubdir?: string }) {
|
||||||
const data = {
|
const data = {
|
||||||
"compilerOptions": {
|
compilerOptions: {
|
||||||
"experimentalDecorators": true,
|
experimentalDecorators: true,
|
||||||
"useDefineForClassFields": false,
|
useDefineForClassFields: false,
|
||||||
"target": "ES2022",
|
target: 'ES2022',
|
||||||
"module": "NodeNext",
|
module: 'NodeNext',
|
||||||
"moduleResolution": "NodeNext",
|
moduleResolution: 'NodeNext',
|
||||||
"esModuleInterop": true,
|
esModuleInterop: true,
|
||||||
"verbatimModuleSyntax": true,
|
verbatimModuleSyntax: true,
|
||||||
"skipLibCheck": true,
|
skipLibCheck: true,
|
||||||
},
|
},
|
||||||
include: [],
|
include: [],
|
||||||
};
|
};
|
||||||
@ -51,7 +51,7 @@ export class TypeDoc {
|
|||||||
targetDir = plugins.path.join(targetDir, options.publicSubdir);
|
targetDir = plugins.path.join(targetDir, options.publicSubdir);
|
||||||
}
|
}
|
||||||
await this.smartshellInstance.exec(
|
await this.smartshellInstance.exec(
|
||||||
`typedoc --tsconfig ${paths.tsconfigFile} --out ${targetDir} ${startDirectory}/index.ts`
|
`typedoc --tsconfig ${paths.tsconfigFile} --out ${targetDir} ${startDirectory}/index.ts`,
|
||||||
);
|
);
|
||||||
plugins.smartfile.fs.remove(paths.tsconfigFile);
|
plugins.smartfile.fs.remove(paths.tsconfigFile);
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ export const run = async () => {
|
|||||||
logger.log('info', `Generating new keywords...`);
|
logger.log('info', `Generating new keywords...`);
|
||||||
logger.log('info', `This may take some time...`);
|
logger.log('info', `This may take some time...`);
|
||||||
aidocInstance.buildDescription(paths.cwd);
|
aidocInstance.buildDescription(paths.cwd);
|
||||||
})
|
});
|
||||||
|
|
||||||
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
||||||
tsdocCli.triggerCommand('typedoc', argvArg);
|
tsdocCli.triggerCommand('typedoc', argvArg);
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import * as plugins from './plugins.js';
|
import * as plugins from './plugins.js';
|
||||||
|
|
||||||
// dirs
|
// dirs
|
||||||
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
export const packageDir = plugins.path.join(
|
||||||
|
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
|
||||||
|
'../',
|
||||||
|
);
|
||||||
export const cwd = process.cwd();
|
export const cwd = process.cwd();
|
||||||
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
|
export const binDir = plugins.path.join(packageDir, './node_modules/.bin');
|
||||||
export const assetsDir = plugins.path.join(packageDir, './assets');
|
export const assetsDir = plugins.path.join(packageDir, './assets');
|
||||||
|
Loading…
Reference in New Issue
Block a user