Son CV dans un terminal web en Javascript!
https://terminal-cv.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.6 KiB
85 lines
1.6 KiB
2 years ago
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = _default;
|
||
|
const lengthConv = {
|
||
|
in: 96,
|
||
|
px: 1,
|
||
|
pt: 4 / 3,
|
||
|
pc: 16
|
||
|
};
|
||
|
const timeConv = {
|
||
|
s: 1000,
|
||
|
ms: 1
|
||
|
};
|
||
|
const angleConv = {
|
||
|
turn: 360,
|
||
|
deg: 1
|
||
|
};
|
||
|
|
||
|
function dropLeadingZero(number) {
|
||
|
const value = String(number);
|
||
|
|
||
|
if (number % 1) {
|
||
|
if (value[0] === '0') {
|
||
|
return value.slice(1);
|
||
|
}
|
||
|
|
||
|
if (value[0] === '-' && value[1] === '0') {
|
||
|
return '-' + value.slice(2);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
function transform(number, unit, conversion) {
|
||
|
const lowerCasedUnit = unit.toLowerCase();
|
||
|
let one, base;
|
||
|
let convertionUnits = Object.keys(conversion).filter(u => {
|
||
|
if (conversion[u] === 1) {
|
||
|
one = u;
|
||
|
}
|
||
|
|
||
|
return lowerCasedUnit !== u;
|
||
|
});
|
||
|
|
||
|
if (lowerCasedUnit === one) {
|
||
|
base = number / conversion[lowerCasedUnit];
|
||
|
} else {
|
||
|
base = number * conversion[lowerCasedUnit];
|
||
|
}
|
||
|
|
||
|
return convertionUnits.map(u => dropLeadingZero(base / conversion[u]) + u).reduce((a, b) => a.length < b.length ? a : b);
|
||
|
}
|
||
|
|
||
|
function _default(number, unit, {
|
||
|
time,
|
||
|
length,
|
||
|
angle
|
||
|
}) {
|
||
|
let value = dropLeadingZero(number) + (unit ? unit : '');
|
||
|
let converted;
|
||
|
|
||
|
if (length !== false && unit.toLowerCase() in lengthConv) {
|
||
|
converted = transform(number, unit, lengthConv);
|
||
|
}
|
||
|
|
||
|
if (time !== false && unit.toLowerCase() in timeConv) {
|
||
|
converted = transform(number, unit, timeConv);
|
||
|
}
|
||
|
|
||
|
if (angle !== false && unit.toLowerCase() in angleConv) {
|
||
|
converted = transform(number, unit, angleConv);
|
||
|
}
|
||
|
|
||
|
if (converted && converted.length < value.length) {
|
||
|
value = converted;
|
||
|
}
|
||
|
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
module.exports = exports.default;
|