@neo-one/server-plugin-project
Version:
NEO•ONE server plugin for project functionality.
84 lines (82 loc) • 9.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const smart_contract_codegen_1 = require("@neo-one/smart-contract-codegen");
const fs = tslib_1.__importStar(require("fs-extra"));
const utils_1 = require("../utils");
const writeFile_1 = require("./writeFile");
exports.generateCommonCode = async (project, projectID, contracts, localDevNetworkName, wallets, networks, httpServerPort, sourceMapsIn, browser) => {
const contractsPaths = contracts.map(({ name, filePath, sourceMap, addresses }) => (Object.assign({}, utils_1.getContractPaths(project, { name, filePath }), { sourceMap,
name,
addresses, contractPath: filePath })));
const { sourceMapsPath, testPath, commonTypesPath, reactPath, angularPath, vuePath, clientPath, generatedPath, projectIDPath, } = utils_1.getCommonPaths(project);
const { sourceMaps, test, commonTypes, react, angular, vue, client, generated, projectID: projectIDFile, } = smart_contract_codegen_1.genCommonFiles({
contractsPaths,
testPath,
commonTypesPath,
reactPath,
angularPath,
vuePath,
clientPath,
generatedPath,
localDevNetworkName,
wallets,
networks,
httpServerPort,
projectID,
projectIDPath,
sourceMapsPath,
sourceMaps: sourceMapsIn,
framework: project.codegen.framework,
browser,
});
await fs.ensureDir(project.paths.generated);
await Promise.all([
{
path: sourceMapsPath,
data: sourceMaps,
},
{
path: testPath,
data: test,
},
{
path: reactPath,
data: project.codegen.framework === 'react' ? react : undefined,
},
{
path: angularPath,
data: project.codegen.framework === 'angular' ? angular : undefined,
},
{
path: vuePath,
data: project.codegen.framework === 'vue' ? vue : undefined,
},
{
path: clientPath,
data: client,
},
{
path: generatedPath,
data: generated,
},
{
path: projectIDPath,
data: projectIDFile,
},
{
path: commonTypesPath,
data: project.codegen.language === 'typescript' ? commonTypes : undefined,
},
].map(async ({ path, data }) => {
if (data !== undefined) {
if (project.codegen.language === 'javascript') {
await writeFile_1.writeFile(path, data.js);
}
else {
await writeFile_1.writeFile(utils_1.getTSPath(path), data.ts);
}
}
}));
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUssWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDMUU7S0FDRixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtRQUM3QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxZQUFZLEVBQUU7Z0JBQzdDLE1BQU0scUJBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ2hDO2lCQUFNO2dCQUNMLE1BQU0scUJBQVMsQ0FBQyxpQkFBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMzQztTQUNGO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImZpbGUiOiJuZW8tb25lLXNlcnZlci1wbHVnaW4tcHJvamVjdC9zcmMvYnVpbGQvZ2VuZXJhdGVDb21tb25Db2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU291cmNlTWFwcyB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgZ2VuQ29tbW9uRmlsZXMsIE5ldHdvcmtEZWZpbml0aW9uLCBXYWxsZXQgfSBmcm9tICdAbmVvLW9uZS9zbWFydC1jb250cmFjdC1jb2RlZ2VuJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IFByb2plY3RDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRDb21tb25QYXRocywgZ2V0Q29udHJhY3RQYXRocywgZ2V0VFNQYXRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQ29udHJhY3RSZXN1bHQgfSBmcm9tICcuL2NvbXBpbGVDb250cmFjdCc7XG5pbXBvcnQgeyB3cml0ZUZpbGUgfSBmcm9tICcuL3dyaXRlRmlsZSc7XG5cbmV4cG9ydCB0eXBlIENvbW1vbkNvZGVDb250cmFjdCA9IENvbnRyYWN0UmVzdWx0ICYge1xuICByZWFkb25seSBhZGRyZXNzZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlQ29tbW9uQ29kZSA9IGFzeW5jIChcbiAgcHJvamVjdDogUHJvamVjdENvbmZpZyxcbiAgcHJvamVjdElEOiBzdHJpbmcsXG4gIGNvbnRyYWN0czogcmVhZG9ubHkgQ29tbW9uQ29kZUNvbnRyYWN0W10sXG4gIGxvY2FsRGV2TmV0d29ya05hbWU6IHN0cmluZyxcbiAgd2FsbGV0czogcmVhZG9ubHkgV2FsbGV0W10sXG4gIG5ldHdvcmtzOiByZWFkb25seSBOZXR3b3JrRGVmaW5pdGlvbltdLFxuICBodHRwU2VydmVyUG9ydDogbnVtYmVyLFxuICBzb3VyY2VNYXBzSW46IFNvdXJjZU1hcHMsXG4gIGJyb3dzZXI6IGJvb2xlYW4sXG4pID0+IHtcbiAgY29uc3QgY29udHJhY3RzUGF0aHMgPSBjb250cmFjdHMubWFwKCh7IG5hbWUsIGZpbGVQYXRoLCBzb3VyY2VNYXAsIGFkZHJlc3NlcyB9KSA9PiAoe1xuICAgIC4uLmdldENvbnRyYWN0UGF0aHMocHJvamVjdCwgeyBuYW1lLCBmaWxlUGF0aCB9KSxcbiAgICBzb3VyY2VNYXAsXG4gICAgbmFtZSxcbiAgICBhZGRyZXNzZXMsXG4gICAgY29udHJhY3RQYXRoOiBmaWxlUGF0aCxcbiAgfSkpO1xuICBjb25zdCB7XG4gICAgc291cmNlTWFwc1BhdGgsXG4gICAgdGVzdFBhdGgsXG4gICAgY29tbW9uVHlwZXNQYXRoLFxuICAgIHJlYWN0UGF0aCxcbiAgICBhbmd1bGFyUGF0aCxcbiAgICB2dWVQYXRoLFxuICAgIGNsaWVudFBhdGgsXG4gICAgZ2VuZXJhdGVkUGF0aCxcbiAgICBwcm9qZWN0SURQYXRoLFxuICB9ID0gZ2V0Q29tbW9uUGF0aHMocHJvamVjdCk7XG4gIGNvbnN0IHtcbiAgICBzb3VyY2VNYXBzLFxuICAgIHRlc3QsXG4gICAgY29tbW9uVHlwZXMsXG4gICAgcmVhY3QsXG4gICAgYW5ndWxhcixcbiAgICB2dWUsXG4gICAgY2xpZW50LFxuICAgIGdlbmVyYXRlZCxcbiAgICBwcm9qZWN0SUQ6IHByb2plY3RJREZpbGUsXG4gIH0gPSBnZW5Db21tb25GaWxlcyh7XG4gICAgY29udHJhY3RzUGF0aHMsXG4gICAgdGVzdFBhdGgsXG4gICAgY29tbW9uVHlwZXNQYXRoLFxuICAgIHJlYWN0UGF0aCxcbiAgICBhbmd1bGFyUGF0aCxcbiAgICB2dWVQYXRoLFxuICAgIGNsaWVudFBhdGgsXG4gICAgZ2VuZXJhdGVkUGF0aCxcbiAgICBsb2NhbERldk5ldHdvcmtOYW1lLFxuICAgIHdhbGxldHMsXG4gICAgbmV0d29ya3MsXG4gICAgaHR0cFNlcnZlclBvcnQsXG4gICAgcHJvamVjdElELFxuICAgIHByb2plY3RJRFBhdGgsXG4gICAgc291cmNlTWFwc1BhdGgsXG4gICAgc291cmNlTWFwczogc291cmNlTWFwc0luLFxuICAgIGZyYW1ld29yazogcHJvamVjdC5jb2RlZ2VuLmZyYW1ld29yayxcbiAgICBicm93c2VyLFxuICB9KTtcblxuICBhd2FpdCBmcy5lbnN1cmVEaXIocHJvamVjdC5wYXRocy5nZW5lcmF0ZWQpO1xuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHNvdXJjZU1hcHNQYXRoLFxuICAgICAgICBkYXRhOiBzb3VyY2VNYXBzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogdGVzdFBhdGgsXG4gICAgICAgIGRhdGE6IHRlc3QsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiByZWFjdFBhdGgsXG4gICAgICAgIGRhdGE6IHByb2plY3QuY29kZWdlbi5mcmFtZXdvcmsgPT09ICdyZWFjdCcgPyByZWFjdCA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IGFuZ3VsYXJQYXRoLFxuICAgICAgICBkYXRhOiBwcm9qZWN0LmNvZGVnZW4uZnJhbWV3b3JrID09PSAnYW5ndWxhcicgPyBhbmd1bGFyIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogdnVlUGF0aCxcbiAgICAgICAgZGF0YTogcHJvamVjdC5jb2RlZ2VuLmZyYW1ld29yayA9PT0gJ3Z1ZScgPyB2dWUgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBjbGllbnRQYXRoLFxuICAgICAgICBkYXRhOiBjbGllbnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBnZW5lcmF0ZWRQYXRoLFxuICAgICAgICBkYXRhOiBnZW5lcmF0ZWQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiBwcm9qZWN0SURQYXRoLFxuICAgICAgICBkYXRhOiBwcm9qZWN0SURGaWxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogY29tbW9uVHlwZXNQYXRoLFxuICAgICAgICBkYXRhOiBwcm9qZWN0LmNvZGVnZW4ubGFuZ3VhZ2UgPT09ICd0eXBlc2NyaXB0JyA/IGNvbW1vblR5cGVzIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICBdLm1hcChhc3luYyAoeyBwYXRoLCBkYXRhIH0pID0+IHtcbiAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHByb2plY3QuY29kZWdlbi5sYW5ndWFnZSA9PT0gJ2phdmFzY3JpcHQnKSB7XG4gICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGgsIGRhdGEuanMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShnZXRUU1BhdGgocGF0aCksIGRhdGEudHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSksXG4gICk7XG59O1xuIl19