fix(core): update
This commit is contained in:
		
							
								
								
									
										73
									
								
								ts/aidocs_classes/projectcontext.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								ts/aidocs_classes/projectcontext.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
import * as plugins from '../plugins.js';
 | 
			
		||||
 | 
			
		||||
export class ProjectContext {
 | 
			
		||||
  public static async fromDir(dirArg: string) {}
 | 
			
		||||
 | 
			
		||||
  // INSTANCE
 | 
			
		||||
  public projectDir: string;
 | 
			
		||||
 | 
			
		||||
  constructor(projectDirArg: string) {
 | 
			
		||||
    this.projectDir = projectDirArg;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async gatherFiles() {
 | 
			
		||||
    const smartfilePackageJSON = await plugins.smartfile.SmartFile.fromFilePath(
 | 
			
		||||
      plugins.path.join(this.projectDir, 'package.json'),
 | 
			
		||||
      this.projectDir
 | 
			
		||||
    );
 | 
			
		||||
    const smartfilesReadme = await plugins.smartfile.SmartFile.fromFilePath(
 | 
			
		||||
      plugins.path.join(this.projectDir, 'readme.md'),
 | 
			
		||||
      this.projectDir
 | 
			
		||||
    );
 | 
			
		||||
    const smartfilesNpmextraJSON = await plugins.smartfile.SmartFile.fromFilePath(
 | 
			
		||||
      plugins.path.join(this.projectDir, 'npmextra.json'),
 | 
			
		||||
      this.projectDir
 | 
			
		||||
    );
 | 
			
		||||
    const smartfilesMod = await plugins.smartfile.fs.fileTreeToObject(
 | 
			
		||||
      this.projectDir,
 | 
			
		||||
      'ts/**/*.ts'
 | 
			
		||||
    );
 | 
			
		||||
    const smartfilesTest = await plugins.smartfile.fs.fileTreeToObject(
 | 
			
		||||
      this.projectDir,
 | 
			
		||||
      'test/**/*.ts'
 | 
			
		||||
    );
 | 
			
		||||
    return {
 | 
			
		||||
      smartfilePackageJSON,
 | 
			
		||||
      smartfilesReadme,
 | 
			
		||||
      smartfilesNpmextraJSON,
 | 
			
		||||
      smartfilesMod,
 | 
			
		||||
      smartfilesTest,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async convertFilesToContext(filesArg: plugins.smartfile.SmartFile[]) {
 | 
			
		||||
    return filesArg
 | 
			
		||||
      .map((smartfile) => {
 | 
			
		||||
        return `
 | 
			
		||||
====== START OF FILE ${smartfile.relative} ======
 | 
			
		||||
  
 | 
			
		||||
${smartfile.contents.toString()}
 | 
			
		||||
  
 | 
			
		||||
====== END OF FILE ${smartfile.relative} ======
 | 
			
		||||
        `;
 | 
			
		||||
      })
 | 
			
		||||
      .join('\n');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private async buildContext(dirArg: string) {
 | 
			
		||||
    const files = await this.gatherFiles();
 | 
			
		||||
    let context = await this.convertFilesToContext([
 | 
			
		||||
      files.smartfilePackageJSON,
 | 
			
		||||
      files.smartfilesReadme,
 | 
			
		||||
      files.smartfilesNpmextraJSON,
 | 
			
		||||
      ...files.smartfilesMod,
 | 
			
		||||
      ...files.smartfilesTest,
 | 
			
		||||
    ]);
 | 
			
		||||
    return context;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async update() {
 | 
			
		||||
    const result = await this.buildContext(this.projectDir);
 | 
			
		||||
    return result;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user