dtyp
Version:
DTYP / Windows Data Type library in TypeScript
19 lines (18 loc) • 892 B
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeFiletime = exports.parseFiletime = void 0;
const moment_timezone_1 = __importDefault(require("moment-timezone"));
const filetimeStartDate = moment_timezone_1.default.utc("1601-01-01");
exports.parseFiletime = (buffer) => {
const milliseconds = Number(buffer.readBigUInt64LE(0) / 10000n);
return moment_timezone_1.default(filetimeStartDate).add(milliseconds, "milliseconds").toDate();
};
exports.serializeFiletime = (date) => {
const milliseconds = moment_timezone_1.default(date).diff(filetimeStartDate, "milliseconds");
const buffer = Buffer.allocUnsafe(8);
buffer.writeBigInt64LE(BigInt(milliseconds) * 10000n, 0);
return buffer;
};