UNPKG

1.47 kBJavaScriptView Raw
1"use strict";
2
3var path = require('path');
4
5var extend = require('extend');
6var pkg = require(path.resolve(__dirname, '..' ,'package.json'));
7
8var _templateData = {};
9var _baseData;
10
11var templateDataApi = {};
12
13/**
14 * Set internal template data
15 * @param {Object} baseData Base template data object
16 */
17templateDataApi.setData = function(baseData) {
18 _baseData = baseData;
19 _templateData = extend({}, _baseData, getTemplateMetaData())
20}
21
22/**
23 * Get the template data
24 * @return {Object} Template data
25 */
26templateDataApi.getData = function() {
27 return _templateData;
28}
29
30/**
31 * Generate extra meta data using the base data
32 * @return {Object} Meta data object
33 */
34function getTemplateMetaData() {
35 return {
36 projectNameFileName: _baseData.projectName.toLowerCase().replace(/ /g,"-"),
37 projectGeneratedDate: getCurrentDateFormatted(),
38 currentVersion: pkg.version
39 }
40
41}
42/**
43 * Get the current DD/MM/YYYY formatted date
44 * @return {String} Current date
45 */
46function getCurrentDateFormatted() {
47 var date = new Date();
48 var day = padDateNumber(date.getDate());
49 var month = padDateNumber(date.getMonth() + 1);
50 var year = padDateNumber(date.getFullYear());
51
52 return [day, month, year].join('/');
53}
54
55/**
56 * Pad a date number if necessary e.g. 9 would be 09
57 * @param {Number} number The number to pad
58 * @return {Number} Padded number
59 */
60function padDateNumber(number) {
61 return number <= 9 ? '0' + number : number;
62}
63
64module.exports = templateDataApi;
\No newline at end of file