@flumens/utils 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cases.d.ts +4 -0
- package/dist/cases.js +1 -0
- package/dist/image.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/type.d.ts +3 -4
- package/package.json +2 -1
package/dist/cases.d.ts
ADDED
package/dist/cases.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCamelCaseObj=exports.snakeCase=exports.camelCase=void 0;exports.camelCase=e=>{if(!e)return"";return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).map(((e,r)=>0===r?e:e.charAt(0).toUpperCase()+e.slice(1))).join("")};exports.snakeCase=e=>{if(!e)return"";return e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z])([A-Z][a-z])/g,"$1 $2").replace(/[^a-zA-Z0-9]+/g," ").trim().toLowerCase().split(/\s+/).join("_")};exports.getCamelCaseObj=e=>((e,r)=>{const a={};return Object.keys(e).forEach((s=>{const t=s,o=r(e[t],s);a[o]=e[t]})),a})(e,((e,r)=>(0,exports.camelCase)(r)));
|
package/dist/image.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createImage=void 0,exports.getObjectURL=a,exports.saveFile=function(e,o){return t.__awaiter(this,void 0,void 0,(function*(){if(!r.Capacitor.isNativePlatform())return a(e);yield i.Filesystem.writeFile({path:o,data:e,directory:i.Directory.Data});const{uri:t}=yield i.Filesystem.stat({path:o,directory:i.Directory.Data});return t}))},exports.deleteFile=function(e){return t.__awaiter(this,void 0,void 0,(function*(){r.Capacitor.isNativePlatform()&&(yield i.Filesystem.deleteFile({path:e,directory:i.Directory.Data}))}))},exports.resizeImage=o,exports.cropImage=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=0){const i=yield(0,exports.createImage)(t),a=document.createElement("canvas"),o=a.getContext("2d");if(!o)return"";const s=n(r),{width:c,height:l}=function(t,e,r){const i=n(r),a=Math.abs(Math.cos(i)*t)+Math.abs(Math.sin(i)*e),o=Math.abs(Math.sin(i)*t)+Math.abs(Math.cos(i)*e);return{width:a,height:o}}(i.width,i.height,r);a.width=c,a.height=l,o.translate(c/2,l/2),o.rotate(s),o.translate(-i.width/2,-i.height/2),o.drawImage(i,0,0);const u=document.createElement("canvas"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.createImage=void 0,exports.getObjectURL=a,exports.saveFile=function(e,o){return t.__awaiter(this,void 0,void 0,(function*(){if(!r.Capacitor.isNativePlatform())return a(e);yield i.Filesystem.writeFile({path:o,data:e,directory:i.Directory.Data});const{uri:t}=yield i.Filesystem.stat({path:o,directory:i.Directory.Data});return t}))},exports.deleteFile=function(e){return t.__awaiter(this,void 0,void 0,(function*(){r.Capacitor.isNativePlatform()&&(yield i.Filesystem.deleteFile({path:e,directory:i.Directory.Data}))}))},exports.resizeImage=o,exports.cropImage=function(e,r){return t.__awaiter(this,arguments,void 0,(function*(t,e,r=0){const i=yield(0,exports.createImage)(t),a=document.createElement("canvas"),o=a.getContext("2d");if(!o)return"";const s=n(r),{width:c,height:l}=function(t,e,r){const i=n(r),a=Math.abs(Math.cos(i)*t)+Math.abs(Math.sin(i)*e),o=Math.abs(Math.sin(i)*t)+Math.abs(Math.cos(i)*e);return{width:a,height:o}}(i.width,i.height,r);a.width=c,a.height=l,o.translate(c/2,l/2),o.rotate(s),o.translate(-i.width/2,-i.height/2),o.drawImage(i,0,0);const u=document.createElement("canvas"),d=u.getContext("2d");return d?(u.width=e.width,u.height=e.height,d.drawImage(a,e.x,e.y,e.width,e.height,0,0,e.width,e.height),u.toDataURL()):""}))},exports.isDataURL=c,exports.dataURItoBlob=l,exports.getBlobFromURL=function(t,e){if(c(t)){const r=l(t,e);return Promise.resolve(r)}return new Promise((e=>{const r=new XMLHttpRequest;r.open("GET",t,!0),r.responseType="blob",r.onload=()=>{const t=r.response;e(t)},r.send()}))},exports.captureImage=function(){return t.__awaiter(this,arguments,void 0,(function*(r={}){const a=yield function(r){return t.__awaiter(this,void 0,void 0,(function*(){const{camera:i,multiple:a,getPhoto:o}=r,n=t.__rest(r,["camera","multiple","getPhoto"]);if(o){const t=yield o();return t?[t]:[]}if(a)try{const t=Object.assign({quality:40,correctOrientation:!0,limit:30},n);return(yield e.Camera.pickImages(t)).photos}catch(t){if(t.message.includes("User cancelled photos app")||t.message.includes("No images picked"))return[];throw t}try{const t=Object.assign({quality:40,allowEditing:!1,saveToGallery:!0,webUseInput:!0,correctOrientation:!0,resultType:e.CameraResultType.Uri,source:i?e.CameraSource.Camera:e.CameraSource.Photos},n);return[yield e.Camera.getPhoto(t)]}catch(t){if(t.message.includes("User cancelled photos app")||t.message.includes("No image picked"))return[];throw t}}))}(r),o=[];for(const t of a){const{path:e}=t;if(!e){t.webPath&&o.push(t.webPath);continue}const r=yield s(e);if(e.includes("/tmp/")||e.includes("/cache/"))try{yield i.Filesystem.deleteFile({path:e})}catch(t){}o.push(r)}return o}))};const t=require("tslib"),e=require("@capacitor/camera"),r=require("@capacitor/core"),i=require("@capacitor/filesystem");function a(t){const e=t.split(",")[0].split(":")[1].split(";")[0],r=window.atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));const a=new Blob([new Uint8Array(i)],{type:e});return window.URL.createObjectURL(a)}function o({url:t,fileType:e="image/jpeg",MAX_WIDTH:r=2e3,MAX_HEIGHT:i=2e3}){return new Promise((a=>{const o=new window.Image;o.onload=()=>{var t;let{width:n}=o,{height:s}=o;let c=null;c=n>s?n/(r>n?n:r):s/(i>s?s:i),n/=c,s/=c;const l=document.createElement("canvas");l.width=n,l.height=s,null===(t=l.getContext("2d"))||void 0===t||t.drawImage(o,0,0,n,s),a([o,l.toDataURL(e)])},o.src=t}))}function n(t){return t*Math.PI/180}function s(e){return t.__awaiter(this,void 0,void 0,(function*(){const t=`${Date.now()}.jpeg`,[,a]=yield o({url:r.Capacitor.convertFileSrc(e)});yield i.Filesystem.writeFile({path:t,data:a,directory:i.Directory.Data});const{uri:n}=yield i.Filesystem.stat({path:t,directory:i.Directory.Data});return n}))}function c(t){if(!t)return!1;return!!t.toString().match(/^\s*data:([a-z]+\/[a-z]+(;[a-z\-]+\=[a-z\-]+)?)?(;base64)?,[a-z0-9\!\$\&\'\,\(\)\*\+\,\;\=\-\.\_\~\:\@\/\?\%\s]*\s*$/i)}function l(t,e){const r=atob(t.split(",")[1]),i=[];for(let t=0;t<r.length;t++)i.push(r.charCodeAt(t));return new Blob([new Uint8Array(i)],{type:e})}exports.createImage=t=>new Promise(((e,r)=>{const i=new window.Image;i.onload=()=>e(i),i.onerror=t=>r(t),i.src=t}));
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.device=exports.string=void 0;const e=require("tslib");var r=require("./string.js");Object.defineProperty(exports,"string",{enumerable:!0,get:function(){return e.__importDefault(r).default}});var t=require("./device.js");Object.defineProperty(exports,"device",{enumerable:!0,get:function(){return e.__importDefault(t).default}}),e.__exportStar(require("./deferred.js"),exports),e.__exportStar(require("./date.js"),exports),e.__exportStar(require("./image.js"),exports),e.__exportStar(require("./location.js"),exports),e.__exportStar(require("./type.js"),exports),e.__exportStar(require("./sentry.js"),exports),e.__exportStar(require("./errors.js"),exports),e.__exportStar(require("./platform.js"),exports),e.__exportStar(require("./uuid.js"),exports),e.__exportStar(require("./MigrationManager.js"),exports);
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.device=exports.string=void 0;const e=require("tslib");var r=require("./string.js");Object.defineProperty(exports,"string",{enumerable:!0,get:function(){return e.__importDefault(r).default}});var t=require("./device.js");Object.defineProperty(exports,"device",{enumerable:!0,get:function(){return e.__importDefault(t).default}}),e.__exportStar(require("./cases.js"),exports),e.__exportStar(require("./deferred.js"),exports),e.__exportStar(require("./date.js"),exports),e.__exportStar(require("./image.js"),exports),e.__exportStar(require("./location.js"),exports),e.__exportStar(require("./type.js"),exports),e.__exportStar(require("./sentry.js"),exports),e.__exportStar(require("./errors.js"),exports),e.__exportStar(require("./platform.js"),exports),e.__exportStar(require("./uuid.js"),exports),e.__exportStar(require("./MigrationManager.js"),exports);
|
package/dist/type.d.ts
CHANGED
|
@@ -40,12 +40,11 @@ export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<T>;
|
|
|
40
40
|
* {a; b?; c}
|
|
41
41
|
*/
|
|
42
42
|
export type OptionalExcept<T, K extends keyof T> = Pick<T, K> & Partial<T>;
|
|
43
|
+
type CamelCase<S extends string> = S extends `${infer P1}_${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCase<P3>}` : Lowercase<S>;
|
|
43
44
|
/**
|
|
44
45
|
* Transforms snake-case keys to camel-case.
|
|
45
|
-
* https://medium.com/@fullstack-shepherd/typescript-transforming-types-with-snake-case-keys-to-camelcase-keys-or-how-to-keep-busy-in-9d5f074d9bfa
|
|
46
46
|
*/
|
|
47
|
-
type
|
|
48
|
-
|
|
49
|
-
[key in keyof T as key extends string ? Camelize<key> : key]: T[key];
|
|
47
|
+
export type CamelizeKeys<T> = {
|
|
48
|
+
[K in keyof T as CamelCase<K & string>]: T[K];
|
|
50
49
|
};
|
|
51
50
|
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flumens/utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"prepare": "npm run build",
|
|
10
10
|
"test:eslint": "eslint src --quiet --ext .jsx --ext .ts --ext .tsx --ext .js && echo '\\033[37;42;1m PASS \\033[00m'",
|
|
11
11
|
"postpublish": "TAG_NAME=utils-v\"$npm_package_version\" && git tag $TAG_NAME && git push origin \"$TAG_NAME\"",
|
|
12
|
+
"check": "npx tsc --noEmit --skipLibCheck && npm run test:eslint",
|
|
12
13
|
"test": "jest --passWithNoTests",
|
|
13
14
|
"test:watch": "jest --watchAll"
|
|
14
15
|
},
|