in lib/generator.js [31:78]
constructor(option = {}) {
this.baseClient = option && option.baseClient;
this.typedef = option.go && option.go.typedef ? option.go.typedef : {};
this.importsTypedef = {};
const pack = option && option.package || [];
this.uselessPack = [];
Object.keys(this.typedef).forEach((def) => {
if (this.typedef[def].import && this.typedef[def].type) {
if (!pack.includes(this.typedef[def].import)) {
pack.push(this.typedef[def].import);
this.uselessPack.push(this.typedef[def].import);
}
}
});
this.goPackages = pack.map(packageName => {
if (packageName.includes(' ')) {
return ` ${packageName}`;
}
if (packageName !== 'io') {
return ` "${packageName}"`;
}
});
this.config = {
outputDir: '',
indent: ' ',
clientPath: '/client/client.go',
...option
};
this.output = '';
this.outputDir = option.outputDir;
this.__module = {};
this.exec = this.config.exec;
this.editable = this.config.editable;
this.noCompatible = this.config.noCompatible;
if (this.exec) {
this.config.clientPath = '/main/main.go';
}
if (!this.outputDir) {
throw new Error('`option.outputDir` should not empty');
}
if (!fs.existsSync(this.outputDir)) {
fs.mkdirSync(this.outputDir, {
recursive: true
});
}
}