@noeldemartin/faker
Version:
Generate massive amounts of fake contextual data
2 lines (1 loc) • 4.01 kB
JavaScript
;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var S=(t,r)=>{for(var e in r)i(t,e,{get:r[e],enumerable:!0})},C=(t,r,e,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of g(r))!p.call(t,o)&&o!==e&&i(t,o,{get:()=>r[o],enumerable:!(a=u(r,o))||a.enumerable});return t};var y=t=>C(i({},"__esModule",{value:!0}),t);var k={};S(k,{CSS_FUNCTIONS:()=>h,CSS_SPACES:()=>b,ColorModule:()=>l});module.exports=y(k);const b=["sRGB","display-p3","rec2020","a98-rgb","prophoto-rgb","rec2020"],h=["rgb","rgba","hsl","hsla","hwb","cmyk","lab","lch","color"];function F(t,r){switch(r==null?void 0:r.casing){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break}return r!=null&&r.prefix&&(t=r.prefix+t),t}function s(t){return t.map(e=>{if(e%1!==0){const o=new ArrayBuffer(4);new DataView(o).setFloat32(0,e);const c=new Uint8Array(o);return s(Array.from(c)).split(" ").join("")}return(e>>>0).toString(2).padStart(8,"0")}).join(" ")}function d(t,r="rgb",e="sRGB"){const a=o=>Math.round(o*100);switch(r){case"rgba":return`rgba(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`;case"color":return`color(${e} ${t[0]} ${t[1]} ${t[2]})`;case"cmyk":return`cmyk(${a(t[0])}%, ${a(t[1])}%, ${a(t[2])}%, ${a(t[3])}%)`;case"hsl":return`hsl(${t[0]}deg ${a(t[1])}% ${a(t[2])}%)`;case"hsla":return`hsl(${t[0]}deg ${a(t[1])}% ${a(t[2])}% / ${a(t[3])})`;case"hwb":return`hwb(${t[0]} ${a(t[1])}% ${a(t[2])}%)`;case"lab":return`lab(${a(t[0])}% ${t[1]} ${t[2]})`;case"lch":return`lch(${a(t[0])}% ${t[1]} ${t[2]})`;case"rgb":default:return`rgb(${t[0]}, ${t[1]}, ${t[2]})`}}function m(t,r,e="rgb",a="sRGB"){switch(r){case"css":return d(t,e,a);case"binary":return s(t);default:return t}}class l{constructor(r){this.faker=r;for(const e of Object.getOwnPropertyNames(l.prototype))e==="constructor"||typeof this[e]!="function"||(this[e]=this[e].bind(this))}human(){return this.faker.helpers.arrayElement(this.faker.definitions.color.human)}space(){return this.faker.helpers.arrayElement(this.faker.definitions.color.space)}cssSupportedFunction(){return this.faker.helpers.arrayElement(h)}cssSupportedSpace(){return this.faker.helpers.arrayElement(b)}rgb(r){const{format:e="hex",includeAlpha:a=!1,prefix:o="#",casing:c="lower"}=r||{};r={format:e,includeAlpha:a,prefix:o,casing:c};let n,f="rgb";return e==="hex"?(n=this.faker.datatype.hexadecimal({length:a?8:6,prefix:""}),n=F(n,r),n):(n=Array.from({length:3}).map(()=>this.faker.datatype.number({min:0,max:255})),a&&(n.push(this.faker.datatype.float({min:0,max:1,precision:.01})),f="rgba"),m(n,e,f))}cmyk(r){const e=Array.from({length:4}).map(()=>this.faker.datatype.float({min:0,max:1,precision:.01}));return m(e,(r==null?void 0:r.format)||"decimal","cmyk")}hsl(r){const e=[this.faker.datatype.number({min:0,max:360})];for(let a=0;a<(r!=null&&r.includeAlpha?3:2);a++)e.push(this.faker.datatype.float({min:0,max:1,precision:.01}));return m(e,(r==null?void 0:r.format)||"decimal",r!=null&&r.includeAlpha?"hsla":"hsl")}hwb(r){const e=[this.faker.datatype.number({min:0,max:360})];for(let a=0;a<2;a++)e.push(this.faker.datatype.float({min:0,max:1,precision:.01}));return m(e,(r==null?void 0:r.format)||"decimal","hwb")}lab(r){const e=[this.faker.datatype.float({min:0,max:1,precision:1e-6})];for(let a=0;a<2;a++)e.push(this.faker.datatype.float({min:-100,max:100,precision:1e-4}));return m(e,(r==null?void 0:r.format)||"decimal","lab")}lch(r){const e=[this.faker.datatype.float({min:0,max:1,precision:1e-6})];for(let a=0;a<2;a++)e.push(this.faker.datatype.number({min:0,max:230,precision:.1}));return m(e,(r==null?void 0:r.format)||"decimal","lch")}colorByCSSColorSpace(r){(r==null?void 0:r.format)==="css"&&!(r!=null&&r.space)&&(r={...r,space:"sRGB"});const e=Array.from({length:3}).map(()=>this.faker.datatype.float({min:0,max:1,precision:1e-4}));return m(e,(r==null?void 0:r.format)||"decimal","color",r==null?void 0:r.space)}}0&&(module.exports={CSS_FUNCTIONS,CSS_SPACES,ColorModule});