runtime.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var lodashUnified = require('lodash-unified');
  5. var shared = require('@vue/shared');
  6. const epPropKey = "__epPropKey";
  7. const definePropType = (val) => val;
  8. const isEpProp = (val) => shared.isObject(val) && !!val[epPropKey];
  9. const buildProp = (prop, key) => {
  10. if (!shared.isObject(prop) || isEpProp(prop))
  11. return prop;
  12. const { values, required, default: defaultValue, type, validator } = prop;
  13. const _validator = values || validator ? (val) => {
  14. let valid = false;
  15. let allowedValues = [];
  16. if (values) {
  17. allowedValues = Array.from(values);
  18. if (shared.hasOwn(prop, "default")) {
  19. allowedValues.push(defaultValue);
  20. }
  21. valid || (valid = allowedValues.includes(val));
  22. }
  23. if (validator)
  24. valid || (valid = validator(val));
  25. if (!valid && allowedValues.length > 0) {
  26. const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
  27. vue.warn(
  28. `Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(
  29. val
  30. )}.`
  31. );
  32. }
  33. return valid;
  34. } : void 0;
  35. const epProp = {
  36. type,
  37. required: !!required,
  38. validator: _validator,
  39. [epPropKey]: true
  40. };
  41. if (shared.hasOwn(prop, "default"))
  42. epProp.default = defaultValue;
  43. return epProp;
  44. };
  45. const buildProps = (props) => lodashUnified.fromPairs(
  46. Object.entries(props).map(([key, option]) => [
  47. key,
  48. buildProp(option, key)
  49. ])
  50. );
  51. exports.buildProp = buildProp;
  52. exports.buildProps = buildProps;
  53. exports.definePropType = definePropType;
  54. exports.epPropKey = epPropKey;
  55. exports.isEpProp = isEpProp;
  56. //# sourceMappingURL=runtime.js.map