value.js 806 B

12345678910111213141516171819202122
  1. import {color} from "d3-color";
  2. import rgb from "./rgb.js";
  3. import {genericArray} from "./array.js";
  4. import date from "./date.js";
  5. import number from "./number.js";
  6. import object from "./object.js";
  7. import string from "./string.js";
  8. import constant from "./constant.js";
  9. import numberArray, {isNumberArray} from "./numberArray.js";
  10. export default function(a, b) {
  11. var t = typeof b, c;
  12. return b == null || t === "boolean" ? constant(b)
  13. : (t === "number" ? number
  14. : t === "string" ? ((c = color(b)) ? (b = c, rgb) : string)
  15. : b instanceof color ? rgb
  16. : b instanceof Date ? date
  17. : isNumberArray(b) ? numberArray
  18. : Array.isArray(b) ? genericArray
  19. : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object
  20. : number)(a, b);
  21. }