@asphalt-react/helper
Advanced tools
Comparing version 2.0.0-alpha.13 to 2.0.0-alpha.16
@@ -29,3 +29,3 @@ const randomHash=()=>`${Math.random().toString(36).substring(2,15)}`;const paddedHexString=buffer=>{const byteArray=new Uint8Array(buffer);const hexCodes=Array.from(byteArray).map(value=>value.toString(16).padStart(2,"0"));return hexCodes.join("")};const sha256=async input=>{{if(!window.crypto.subtle){return Promise.reject(new Error("`crypto` only works in secure contexts."))}const buffer=await window.crypto.subtle.digest("SHA-256",input);return paddedHexString(buffer)}};const hash=data=>{const encoder=new TextEncoder("utf-8");return sha256(encoder.encode(data))}; | ||
const validateSize=(sizeArr,size)=>{return sizeArr.includes(size)};const createPropOccurValidator=propsEnum=>props=>{const incomingProps=Object.keys(props).filter(key=>Boolean(props[key]));return propsEnum.filter(prop=>incomingProps.includes(prop)).length<=1};const getSupportType=defaultType=>typeProps=>{const{[defaultType]:removedProp,...restProps}=typeProps;const supportKeys=Object.keys(restProps);const doPropsConflict=!createPropOccurValidator(supportKeys)(restProps);if(doPropsConflict){return defaultType}return supportKeys.find(key=>Boolean(restProps[key]))||defaultType};const mergeRefs=(...refs)=>node=>{refs.forEach(ref=>{if(typeof ref==="function"){ref(node);}else if(ref!==null){ref.current=node;}});};const yieldPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(key.startsWith(prefix)&&{[key]:obj[key]})}),{});const filterPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(!key.startsWith(prefix)&&{[key]:obj[key]})}),{});const yieldDataAttrs=obj=>yieldPropsWithPrefix(obj,"data-");const excludeDataAttrs=obj=>filterPropsWithPrefix(obj,"data-");const yieldAriaAttrs=obj=>yieldPropsWithPrefix(obj,"aria-");const excludeAriaAttrs=obj=>filterPropsWithPrefix(obj,"aria-");const concatClasses=(...words)=>camelCase(...words); | ||
const validateSize=(sizeArr,size)=>{return sizeArr.includes(size)};const createPropOccurValidator=propsEnum=>props=>{const incomingProps=Object.keys(props).filter(key=>Boolean(props[key]));return propsEnum.filter(prop=>incomingProps.includes(prop)).length<=1};const resolvePropCollision=(propsObj,defaultProp)=>{const validateProp=createPropOccurValidator(Object.keys(propsObj));const singleOccur=validateProp({...propsObj});if(!singleOccur){return {collision:true,value:defaultProp}}const truthyProp=Object.keys(propsObj).find(prop=>propsObj[prop]);return {collision:false,value:truthyProp?truthyProp:defaultProp}};const getSupportType=defaultType=>typeProps=>{const{[defaultType]:removedProp,...restProps}=typeProps;const supportKeys=Object.keys(restProps);const doPropsConflict=!createPropOccurValidator(supportKeys)(restProps);if(doPropsConflict){return defaultType}return supportKeys.find(key=>Boolean(restProps[key]))||defaultType};const mergeRefs=(...refs)=>node=>{refs.forEach(ref=>{if(typeof ref==="function"){ref(node);}else if(ref!==null){ref.current=node;}});};const yieldPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(key.startsWith(prefix)&&{[key]:obj[key]})}),{});const filterPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(!key.startsWith(prefix)&&{[key]:obj[key]})}),{});const yieldDataAttrs=obj=>yieldPropsWithPrefix(obj,"data-");const excludeDataAttrs=obj=>filterPropsWithPrefix(obj,"data-");const yieldAriaAttrs=obj=>yieldPropsWithPrefix(obj,"aria-");const excludeAriaAttrs=obj=>filterPropsWithPrefix(obj,"aria-");const concatClasses=(...words)=>camelCase(...words); | ||
@@ -36,2 +36,3 @@ var props = /*#__PURE__*/Object.freeze({ | ||
createPropOccurValidator: createPropOccurValidator, | ||
resolvePropCollision: resolvePropCollision, | ||
getSupportType: getSupportType, | ||
@@ -38,0 +39,0 @@ mergeRefs: mergeRefs, |
@@ -29,3 +29,3 @@ const randomHash=()=>`${Math.random().toString(36).substring(2,15)}`;const paddedHexString=buffer=>{const byteArray=new Uint8Array(buffer);const hexCodes=Array.from(byteArray).map(value=>value.toString(16).padStart(2,"0"));return hexCodes.join("")};const sha256=async input=>{{const{createHash}=require("crypto");const hash=createHash("sha256");hash.update(input);return hash.digest("hex")}};const hash=data=>{const encoder=new TextEncoder("utf-8");return sha256(encoder.encode(data))}; | ||
const validateSize=(sizeArr,size)=>{return sizeArr.includes(size)};const createPropOccurValidator=propsEnum=>props=>{const incomingProps=Object.keys(props).filter(key=>Boolean(props[key]));return propsEnum.filter(prop=>incomingProps.includes(prop)).length<=1};const getSupportType=defaultType=>typeProps=>{const{[defaultType]:removedProp,...restProps}=typeProps;const supportKeys=Object.keys(restProps);const doPropsConflict=!createPropOccurValidator(supportKeys)(restProps);if(doPropsConflict){return defaultType}return supportKeys.find(key=>Boolean(restProps[key]))||defaultType};const mergeRefs=(...refs)=>node=>{refs.forEach(ref=>{if(typeof ref==="function"){ref(node);}else if(ref!==null){ref.current=node;}});};const yieldPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(key.startsWith(prefix)&&{[key]:obj[key]})}),{});const filterPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(!key.startsWith(prefix)&&{[key]:obj[key]})}),{});const yieldDataAttrs=obj=>yieldPropsWithPrefix(obj,"data-");const excludeDataAttrs=obj=>filterPropsWithPrefix(obj,"data-");const yieldAriaAttrs=obj=>yieldPropsWithPrefix(obj,"aria-");const excludeAriaAttrs=obj=>filterPropsWithPrefix(obj,"aria-");const concatClasses=(...words)=>camelCase(...words); | ||
const validateSize=(sizeArr,size)=>{return sizeArr.includes(size)};const createPropOccurValidator=propsEnum=>props=>{const incomingProps=Object.keys(props).filter(key=>Boolean(props[key]));return propsEnum.filter(prop=>incomingProps.includes(prop)).length<=1};const resolvePropCollision=(propsObj,defaultProp)=>{const validateProp=createPropOccurValidator(Object.keys(propsObj));const singleOccur=validateProp({...propsObj});if(!singleOccur){return {collision:true,value:defaultProp}}const truthyProp=Object.keys(propsObj).find(prop=>propsObj[prop]);return {collision:false,value:truthyProp?truthyProp:defaultProp}};const getSupportType=defaultType=>typeProps=>{const{[defaultType]:removedProp,...restProps}=typeProps;const supportKeys=Object.keys(restProps);const doPropsConflict=!createPropOccurValidator(supportKeys)(restProps);if(doPropsConflict){return defaultType}return supportKeys.find(key=>Boolean(restProps[key]))||defaultType};const mergeRefs=(...refs)=>node=>{refs.forEach(ref=>{if(typeof ref==="function"){ref(node);}else if(ref!==null){ref.current=node;}});};const yieldPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(key.startsWith(prefix)&&{[key]:obj[key]})}),{});const filterPropsWithPrefix=(obj,prefix)=>Object.keys(obj).reduce((prefixedProps,key)=>({...prefixedProps,...(!key.startsWith(prefix)&&{[key]:obj[key]})}),{});const yieldDataAttrs=obj=>yieldPropsWithPrefix(obj,"data-");const excludeDataAttrs=obj=>filterPropsWithPrefix(obj,"data-");const yieldAriaAttrs=obj=>yieldPropsWithPrefix(obj,"aria-");const excludeAriaAttrs=obj=>filterPropsWithPrefix(obj,"aria-");const concatClasses=(...words)=>camelCase(...words); | ||
@@ -36,2 +36,3 @@ var props = /*#__PURE__*/Object.freeze({ | ||
createPropOccurValidator: createPropOccurValidator, | ||
resolvePropCollision: resolvePropCollision, | ||
getSupportType: getSupportType, | ||
@@ -38,0 +39,0 @@ mergeRefs: mergeRefs, |
{ | ||
"name": "@asphalt-react/helper", | ||
"version": "2.0.0-alpha.13", | ||
"version": "2.0.0-alpha.16", | ||
"description": "Common helper utilities for components", | ||
@@ -44,3 +44,3 @@ "keywords": [ | ||
}, | ||
"gitHead": "d612f951c8b52f5c0b43e48155cb5346c06031c8" | ||
"gitHead": "f4fb1d6fe86c8e09cded4b749a14f0160ed90460" | ||
} |
Sorry, the diff of this file is not supported yet
13803
164