62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
|
import mainTemplates from './mainTemplates'
|
||
|
import constants from './folders'
|
||
|
import cv from './controlled_vocabulary'
|
||
|
|
||
|
|
||
|
import log, {LogLevelDesc} from 'loglevel'
|
||
|
|
||
|
interface ConfigOverride {
|
||
|
iso_date_format?: string,
|
||
|
log_actions?: string,
|
||
|
log_level?: 'debug' | 'warn' | 'info',
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* configuration générale à importer dans les utilitaires
|
||
|
*/
|
||
|
class config_rangement {
|
||
|
log_level: LogLevelDesc = 'debug' // 'debug' | 'warn' |'info'
|
||
|
|
||
|
version = '1.0.0'
|
||
|
iso_date_format = 'yyyy-MM-DDTHH.mm.ss' // target format for dates in file names
|
||
|
tagSeparator = ' '
|
||
|
tagSectionSeparator = '--'
|
||
|
keepFreeText = true
|
||
|
keepTags = true
|
||
|
replaceUnderscoreWithSpaces = true
|
||
|
renameFolders = false
|
||
|
enableTestsLocally = false
|
||
|
reportStatistics = true
|
||
|
controlled_vocabulary = cv
|
||
|
constants = constants
|
||
|
base_archive_folder = constants.base_archive_folder
|
||
|
templates = mainTemplates;
|
||
|
statistics = {};
|
||
|
keepOriginalNameInRename = true;
|
||
|
log_actions = true;
|
||
|
|
||
|
/**
|
||
|
* override config if we want
|
||
|
* @param overridingConfig
|
||
|
*/
|
||
|
constructor(overridingConfig?: ConfigOverride) {
|
||
|
|
||
|
|
||
|
log.setLevel('info')
|
||
|
if (overridingConfig) {
|
||
|
log.debug('configuration is overrided')
|
||
|
let keys = Object.keys(overridingConfig)
|
||
|
let self: any = this;
|
||
|
keys.forEach((elem, index) => {
|
||
|
if (self[keys[index]]) {
|
||
|
self[keys[index]] = elem
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const rangement_instance = new config_rangement({});
|
||
|
export default rangement_instance
|