summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-11-17 23:25:29 +0100
committerRaindropsSys <raindrops@equestria.dev>2023-11-17 23:25:29 +0100
commit953ddd82e48dd206cef5ac94456549aed13b3ad5 (patch)
tree8f003106ee2e7f422e5a22d2ee04d0db302e66c0 /includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js
parent62a9199846b0c07c03218703b33e8385764f42d9 (diff)
downloadpluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.tar.gz
pluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.tar.bz2
pluralconnect-953ddd82e48dd206cef5ac94456549aed13b3ad5.zip
Updated 30 files and deleted 2976 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js')
-rw-r--r--includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js113
1 files changed, 0 insertions, 113 deletions
diff --git a/includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js b/includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js
deleted file mode 100644
index 317d378..0000000
--- a/includes/external/addressbook/node_modules/nth-check/lib/esm/compile.js
+++ /dev/null
@@ -1,113 +0,0 @@
-import boolbase from "boolbase";
-/**
- * Returns a function that checks if an elements index matches the given rule
- * highly optimized to return the fastest solution.
- *
- * @param parsed A tuple [a, b], as returned by `parse`.
- * @returns A highly optimized function that returns whether an index matches the nth-check.
- * @example
- *
- * ```js
- * const check = nthCheck.compile([2, 3]);
- *
- * check(0); // `false`
- * check(1); // `false`
- * check(2); // `true`
- * check(3); // `false`
- * check(4); // `true`
- * check(5); // `false`
- * check(6); // `true`
- * ```
- */
-export function compile(parsed) {
- const a = parsed[0];
- // Subtract 1 from `b`, to convert from one- to zero-indexed.
- const b = parsed[1] - 1;
- /*
- * When `b <= 0`, `a * n` won't be lead to any matches for `a < 0`.
- * Besides, the specification states that no elements are
- * matched when `a` and `b` are 0.
- *
- * `b < 0` here as we subtracted 1 from `b` above.
- */
- if (b < 0 && a <= 0)
- return boolbase.falseFunc;
- // When `a` is in the range -1..1, it matches any element (so only `b` is checked).
- if (a === -1)
- return (index) => index <= b;
- if (a === 0)
- return (index) => index === b;
- // When `b <= 0` and `a === 1`, they match any element.
- if (a === 1)
- return b < 0 ? boolbase.trueFunc : (index) => index >= b;
- /*
- * Otherwise, modulo can be used to check if there is a match.
- *
- * Modulo doesn't care about the sign, so let's use `a`s absolute value.
- */
- const absA = Math.abs(a);
- // Get `b mod a`, + a if this is negative.
- const bMod = ((b % absA) + absA) % absA;
- return a > 1
- ? (index) => index >= b && index % absA === bMod
- : (index) => index <= b && index % absA === bMod;
-}
-/**
- * Returns a function that produces a monotonously increasing sequence of indices.
- *
- * If the sequence has an end, the returned function will return `null` after
- * the last index in the sequence.
- *
- * @param parsed A tuple [a, b], as returned by `parse`.
- * @returns A function that produces a sequence of indices.
- * @example <caption>Always increasing (2n+3)</caption>
- *
- * ```js
- * const gen = nthCheck.generate([2, 3])
- *
- * gen() // `1`
- * gen() // `3`
- * gen() // `5`
- * gen() // `8`
- * gen() // `11`
- * ```
- *
- * @example <caption>With end value (-2n+10)</caption>
- *
- * ```js
- *
- * const gen = nthCheck.generate([-2, 5]);
- *
- * gen() // 0
- * gen() // 2
- * gen() // 4
- * gen() // null
- * ```
- */
-export function generate(parsed) {
- const a = parsed[0];
- // Subtract 1 from `b`, to convert from one- to zero-indexed.
- let b = parsed[1] - 1;
- let n = 0;
- // Make sure to always return an increasing sequence
- if (a < 0) {
- const aPos = -a;
- // Get `b mod a`
- const minValue = ((b % aPos) + aPos) % aPos;
- return () => {
- const val = minValue + aPos * n++;
- return val > b ? null : val;
- };
- }
- if (a === 0)
- return b < 0
- ? // There are no result — always return `null`
- () => null
- : // Return `b` exactly once
- () => (n++ === 0 ? b : null);
- if (b < 0) {
- b += a * Math.ceil(-b / a);
- }
- return () => a * n++ + b;
-}
-//# sourceMappingURL=compile.js.map \ No newline at end of file