- ✅ Ticket 1.1: Estructura Clean Architecture en backend - ✅ Ticket 1.2: Schemas Zod compartidos - ✅ Ticket 1.3: Refactorización drugs.ts (1362 → 8 archivos modulares) - ✅ Ticket 1.4: Refactorización procedures.ts (3583 → 6 archivos modulares) - ✅ Ticket 1.5: Eliminación de duplicidades (~50 líneas) Cambios principales: - Creada estructura Clean Architecture en backend/src/ - Schemas Zod compartidos en backend/src/shared/schemas/ - Refactorización modular de drugs y procedures - Utilidades genéricas en src/utils/ (filter, validation) - Eliminados scripts obsoletos y documentación antigua - Corregidos errores: QueryClient, import test-error-handling - Build verificado y funcionando correctamente
130 lines
2.4 KiB
JavaScript
130 lines
2.4 KiB
JavaScript
// Generated by LiveScript 1.6.0
|
|
var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm;
|
|
max = curry$(function(x$, y$){
|
|
return x$ > y$ ? x$ : y$;
|
|
});
|
|
min = curry$(function(x$, y$){
|
|
return x$ < y$ ? x$ : y$;
|
|
});
|
|
negate = function(x){
|
|
return -x;
|
|
};
|
|
abs = Math.abs;
|
|
signum = function(x){
|
|
if (x < 0) {
|
|
return -1;
|
|
} else if (x > 0) {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
};
|
|
quot = curry$(function(x, y){
|
|
return ~~(x / y);
|
|
});
|
|
rem = curry$(function(x$, y$){
|
|
return x$ % y$;
|
|
});
|
|
div = curry$(function(x, y){
|
|
return Math.floor(x / y);
|
|
});
|
|
mod = curry$(function(x$, y$){
|
|
var ref$;
|
|
return ((x$) % (ref$ = y$) + ref$) % ref$;
|
|
});
|
|
recip = (function(it){
|
|
return 1 / it;
|
|
});
|
|
pi = Math.PI;
|
|
tau = pi * 2;
|
|
exp = Math.exp;
|
|
sqrt = Math.sqrt;
|
|
ln = Math.log;
|
|
pow = curry$(function(x$, y$){
|
|
return Math.pow(x$, y$);
|
|
});
|
|
sin = Math.sin;
|
|
tan = Math.tan;
|
|
cos = Math.cos;
|
|
asin = Math.asin;
|
|
acos = Math.acos;
|
|
atan = Math.atan;
|
|
atan2 = curry$(function(x, y){
|
|
return Math.atan2(x, y);
|
|
});
|
|
truncate = function(x){
|
|
return ~~x;
|
|
};
|
|
round = Math.round;
|
|
ceiling = Math.ceil;
|
|
floor = Math.floor;
|
|
isItNaN = function(x){
|
|
return x !== x;
|
|
};
|
|
even = function(x){
|
|
return x % 2 === 0;
|
|
};
|
|
odd = function(x){
|
|
return x % 2 !== 0;
|
|
};
|
|
gcd = curry$(function(x, y){
|
|
var z;
|
|
x = Math.abs(x);
|
|
y = Math.abs(y);
|
|
while (y !== 0) {
|
|
z = x % y;
|
|
x = y;
|
|
y = z;
|
|
}
|
|
return x;
|
|
});
|
|
lcm = curry$(function(x, y){
|
|
return Math.abs(Math.floor(x / gcd(x, y) * y));
|
|
});
|
|
module.exports = {
|
|
max: max,
|
|
min: min,
|
|
negate: negate,
|
|
abs: abs,
|
|
signum: signum,
|
|
quot: quot,
|
|
rem: rem,
|
|
div: div,
|
|
mod: mod,
|
|
recip: recip,
|
|
pi: pi,
|
|
tau: tau,
|
|
exp: exp,
|
|
sqrt: sqrt,
|
|
ln: ln,
|
|
pow: pow,
|
|
sin: sin,
|
|
tan: tan,
|
|
cos: cos,
|
|
acos: acos,
|
|
asin: asin,
|
|
atan: atan,
|
|
atan2: atan2,
|
|
truncate: truncate,
|
|
round: round,
|
|
ceiling: ceiling,
|
|
floor: floor,
|
|
isItNaN: isItNaN,
|
|
even: even,
|
|
odd: odd,
|
|
gcd: gcd,
|
|
lcm: lcm
|
|
};
|
|
function curry$(f, bound){
|
|
var context,
|
|
_curry = function(args) {
|
|
return f.length > 1 ? function(){
|
|
var params = args ? args.concat() : [];
|
|
context = bound ? context || this : this;
|
|
return params.push.apply(params, arguments) <
|
|
f.length && arguments.length ?
|
|
_curry.call(context, params) : f.apply(context, params);
|
|
} : f;
|
|
};
|
|
return _curry();
|
|
} |