65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
"use strict";
|
|
|
|
const fs = require("fs");
|
|
const _resolve = require("path").resolve;
|
|
|
|
function repeat(chr, length) {
|
|
let result = chr;
|
|
while (result.length < length) { result += chr; }
|
|
return result;
|
|
}
|
|
|
|
function zpad(value) {
|
|
value = String(value);
|
|
while (value.length < 2) { value = "0" + value; }
|
|
return value;
|
|
}
|
|
|
|
function getDate(date) {
|
|
return [
|
|
date.getFullYear(),
|
|
zpad(date.getMonth() + 1),
|
|
zpad(date.getDate())
|
|
].join("-");
|
|
}
|
|
|
|
function getDateTime(date) {
|
|
return getDate(date) + " " + [
|
|
zpad(date.getHours()) ,
|
|
zpad(date.getMinutes() + 1)
|
|
].join(":");
|
|
}
|
|
|
|
function today() {
|
|
return getDate(new Date());
|
|
}
|
|
|
|
function loadJson(filename) {
|
|
return JSON.parse(fs.readFileSync(filename).toString());
|
|
}
|
|
|
|
// @TODO: atomic write
|
|
function saveJson(filename, json) {
|
|
fs.writeFileSync(filename, JSON.stringify(json, null, 2) + "\n");
|
|
}
|
|
|
|
function resolve(...args) {
|
|
args = args.slice();
|
|
args.unshift("..");
|
|
args.unshift(__dirname);
|
|
return _resolve.apply(null, args);
|
|
}
|
|
|
|
module.exports = {
|
|
resolve: resolve,
|
|
|
|
loadJson: loadJson,
|
|
saveJson: saveJson,
|
|
|
|
repeat: repeat,
|
|
|
|
today: today,
|
|
getDate: getDate,
|
|
getDateTime: getDateTime
|
|
}
|