59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
var fs = require('fs');
|
||
|
|
||
|
var RELEASE_PATH = __dirname + '/../release/browser/node_datetime.js';
|
||
|
var SRC_PATH = __dirname + '/../src/';
|
||
|
var INDEX_PATH = __dirname + '/../index.js';
|
||
|
var TEMPLATE_PATH = __dirname + '/../src/browser_templates/main.tpl';
|
||
|
var DATETIME_TAG = 'var DateTime = require(\'./src/datetime\');';
|
||
|
var TIMEDNUMBER_TAG = 'var TimedNumber = require(\'./src/timednumber\');';
|
||
|
var TIMEDSTATE_TAG = 'var TimedState = require(\'./src/timedstate\');';
|
||
|
var TEMPLATE_TAG = '$(INDEX)';
|
||
|
var EXPORTS_TAG = 'module.exports = ';
|
||
|
|
||
|
// load index.js
|
||
|
var indexData = fs.readFileSync(INDEX_PATH, 'utf8');
|
||
|
|
||
|
// load datetime
|
||
|
var dateTimeData = fs.readFileSync(SRC_PATH + 'datetime.js', 'utf8');
|
||
|
// remove module.exports = DateTime;
|
||
|
dateTimeData = dateTimeData.replace(EXPORTS_TAG + 'DateTime;', '');
|
||
|
|
||
|
// load timednumber
|
||
|
var timedNumberData = fs.readFileSync(SRC_PATH + 'timednumber.js', 'utf8');
|
||
|
// remove module.exports = TimedNumber;
|
||
|
timedNumberData = timedNumberData.replace(EXPORTS_TAG + 'TimedNumber;', '');
|
||
|
|
||
|
// load datetime
|
||
|
var timedStateData = fs.readFileSync(SRC_PATH + 'timedstate.js', 'utf8');
|
||
|
// remove module.exports = TimedNumber;
|
||
|
timedStateData = timedStateData.replace(EXPORTS_TAG + 'TimedState;', '');
|
||
|
|
||
|
// add datetime, timednumber, and timedstate to indexDate
|
||
|
indexData = indexData.replace(DATETIME_TAG, dateTimeData);
|
||
|
indexData = indexData.replace(TIMEDNUMBER_TAG, timedNumberData);
|
||
|
indexData = indexData.replace(TIMEDSTATE_TAG, timedStateData);
|
||
|
|
||
|
// load template
|
||
|
var template = fs.readFileSync(TEMPLATE_PATH, 'utf8');
|
||
|
|
||
|
// add the code to the template
|
||
|
template = template.replace(TEMPLATE_TAG, indexData);
|
||
|
|
||
|
// remove all "use strict"
|
||
|
template = template.replace(/'use strict';\n/g, '');
|
||
|
|
||
|
// remove all comments with /* */
|
||
|
template = template.replace(/\/\*([\s\S]*?)\*\//g, '');
|
||
|
|
||
|
// remove all comments with //
|
||
|
template = template.replace(/\/\/(.*)$/gm, '');
|
||
|
|
||
|
// remove all line breaks and tabs
|
||
|
template = template.replace(/(\n|\t)/g, '');
|
||
|
|
||
|
// create the browser code
|
||
|
fs.writeFileSync(RELEASE_PATH, template, 'utf8');
|
||
|
|