1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-06-30 07:20:05 +01:00
HackMyResume/src/verbs/convert.js

62 lines
1.5 KiB
JavaScript
Raw Normal View History

2015-12-31 08:34:41 +00:00
/**
Implementation of the 'convert' verb for HackMyResume.
@module convert.js
@license MIT. See LICENSE.md for details.
*/
2016-01-01 22:30:57 +00:00
2015-12-21 07:56:02 +00:00
(function(){
2016-01-01 22:30:57 +00:00
var ResumeFactory = require('../core/resume-factory')
, chalk = require('chalk');
2015-12-21 07:56:02 +00:00
/**
Convert between FRESH and JRS formats.
*/
2016-01-02 05:15:46 +00:00
module.exports = function convert( srcs, dst, opts, logger ) {
2016-01-01 22:30:57 +00:00
// Housekeeping
2015-12-21 07:56:02 +00:00
var _log = logger || console.log;
2016-01-02 05:15:46 +00:00
if( !srcs || !srcs.length ) { throw { fluenterror: 6 }; }
2015-12-21 07:56:02 +00:00
if( !dst || !dst.length ) {
2016-01-02 05:15:46 +00:00
if( srcs.length === 1 ) { throw { fluenterror: 5 }; }
else if( srcs.length === 2 ) { dst = dst || []; dst.push( srcs.pop() ); }
2015-12-21 07:56:02 +00:00
else { throw { fluenterror: 5 }; }
}
2016-01-02 05:15:46 +00:00
if( srcs && dst && srcs.length && dst.length &&
srcs.length !== dst.length ) { throw { fluenterror: 7 }; }
2016-01-01 22:30:57 +00:00
// Load source resumes
2016-01-02 05:15:46 +00:00
srcs.forEach( function( src, idx ) {
2016-01-01 22:30:57 +00:00
2016-01-02 05:15:46 +00:00
// Load the resume
var rinfo = ResumeFactory.loadOne( src, {
log: _log, format: null, objectify: true, throw: true
});
2016-01-01 22:30:57 +00:00
2016-01-02 05:15:46 +00:00
var s = rinfo.rez
2016-01-01 22:30:57 +00:00
, srcFmt = ((s.basics && s.basics.imp) || s.imp).orgFormat === 'JRS' ?
2016-01-02 05:15:46 +00:00
'JRS' : 'FRESH'
, targetFormat = srcFmt === 'JRS' ? 'FRESH' : 'JRS';
2016-01-01 22:30:57 +00:00
// TODO: Core should not log
2016-01-02 05:15:46 +00:00
_log( chalk.green('Converting ') + chalk.green.bold(rinfo.file) +
chalk.green(' (' + srcFmt + ') to ') + chalk.green.bold(dst[0]) +
2016-01-01 22:30:57 +00:00
chalk.green(' (' + targetFormat + ').'));
2016-01-02 05:15:46 +00:00
// Save it to the destination format
2016-01-01 22:30:57 +00:00
s.saveAs( dst[idx], targetFormat );
2016-01-02 05:15:46 +00:00
2015-12-21 07:56:02 +00:00
});
2016-01-02 05:15:46 +00:00
2015-12-21 07:56:02 +00:00
};
2016-01-01 22:30:57 +00:00
2015-12-21 07:56:02 +00:00
}());