refactor(runner): rename preprocessing to runner and update directory structure
This commit is contained in:
70
libs/project_json.js
Normal file
70
libs/project_json.js
Normal file
@@ -0,0 +1,70 @@
|
||||
import path from 'path'
|
||||
import Matcher from './content_processor.js'
|
||||
import { read, exists } from './file.js'
|
||||
|
||||
export default class ProjectJson {
|
||||
#json
|
||||
#config
|
||||
#operatorName
|
||||
#operatorSourceFolder
|
||||
#operatorShareFolder
|
||||
|
||||
constructor(config, operatorName, __dirname, operatorShareFolder) {
|
||||
this.#config = config
|
||||
this.#operatorName = operatorName
|
||||
this.#operatorSourceFolder = path.join(__dirname, this.#config.folder.operator)
|
||||
this.#operatorShareFolder = operatorShareFolder
|
||||
}
|
||||
|
||||
async load() {
|
||||
// load json from file
|
||||
this.#json = JSON.parse(await read(this.#getPath()))
|
||||
this.#process()
|
||||
return this.#json
|
||||
}
|
||||
|
||||
#getPath() {
|
||||
// if exists, do not use the template
|
||||
const defaultPath = path.join(this.#operatorSourceFolder, this.#operatorName, 'project.json')
|
||||
if (exists(defaultPath)) {
|
||||
return defaultPath
|
||||
} else {
|
||||
return path.join(this.#operatorShareFolder, 'project.json')
|
||||
}
|
||||
}
|
||||
|
||||
#process() {
|
||||
const matcher = new Matcher(this.#json.description, '${', '}', this.#config.operators[this.#operatorName])
|
||||
if (matcher.match() !== null) {
|
||||
this.#json.description = matcher.process()
|
||||
}
|
||||
this.#json = {
|
||||
...this.#json,
|
||||
description: this.#json.description,
|
||||
title: this.#config.operators[this.#operatorName].title,
|
||||
general: {
|
||||
...this.#json.general,
|
||||
properties: {
|
||||
...this.#json.general.properties,
|
||||
paddingbottom: {
|
||||
...this.#json.general.properties.paddingbottom,
|
||||
value: this.#config.operators[this.#operatorName].viewport_bottom
|
||||
},
|
||||
paddingleft: {
|
||||
...this.#json.general.properties.paddingleft,
|
||||
value: this.#config.operators[this.#operatorName].viewport_left
|
||||
},
|
||||
paddingright: {
|
||||
...this.#json.general.properties.paddingright,
|
||||
value: this.#config.operators[this.#operatorName].viewport_right
|
||||
},
|
||||
paddingtop: {
|
||||
...this.#json.general.properties.paddingtop,
|
||||
value: this.#config.operators[this.#operatorName].viewport_top
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user