tc-source-content-updater
Version:
Module that updates source content for the desktop application translationCore.
49 lines (40 loc) • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.generateBibleManifest = generateBibleManifest;
var _fsExtra = require('fs-extra');
var _fsExtra2 = _interopRequireDefault(_fsExtra);
var _pathExtra = require('path-extra');
var _pathExtra2 = _interopRequireDefault(_pathExtra);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* generate manifest.json
* @param {Object} oldManifest - old manifest data
* @param {String} RESOURCE_OUTPUT_PATH - folder to store manifest.json
* @param {Object} resource
* @return {Object} new manifest data
*/
/* eslint-disable camelcase */
function generateBibleManifest(oldManifest, RESOURCE_OUTPUT_PATH, resource) {
const newManifest = {};
newManifest.dublin_core = oldManifest.dublin_core; // preserve original manifest data
newManifest.checking = oldManifest.checking;
newManifest.projects = oldManifest.projects;
newManifest.original_manifest = oldManifest;
// copy some data for more convenient access
newManifest.language_id = oldManifest.dublin_core.language.identifier;
newManifest.language_name = oldManifest.dublin_core.language.title;
newManifest.direction = oldManifest.dublin_core.language.direction;
newManifest.subject = oldManifest.dublin_core.subject;
newManifest.resource_id = oldManifest.dublin_core.identifier;
newManifest.resource_title = oldManifest.dublin_core.title;
const remoteModifiedTime = resource && resource.remoteModifiedTime || new Date().toJSON();
newManifest.remoteModifiedTime = remoteModifiedTime;
const oldMainfestIdentifier = oldManifest.dublin_core.identifier.toLowerCase();
const identifiers = ['ugnt', 'ubh'];
newManifest.description = identifiers.includes(oldMainfestIdentifier) ? 'Original Language' : 'Gateway Language';
const savePath = _pathExtra2.default.join(RESOURCE_OUTPUT_PATH, 'manifest.json');
_fsExtra2.default.writeFileSync(savePath, JSON.stringify(newManifest, null, 2));
return newManifest;
}