luxon -> date-fns

This commit is contained in:
2021-08-26 22:50:02 +09:00
parent 54e7fd0293
commit c19b2a9ebe
7 changed files with 67 additions and 51 deletions
+2 -2
View File
@@ -2,13 +2,13 @@ import $ from 'jquery';
import Popper from 'popper.js'; import Popper from 'popper.js';
(window as unknown as { Popper: unknown }).Popper = Popper;//XXX: 왜 popper를 이렇게 불러야 하는가? (window as unknown as { Popper: unknown }).Popper = Popper;//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import { DateTime } from 'luxon';
import download from 'downloadjs'; import download from 'downloadjs';
import { unwrap } from "./util/unwrap"; import { unwrap } from "./util/unwrap";
import { isInteger } from 'lodash'; import { isInteger } from 'lodash';
import { combineArray, errUnknown, getNpcColor, isBrightColor, numberWithCommas } from './common_legacy'; import { combineArray, errUnknown, getNpcColor, isBrightColor, numberWithCommas } from './common_legacy';
import { unwrap_any } from './util/unwrap_any'; import { unwrap_any } from './util/unwrap_any';
import { BasicGeneralListResponse, InvalidResponse } from './defs'; import { BasicGeneralListResponse, InvalidResponse } from './defs';
import { formatTime } from './util/formatTime';
type CityAttackerInfo = { type CityAttackerInfo = {
level: number, level: number,
@@ -254,7 +254,7 @@ $(function ($) {
$('.btn-battle-save').on('click', function () { $('.btn-battle-save').on('click', function () {
const battleData = exportAllData(); const battleData = exportAllData();
const dateText = DateTime.now().toFormat('yyyyMMdd_HHmmss'); const dateText = formatTime(new Date(), 'yyyyMMdd_HHmmss');
const filename = `battle_${dateText}.json`; const filename = `battle_${dateText}.json`;
const saveData = JSON.stringify({ const saveData = JSON.stringify({
objType: 'battle', objType: 'battle',
+7 -5
View File
@@ -1,12 +1,14 @@
import axios from 'axios'; import axios from 'axios';
import $ from 'jquery'; import $ from 'jquery';
import { range } from 'lodash'; import { range } from 'lodash';
import { DateTime } from 'luxon'; import { addMinutes } from 'date-fns';
import { errUnknown, getNpcColor } from './common_legacy'; import { errUnknown, getNpcColor } from './common_legacy';
import { InvalidResponse } from './defs'; import { InvalidResponse } from './defs';
import { unwrap } from "./util/unwrap"; import { unwrap } from "./util/unwrap";
import { convertFormData } from './util/convertFormData'; import { convertFormData } from './util/convertFormData';
import { unwrap_any } from "./util/unwrap_any"; import { unwrap_any } from "./util/unwrap_any";
import { parseTime } from './util/parseTime';
import { formatTime } from './util/formatTime';
declare const maxChiefTurn: number; declare const maxChiefTurn: number;
@@ -132,16 +134,16 @@ async function reloadTable() {
plateObj.officerLevelText.text(chiefInfo.officerLevelText); plateObj.officerLevelText.text(chiefInfo.officerLevelText);
let turnTimeObj: DateTime|undefined; let turnTimeObj: Date|undefined;
if (chiefInfo.turnTime) { if (chiefInfo.turnTime) {
turnTimeObj = DateTime.fromSQL(chiefInfo.turnTime); turnTimeObj = parseTime(chiefInfo.turnTime);
} }
const turnList = plateObj.turn; const turnList = plateObj.turn;
$.each(chiefInfo.turn, function (turnIdx, turnText) { $.each(chiefInfo.turn, function (turnIdx, turnText) {
if (turnTimeObj) { if (turnTimeObj) {
turnList[turnIdx].turnTime.text(turnTimeObj.toFormat('HH:mm')); turnList[turnIdx].turnTime.text(formatTime(turnTimeObj, 'HH:mm'));
} }
else { else {
turnList[turnIdx].turnTime.text(''); turnList[turnIdx].turnTime.text('');
@@ -155,7 +157,7 @@ async function reloadTable() {
turnList[turnIdx].turnText.css('font-size', '{0}px'.format(newFontSize)); turnList[turnIdx].turnText.css('font-size', '{0}px'.format(newFontSize));
} }
if (turnTimeObj) { if (turnTimeObj) {
turnTimeObj = turnTimeObj.plus({'minutes': turnTerm}); turnTimeObj = addMinutes(turnTimeObj, turnTerm);
} }
}); });
+18
View File
@@ -0,0 +1,18 @@
import { format, formatISO9075 } from 'date-fns';
//const DATE_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss';
const DATE_TIME_FORMAT_WITH_FRACTION = 'yyyy-MM-dd HH:mm:ss.SSS';
export function formatTime(time: Date, withFraction?:boolean): string;
export function formatTime(time: Date, format:string): string;
export function formatTime(time: Date, withFractionOrFormat:string|boolean = false): string {
if (typeof withFractionOrFormat === "string") {
return format(time, withFractionOrFormat);
}
else if(withFractionOrFormat){
return format(time, DATE_TIME_FORMAT_WITH_FRACTION);
}
else {
return formatISO9075(time);
}
}
+2 -12
View File
@@ -1,14 +1,4 @@
import {DateTime} from 'luxon'; import { formatTime } from './formatTime';
export const DATE_TIME_FORMAT = 'yyyy-MM-dd HH:mm:ss';
export const DATE_TIME_FORMAT_WITH_FRACTION = 'yyyy-MM-dd HH:mm:ss.SSS';
export function getDateTimeNow(withFraction = false): string { export function getDateTimeNow(withFraction = false): string {
if(withFraction){ return formatTime(new Date(), withFraction);
return DateTime.now().toFormat(DATE_TIME_FORMAT_WITH_FRACTION);
}
else{
return DateTime.now().toFormat(DATE_TIME_FORMAT);
}
} }
+5
View File
@@ -0,0 +1,5 @@
import {parseISO} from 'date-fns';
export function parseTime(dateString: string): Date{
return parseISO(dateString);
}
+1 -2
View File
@@ -23,11 +23,11 @@
"axios": "^0.21.1", "axios": "^0.21.1",
"bootstrap": "^4.6.0", "bootstrap": "^4.6.0",
"core-js": "^3.16.2", "core-js": "^3.16.2",
"date-fns": "^2.23.0",
"downloadjs": "^1.4.7", "downloadjs": "^1.4.7",
"jquery": "^3.6.0", "jquery": "^3.6.0",
"js-sha512": "^0.8.0", "js-sha512": "^0.8.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"luxon": "^2.0.2",
"select2": "^4.0", "select2": "^4.0",
"vue": "^3.2.2" "vue": "^3.2.2"
}, },
@@ -39,7 +39,6 @@
"@types/bootstrap": "^4.6.1", "@types/bootstrap": "^4.6.1",
"@types/jquery": "^3.5.6", "@types/jquery": "^3.5.6",
"@types/lodash": "^4.14.172", "@types/lodash": "^4.14.172",
"@types/luxon": "^2.0.0",
"@typescript-eslint/eslint-plugin": "^4.29.2", "@typescript-eslint/eslint-plugin": "^4.29.2",
"@typescript-eslint/parser": "^4.29.2", "@typescript-eslint/parser": "^4.29.2",
"@vue/compiler-sfc": "^3.2.2", "@vue/compiler-sfc": "^3.2.2",
+5 -3
View File
@@ -4,12 +4,14 @@ import Popper from 'popper.js';
(window as unknown as { Popper: unknown }).Popper = Popper;//XXX: 왜 popper를 이렇게 불러야 하는가? (window as unknown as { Popper: unknown }).Popper = Popper;//XXX: 왜 popper를 이렇게 불러야 하는가?
import 'bootstrap'; import 'bootstrap';
import axios from 'axios'; import axios from 'axios';
import { DateTime } from "luxon"; import { subDays } from 'date-fns';
import { DATE_TIME_FORMAT, getDateTimeNow } from "../hwe/ts/util/getDateTimeNow"; import { getDateTimeNow } from "../hwe/ts/util/getDateTimeNow";
import { sha512 } from "js-sha512"; import { sha512 } from "js-sha512";
import { convertFormData } from "../hwe/ts/util/convertFormData"; import { convertFormData } from "../hwe/ts/util/convertFormData";
import { InvalidResponse } from "../hwe/ts/defs"; import { InvalidResponse } from "../hwe/ts/defs";
import { unwrap } from "../hwe/ts/util/unwrap"; import { unwrap } from "../hwe/ts/util/unwrap";
import { parseTime } from "../hwe/ts/util/parseTime";
import { formatTime } from "../hwe/ts/util/formatTime";
type ResultUserInfo = { type ResultUserInfo = {
result: true, result: true,
@@ -295,7 +297,7 @@ async function deleteMe() {
async function extendAuth() { async function extendAuth() {
const validUntil = $('#slot_token_valid_until').html(); const validUntil = $('#slot_token_valid_until').html();
const availableAt = DateTime.fromFormat(validUntil, DATE_TIME_FORMAT).minus({ days: 5 }).toFormat(DATE_TIME_FORMAT); const availableAt = formatTime(subDays(parseTime(validUntil), 5));
const now = getDateTimeNow(); const now = getDateTimeNow();
if (now < availableAt) { if (now < availableAt) {