dragonbones-runtime
Version:
the tools to build dragonbones file for diffrent framework
49 lines (39 loc) • 1.48 kB
text/typescript
import utils = require('../lib/utils');
import FileUtil = require('../lib/FileUtil');
import * as EgretProject from '../project';
class CreateLib implements egret.Command {
async execute() {
const option = egret.args;
if (FileUtil.exists(option.projectDir)) {
console.log(utils.tr(1002));
return 0;
}
const moduleName = FileUtil.basename(option.projectDir);
const project = EgretProject.data;
const libraryTemplate = FileUtil.joinPath(egret.root, "tools/templates/library");
FileUtil.copy(libraryTemplate, project.getProjectRoot());
type Package_JSON = { name: string };
type TSCONFIG_JSON = {
compilerOptions: {
outFile: string;
}
};
await convert<Package_JSON>(project.getFilePath("package.json"),
(data) => {
data.name = moduleName;
return data
});
await convert<TSCONFIG_JSON>(project.getFilePath("tsconfig.json"),
(data) => {
data.compilerOptions.outFile = `bin/${moduleName}.js`;
return data;
});
}
}
async function convert<T>(filePath: string, processor: (from: T) => T) {
const data: T = await FileUtil.readJSONAsync(filePath);
const result = processor(data);
const content = JSON.stringify(result, null, "\t");
FileUtil.save(filePath, content);
}
export = CreateLib;