library
UserScript用のライブラリ
スクリプト読み込み
code:loadScript.js
/**
* スクリプトの読み込み
* @param {string} id - ID
* @param {string} url - スクリプトURL
*/
export default function loadScript(id, url) {
return new Promise((resolve) => {
if (document.getElementById(id)) {
resolve();
return;
}
const elScript = document.createElement('script');
elScript.setAttribute('id', id);
elScript.setAttribute('src', url);
document.head.appendChild(elScript);
elScript.onload = () => {
resolve();
};
});
}
日付操作のutility
code:DateTool.js
export default class DateTool {
/**
* 日付をフォーマットする
* @param {Date|null} date - 日付
* @param {string} formatTemplate - フォーマットするテンプレート
* @returns {string} - フォーマットされた文字列(nullの時は空文字を返す)
*/
static format(date, formatTemplate) {
// dateがない時は空文字を返す
if (!date) {
return '';
}
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
const hours = date.getHours();
const minutes = date.getMinutes();
const seconds = date.getSeconds();
const replaceStrArray = {
YYYY: year,
Y: year,
MM: ('0' + month).slice(-2),
M: month,
DD: ('0' + day).slice(-2),
D: day,
WW: weekday,
hh: ('0' + hours).slice(-2),
h: hours,
mm: ('0' + minutes).slice(-2),
m: minutes,
ss: ('0' + seconds).slice(-2),
s: seconds,
};
const regex = new RegExp('(' + Object.keys(replaceStrArray).join('|') + ')', 'g');
return formatTemplate.replace(regex, (str) => replaceStrArraystr); }
}