Skip to content
代码片段 群组 项目
提交 8358d7e8 编辑于 作者: Timotej Ecimovic's avatar Timotej Ecimovic
浏览文件

Increase generation encapsulation.

上级 41d040a4
No related branches found
No related tags found
无相关合并请求
......@@ -44,12 +44,11 @@ function getHandlebarsTemplate(templateDirectory = '', name = '') {
var fileName
if (templateDirectory) {
fileName = path.join(templateDirectory, name)
env.logInfo('Using ' + fileName + ' as a template')
} else {
env.logInfo('Using the test template directory for ' + name)
templateDirectory = __dirname + '/../../test/gen-template'
fileName = path.join(templateDirectory, name)
}
env.logInfo('Using ' + fileName + ' as a template')
source = fsExtra.readFileSync(fileName, 'utf8')
return handlebars.compile(source)
}
......@@ -391,8 +390,10 @@ function getGenerationProperties(filePath) {
let rawData
let actualFilePath = filePath
if (!actualFilePath || 0 === actualFilePath.length) {
actualFilePath =
__dirname + '/../../test/gen-template/generation-options.json'
actualFilePath = path.join(
__dirname,
'../../test/gen-template/generation-options.json'
)
}
env.logInfo('Reading generation properties from ' + actualFilePath)
rawData = fsExtra.readFileSync(actualFilePath)
......@@ -548,7 +549,26 @@ function getGeneratedCodeMap(generationOptions, db) {
})
}
function performGeneration(
generationOptionsFile,
db,
generationDirectory,
handlebarTemplateDirectory
) {
return getGenerationProperties(
generationOptionsFile
).then((generationOptions) =>
generateCode(
db,
generationOptions,
generationDirectory,
handlebarTemplateDirectory
)
)
}
// exports
exports.getGenerationProperties = getGenerationProperties
exports.generateCode = generateCode
exports.getGeneratedCodeMap = getGeneratedCodeMap
exports.performGeneration = performGeneration
......@@ -28,7 +28,6 @@ const windowJs = require('./window.js')
const preference = require('./preference.js')
var httpPort
var generationDirectory = env.appDirectory() + '/generation-output'
var handlebarTemplateDirectory = __dirname + '/../../test/gen-template'
var generationOptionsFile =
handlebarTemplateDirectory + '/generation-options.json'
......@@ -243,17 +242,12 @@ function generateInDir(browserWindow) {
})
.then((filePath) => {
if (filePath != null) {
generationDirectory = filePath
staticGenerator
.getGenerationProperties(generationOptionsFile)
.then((generationOptions) =>
staticGenerator.generateCode(
env.mainDatabase(),
generationOptions,
generationDirectory,
handlebarTemplateDirectory
)
)
staticGenerator.performGeneration(
generationOptionsFile,
env.mainDatabase(),
filePath,
handlebarTemplateDirectory
)
dialog.showMessageBox(browserWindow, {
title: 'Generation',
message: `Generation Output: ${filePath}`,
......@@ -271,17 +265,12 @@ function generateInDir(browserWindow) {
* @param {*} generationDir
*/
function generateCodeViaCli(generationDir) {
generationDirectory = generationDir
return staticGenerator
.getGenerationProperties(generationOptionsFile)
.then((generationOptions) =>
staticGenerator.generateCode(
env.mainDatabase(),
generationOptions,
generationDirectory,
handlebarTemplateDirectory
)
)
return staticGenerator.performGeneration(
generationOptionsFile,
env.mainDatabase(),
generationDir,
handlebarTemplateDirectory
)
}
/**
......
......@@ -77,7 +77,7 @@ function registerGenerationApi(db, app) {
// }
app.get(restApi.uri.generate, (request, response) => {
staticGenerator.getGenerationProperties('').then((generationOptions) => {
getGeneratedCodeMap(generationOptions, db).then((map) => {
staticGenerator.getGeneratedCodeMap(generationOptions, db).then((map) => {
// making sure all generation promises are resolved before handling the get request
Promise.all(Object.values(map)).then((values) => {
let merged = Object.keys(map).reduce(
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册