Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
84947cfb80 | |||
1a9ac9091d | |||
88b93b8b83 | |||
77279a9135 | |||
7426addbdd | |||
58d060d729 | |||
370cbfe6f3 | |||
2adb4e8cb0 | |||
e8608b1cae | |||
33fa7fa337 |
29
changelog.md
29
changelog.md
@ -1,5 +1,34 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-02-25 - 1.4.4 - fix(dependencies)
|
||||||
|
Update dependencies to latest versions
|
||||||
|
|
||||||
|
- Updated '@push.rocks/smartai' from '^0.0.17' to '^0.4.2'
|
||||||
|
- Updated 'typedoc' from '^0.26.1' to '^0.27.9'
|
||||||
|
|
||||||
|
## 2025-01-14 - 1.4.3 - fix(aidocs_classes)
|
||||||
|
Improve readme generation instructions to ensure correct markdown formatting.
|
||||||
|
|
||||||
|
- Added guidance to avoid using backticks at the beginning and end of readme generation to prevent markdown issues.
|
||||||
|
- Clarified that the output is directly written to readme.md and backticks should only be used for code blocks.
|
||||||
|
|
||||||
|
## 2024-10-28 - 1.4.2 - fix(cli)
|
||||||
|
Ensure async completion for aidoc readme and description generation
|
||||||
|
|
||||||
|
- Added await statements for asynchronous methods buildReadme and buildDescription in the aidoc command.
|
||||||
|
|
||||||
|
## 2024-10-28 - 1.4.1 - fix(readme)
|
||||||
|
Correct async call to getModuleSubDirs in readme generation.
|
||||||
|
|
||||||
|
- Fixed an issue with asynchronous handling in readme generation for submodules.
|
||||||
|
- Ensured that getModuleSubDirs function is called with await to handle promises properly.
|
||||||
|
|
||||||
|
## 2024-10-28 - 1.4.0 - feat(aidocs)
|
||||||
|
Added support for building readmes for sub-modules in aidocs
|
||||||
|
|
||||||
|
- Updated the `Readme` class to handle monorepo projects by generating readmes for sub-modules.
|
||||||
|
- Integrated `tspublish` to identify sub-modules for readme generation.
|
||||||
|
|
||||||
## 2024-06-24 - 1.3.12 - fix(aidocs)
|
## 2024-06-24 - 1.3.12 - fix(aidocs)
|
||||||
Fix changelog generation by handling leading newlines
|
Fix changelog generation by handling leading newlines
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@git.zone/tsdoc",
|
"name": "@git.zone/tsdoc",
|
||||||
"version": "1.3.12",
|
"version": "1.4.4",
|
||||||
"private": false,
|
"private": false,
|
||||||
"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.",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@ -23,13 +23,14 @@
|
|||||||
"@git.zone/tsrun": "^1.2.46",
|
"@git.zone/tsrun": "^1.2.46",
|
||||||
"@git.zone/tstest": "^1.0.90",
|
"@git.zone/tstest": "^1.0.90",
|
||||||
"@push.rocks/tapbundle": "^5.0.23",
|
"@push.rocks/tapbundle": "^5.0.23",
|
||||||
"@types/node": "^20.14.8"
|
"@types/node": "^22.8.1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@git.zone/tspublish": "^1.5.5",
|
||||||
"@push.rocks/early": "^4.0.3",
|
"@push.rocks/early": "^4.0.3",
|
||||||
"@push.rocks/npmextra": "^5.0.23",
|
"@push.rocks/npmextra": "^5.0.23",
|
||||||
"@push.rocks/qenv": "^6.0.5",
|
"@push.rocks/qenv": "^6.0.5",
|
||||||
"@push.rocks/smartai": "^0.0.17",
|
"@push.rocks/smartai": "^0.4.2",
|
||||||
"@push.rocks/smartcli": "^4.0.11",
|
"@push.rocks/smartcli": "^4.0.11",
|
||||||
"@push.rocks/smartdelay": "^3.0.5",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
"@push.rocks/smartfile": "^11.0.20",
|
"@push.rocks/smartfile": "^11.0.20",
|
||||||
@ -40,7 +41,7 @@
|
|||||||
"@push.rocks/smartpath": "^5.0.18",
|
"@push.rocks/smartpath": "^5.0.18",
|
||||||
"@push.rocks/smartshell": "^3.0.5",
|
"@push.rocks/smartshell": "^3.0.5",
|
||||||
"@push.rocks/smarttime": "^4.0.6",
|
"@push.rocks/smarttime": "^4.0.6",
|
||||||
"typedoc": "^0.26.1",
|
"typedoc": "^0.27.9",
|
||||||
"typescript": "^5.5.2"
|
"typescript": "^5.5.2"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
|
7348
pnpm-lock.yaml
generated
7348
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tsdoc',
|
name: '@git.zone/tsdoc',
|
||||||
version: '1.3.12',
|
version: '1.4.4',
|
||||||
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.'
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import type { AiDoc } from '../classes.aidoc.js';
|
import type { AiDoc } from '../classes.aidoc.js';
|
||||||
import * as plugins from '../plugins.js';
|
import * as plugins from '../plugins.js';
|
||||||
|
import * as paths from '../paths.js';
|
||||||
import { ProjectContext } from './projectcontext.js';
|
import { ProjectContext } from './projectcontext.js';
|
||||||
|
import { logger } from '../logging.js';
|
||||||
|
|
||||||
export class Readme {
|
export class Readme {
|
||||||
// INSTANCE
|
// INSTANCE
|
||||||
@ -21,7 +23,7 @@ export class Readme {
|
|||||||
|
|
||||||
// lets first check legal before introducung any cost
|
// lets first check legal before introducung any cost
|
||||||
const npmExtraJson = JSON.parse(
|
const npmExtraJson = JSON.parse(
|
||||||
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString(),
|
(await projectContext.gatherFiles()).smartfilesNpmextraJSON.contents.toString()
|
||||||
);
|
);
|
||||||
const legalInfo = npmExtraJson?.tsdoc?.legal;
|
const legalInfo = npmExtraJson?.tsdoc?.legal;
|
||||||
if (!legalInfo) {
|
if (!legalInfo) {
|
||||||
@ -79,6 +81,64 @@ The Readme should follow the following template:
|
|||||||
readme.contents = Buffer.from(finalReadmeString);
|
readme.contents = Buffer.from(finalReadmeString);
|
||||||
await readme.write();
|
await readme.write();
|
||||||
|
|
||||||
|
// lets care about monorepo aspects
|
||||||
|
const tsPublishInstance = new plugins.tspublish.TsPublish();
|
||||||
|
const subModules = await tsPublishInstance.getModuleSubDirs(paths.cwd);
|
||||||
|
logger.log('info', `Found ${Object.keys(subModules).length} sub modules`);
|
||||||
|
for (const subModule of Object.keys(subModules)) {
|
||||||
|
logger.log('info', `Building readme for ${subModule}`);
|
||||||
|
const subModuleContextString = await projectContext.update();
|
||||||
|
let result = await this.aiDocsRef.openaiInstance.chat({
|
||||||
|
systemMessage: `
|
||||||
|
You create markdown readmes for npm projects. You only output the markdown readme.
|
||||||
|
|
||||||
|
IMPORTANT: YOU ARE NOW CREATING THE README FOR THE FOLLOWING SUB MODULE: ${subModule} !!!!!!!!!!!
|
||||||
|
The Sub Module will be published with the following data:
|
||||||
|
${JSON.stringify(plugins.smartfile.fs.toStringSync(plugins.path.join(paths.cwd, subModule, 'tspublish.json')), null, 2)}
|
||||||
|
|
||||||
|
|
||||||
|
The Readme should follow the following template:
|
||||||
|
|
||||||
|
# Project Name
|
||||||
|
[
|
||||||
|
The name is the module name of package.json
|
||||||
|
The description is in the description field of package.json
|
||||||
|
]
|
||||||
|
|
||||||
|
## Install
|
||||||
|
[
|
||||||
|
Write a short text on how to install the project
|
||||||
|
]
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
[
|
||||||
|
Give code examples here.
|
||||||
|
Construct sensible scenarios for the user.
|
||||||
|
Make sure to show a complete set of features of the module.
|
||||||
|
Don't omit use cases.
|
||||||
|
It does not matter how much time you need.
|
||||||
|
ALWAYS USE ESM SYNTAX AND TYPESCRIPT.
|
||||||
|
DON'T CHICKEN OUT. Write at least 4000 words. More if necessary.
|
||||||
|
If there is already a readme, take the Usage section as base. Remove outdated content, and expand and improve upon the valid parts.
|
||||||
|
Super important: Check for completenes.
|
||||||
|
Don't include any licensing information. This will be added in a later step.
|
||||||
|
Avoid "in conclusions".
|
||||||
|
|
||||||
|
Good to know:
|
||||||
|
* npmextra.json contains overall module information.
|
||||||
|
* readme.hints.md provides valuable hints about module ideas.
|
||||||
|
* Your output lands directly in the readme.md file.
|
||||||
|
* Don't use \`\`\` at the beginning or the end. It'll cause problems. Only use it for codeblocks. You are directly writing markdown. No need to introduce it weirdly.
|
||||||
|
]
|
||||||
|
`,
|
||||||
|
messageHistory: [],
|
||||||
|
userMessage: subModuleContextString,
|
||||||
|
});
|
||||||
|
|
||||||
|
const subModuleReadmeString = result.message + '\n' + legalInfo;
|
||||||
|
await plugins.smartfile.memory.toFs(subModuleReadmeString, plugins.path.join(paths.cwd, subModule, 'readme.md'));
|
||||||
|
logger.log('success', `Built readme for ${subModule}`);
|
||||||
|
}
|
||||||
return result.message;
|
return result.message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,14 +28,14 @@ export const run = async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
tsdocCli.addCommand('aidoc').subscribe(async (argvArg) => {
|
tsdocCli.addCommand('aidoc').subscribe(async (argvArg) => {
|
||||||
logger.log('info', `Generating new readme...`);
|
|
||||||
logger.log('info', `This may take some time...`);
|
|
||||||
const aidocInstance = new AiDoc();
|
const aidocInstance = new AiDoc();
|
||||||
await aidocInstance.start();
|
await aidocInstance.start();
|
||||||
aidocInstance.buildReadme(paths.cwd);
|
logger.log('info', `Generating new readme...`);
|
||||||
|
logger.log('info', `This may take some time...`);
|
||||||
|
await aidocInstance.buildReadme(paths.cwd);
|
||||||
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);
|
await aidocInstance.buildDescription(paths.cwd);
|
||||||
});
|
});
|
||||||
|
|
||||||
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
||||||
|
@ -34,6 +34,11 @@ export {
|
|||||||
smarttime,
|
smarttime,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// @git.zone scope
|
||||||
|
import * as tspublish from '@git.zone/tspublish';
|
||||||
|
|
||||||
|
export { tspublish };
|
||||||
|
|
||||||
// third party scope
|
// third party scope
|
||||||
import * as typedoc from 'typedoc';
|
import * as typedoc from 'typedoc';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user