29 lines
		
	
	
		
			813 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			813 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as plugins from './plugins.js';
 | 
						|
import * as paths from './paths.js';
 | 
						|
 | 
						|
import { GitzoneConfig } from './classes.gitzoneconfig.js';
 | 
						|
import type { TGitzoneProjectType } from './classes.gitzoneconfig.js';
 | 
						|
 | 
						|
/**
 | 
						|
 * the Project class is a tool to work with a gitzone project
 | 
						|
 */
 | 
						|
export class Project {
 | 
						|
  public static async fromCwd() {
 | 
						|
    const gitzoneConfig = await GitzoneConfig.fromCwd();
 | 
						|
    const project = new Project(gitzoneConfig);
 | 
						|
    if (!project.gitzoneConfig.data.projectType) {
 | 
						|
      throw new Error('Please define a project type');
 | 
						|
    }
 | 
						|
    return project;
 | 
						|
  }
 | 
						|
 | 
						|
  public gitzoneConfig: GitzoneConfig;
 | 
						|
  public get type(): TGitzoneProjectType {
 | 
						|
    return this.gitzoneConfig.data.projectType;
 | 
						|
  }
 | 
						|
 | 
						|
  constructor(gitzoneConfigArg: GitzoneConfig) {
 | 
						|
    this.gitzoneConfig = gitzoneConfigArg;
 | 
						|
  }
 | 
						|
}
 |