@konfirm/stringify
Advanced tools
+11
-2
@@ -17,2 +17,10 @@ # Changelog | ||
| ## [1.0.4] - 2023-10-16 | ||
| Fixing issue with missing internals | ||
| ### Fixed | ||
| - changed TypeScript module config | ||
| ## [1.0.3] - 2023-10-14 | ||
@@ -43,6 +51,7 @@ | ||
| [Unreleased]: https://github.com/konfirm/stringify/compare/v1.0.3...HEAD | ||
| [1.0.2]: https://github.com/konfirm/stringify/compare/v1.0.2...v1.0.3 | ||
| [Unreleased]: https://github.com/konfirm/stringify/compare/v1.0.4...HEAD | ||
| [1.0.4]: https://github.com/konfirm/stringify/compare/v1.0.3...v1.0.4 | ||
| [1.0.3]: https://github.com/konfirm/stringify/compare/v1.0.2...v1.0.3 | ||
| [1.0.2]: https://github.com/konfirm/stringify/compare/v1.0.1...v1.0.2 | ||
| [1.0.1]: https://github.com/konfirm/stringify/compare/v1.0.0...v1.0.1 | ||
| [1.0.0]: https://github.com/konfirm/stringify/releases/tag/v1.0.0 |
| 'use strict'; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.stringify = void 0; | ||
| const tslib_1 = require("tslib"); | ||
| const TypeMapper_1 = require("./Domain/Mapper/TypeMapper"); | ||
| const ValueMapper_1 = require("./Domain/Mapper/ValueMapper"); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/TypeMapper"), exports); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/ValueMapper"), exports); | ||
| const types = new TypeMapper_1.TypeMapper({ | ||
| class TypeMapper { | ||
| constructor(mapping = {}) { | ||
| this.mapping = Object.keys(mapping) | ||
| .map((key) => (value) => mapping[key](value) ? key : undefined) | ||
| .concat((value) => typeof value); | ||
| } | ||
| map(value) { | ||
| return this.mapping.reduce((carry, map) => carry || map(value), undefined); | ||
| } | ||
| } | ||
| class ValueMapper { | ||
| constructor(types = new TypeMapper(), mapping = {}) { | ||
| this.types = types; | ||
| this.mapping = mapping; | ||
| } | ||
| map(value) { | ||
| const type = this.types.map(value); | ||
| const map = (value) => this.map(value); | ||
| return type in this.mapping | ||
| ? this.mapping[type](value, map) | ||
| : (value === null || value === void 0 ? void 0 : value.toString()) || 'undefined'; | ||
| } | ||
| } | ||
| const types = new TypeMapper({ | ||
| date: (value) => value instanceof Date, | ||
@@ -16,3 +34,3 @@ regexp: (value) => value instanceof RegExp, | ||
| }); | ||
| const stringifier = new ValueMapper_1.ValueMapper(types, { | ||
| const stringifier = new ValueMapper(types, { | ||
| string: (value) => value ? `"${value}"` : 'EmptyString', | ||
@@ -47,2 +65,5 @@ date: (value, map) => map(value.toISOString()), | ||
| const stringify = (value) => stringifier.map(value); | ||
| exports.TypeMapper = TypeMapper; | ||
| exports.ValueMapper = ValueMapper; | ||
| exports.stringify = stringify; |
@@ -1,1 +0,1 @@ | ||
| "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.stringify=void 0;const e=require("tslib"),r=require("./Domain/Mapper/TypeMapper"),n=require("./Domain/Mapper/ValueMapper");e.__exportStar(require("./Domain/Mapper/TypeMapper"),exports),e.__exportStar(require("./Domain/Mapper/ValueMapper"),exports);const t=new r.TypeMapper({date:e=>e instanceof Date,regexp:e=>e instanceof RegExp,array:e=>Array.isArray(e),null:e=>null===e}),a=new n.ValueMapper(t,{string:e=>e?`"${e}"`:"EmptyString",date:(e,r)=>r(e.toISOString()),object:(e,r)=>{const n=String(e);if(/^\[([a-z]+) \1\]$/i.test(n)){return`{${Object.keys(e).map((n=>`${n}:${r(e[n])}`)).join(",")}}`}return n},array:(e,r)=>`[${e.map(r).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:e=>{const{constructor:{name:r},name:n}=e,[,t,a,o]=r.match(/^(async)?(generator)?(function)$/i),[,p,i]=e.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!p||n||i?[]:"anonymous").concat(n&&!p&&i?"shorthand":[]).concat(t||[],a||[]).concat(p||i?[]:"arrow").concat(p||o).map((e=>e[0].toUpperCase()+e.slice(1))).join("")].concat(n||[]).join(" ")}});exports.stringify=e=>a.map(e); | ||
| "use strict";class n{constructor(n={}){this.mapping=Object.keys(n).map((t=>a=>n[t](a)?t:void 0)).concat((n=>typeof n))}map(n){return this.mapping.reduce(((t,a)=>t||a(n)),void 0)}}class t{constructor(t=new n,a={}){this.types=t,this.mapping=a}map(n){const t=this.types.map(n);return t in this.mapping?this.mapping[t](n,(n=>this.map(n))):(null==n?void 0:n.toString())||"undefined"}}const a=new t(new n({date:n=>n instanceof Date,regexp:n=>n instanceof RegExp,array:n=>Array.isArray(n),null:n=>null===n}),{string:n=>n?`"${n}"`:"EmptyString",date:(n,t)=>t(n.toISOString()),object:(n,t)=>{const a=String(n);if(/^\[([a-z]+) \1\]$/i.test(a)){return`{${Object.keys(n).map((a=>`${a}:${t(n[a])}`)).join(",")}}`}return a},array:(n,t)=>`[${n.map(t).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:n=>{const{constructor:{name:t},name:a}=n,[,e,r,s]=t.match(/^(async)?(generator)?(function)$/i),[,i,o]=n.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!i||a||o?[]:"anonymous").concat(a&&!i&&o?"shorthand":[]).concat(e||[],r||[]).concat(i||o?[]:"arrow").concat(i||s).map((n=>n[0].toUpperCase()+n.slice(1))).join("")].concat(a||[]).join(" ")}});exports.TypeMapper=n,exports.ValueMapper=t,exports.stringify=n=>a.map(n); |
+29
-10
@@ -1,9 +0,27 @@ | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.stringify = void 0; | ||
| const tslib_1 = require("tslib"); | ||
| const TypeMapper_1 = require("./Domain/Mapper/TypeMapper"); | ||
| const ValueMapper_1 = require("./Domain/Mapper/ValueMapper"); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/TypeMapper"), exports); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/ValueMapper"), exports); | ||
| const types = new TypeMapper_1.TypeMapper({ | ||
| class TypeMapper { | ||
| constructor(mapping = {}) { | ||
| this.mapping = Object.keys(mapping) | ||
| .map((key) => (value) => mapping[key](value) ? key : undefined) | ||
| .concat((value) => typeof value); | ||
| } | ||
| map(value) { | ||
| return this.mapping.reduce((carry, map) => carry || map(value), undefined); | ||
| } | ||
| } | ||
| class ValueMapper { | ||
| constructor(types = new TypeMapper(), mapping = {}) { | ||
| this.types = types; | ||
| this.mapping = mapping; | ||
| } | ||
| map(value) { | ||
| const type = this.types.map(value); | ||
| const map = (value) => this.map(value); | ||
| return type in this.mapping | ||
| ? this.mapping[type](value, map) | ||
| : (value === null || value === void 0 ? void 0 : value.toString()) || 'undefined'; | ||
| } | ||
| } | ||
| const types = new TypeMapper({ | ||
| date: (value) => value instanceof Date, | ||
@@ -14,3 +32,3 @@ regexp: (value) => value instanceof RegExp, | ||
| }); | ||
| const stringifier = new ValueMapper_1.ValueMapper(types, { | ||
| const stringifier = new ValueMapper(types, { | ||
| string: (value) => value ? `"${value}"` : 'EmptyString', | ||
@@ -45,2 +63,3 @@ date: (value, map) => map(value.toISOString()), | ||
| const stringify = (value) => stringifier.map(value); | ||
| exports.stringify = stringify; | ||
| export { TypeMapper, ValueMapper, stringify }; |
@@ -1,1 +0,1 @@ | ||
| Object.defineProperty(exports,"__esModule",{value:!0}),exports.stringify=void 0;const e=require("tslib"),r=require("./Domain/Mapper/TypeMapper"),n=require("./Domain/Mapper/ValueMapper");e.__exportStar(require("./Domain/Mapper/TypeMapper"),exports),e.__exportStar(require("./Domain/Mapper/ValueMapper"),exports);const a=new r.TypeMapper({date:e=>e instanceof Date,regexp:e=>e instanceof RegExp,array:e=>Array.isArray(e),null:e=>null===e}),t=new n.ValueMapper(a,{string:e=>e?`"${e}"`:"EmptyString",date:(e,r)=>r(e.toISOString()),object:(e,r)=>{const n=String(e);if(/^\[([a-z]+) \1\]$/i.test(n)){return`{${Object.keys(e).map((n=>`${n}:${r(e[n])}`)).join(",")}}`}return n},array:(e,r)=>`[${e.map(r).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:e=>{const{constructor:{name:r},name:n}=e,[,a,t,o]=r.match(/^(async)?(generator)?(function)$/i),[,p,i]=e.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!p||n||i?[]:"anonymous").concat(n&&!p&&i?"shorthand":[]).concat(a||[],t||[]).concat(p||i?[]:"arrow").concat(p||o).map((e=>e[0].toUpperCase()+e.slice(1))).join("")].concat(n||[]).join(" ")}});exports.stringify=e=>t.map(e); | ||
| class n{constructor(n={}){this.mapping=Object.keys(n).map((t=>a=>n[t](a)?t:void 0)).concat((n=>typeof n))}map(n){return this.mapping.reduce(((t,a)=>t||a(n)),void 0)}}class t{constructor(t=new n,a={}){this.types=t,this.mapping=a}map(n){const t=this.types.map(n);return t in this.mapping?this.mapping[t](n,(n=>this.map(n))):(null==n?void 0:n.toString())||"undefined"}}const a=new t(new n({date:n=>n instanceof Date,regexp:n=>n instanceof RegExp,array:n=>Array.isArray(n),null:n=>null===n}),{string:n=>n?`"${n}"`:"EmptyString",date:(n,t)=>t(n.toISOString()),object:(n,t)=>{const a=String(n);if(/^\[([a-z]+) \1\]$/i.test(a)){return`{${Object.keys(n).map((a=>`${a}:${t(n[a])}`)).join(",")}}`}return a},array:(n,t)=>`[${n.map(t).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:n=>{const{constructor:{name:t},name:a}=n,[,c,e,i]=t.match(/^(async)?(generator)?(function)$/i),[,o,r]=n.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!o||a||r?[]:"anonymous").concat(a&&!o&&r?"shorthand":[]).concat(c||[],e||[]).concat(o||r?[]:"arrow").concat(o||i).map((n=>n[0].toUpperCase()+n.slice(1))).join("")].concat(a||[]).join(" ")}}),c=n=>a.map(n);export{n as TypeMapper,t as ValueMapper,c as stringify}; |
+34
-11
@@ -1,12 +0,30 @@ | ||
| (function () { | ||
| var Stringify = (function (exports) { | ||
| 'use strict'; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.stringify = void 0; | ||
| const tslib_1 = require("tslib"); | ||
| const TypeMapper_1 = require("./Domain/Mapper/TypeMapper"); | ||
| const ValueMapper_1 = require("./Domain/Mapper/ValueMapper"); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/TypeMapper"), exports); | ||
| tslib_1.__exportStar(require("./Domain/Mapper/ValueMapper"), exports); | ||
| const types = new TypeMapper_1.TypeMapper({ | ||
| class TypeMapper { | ||
| constructor(mapping = {}) { | ||
| this.mapping = Object.keys(mapping) | ||
| .map((key) => (value) => mapping[key](value) ? key : undefined) | ||
| .concat((value) => typeof value); | ||
| } | ||
| map(value) { | ||
| return this.mapping.reduce((carry, map) => carry || map(value), undefined); | ||
| } | ||
| } | ||
| class ValueMapper { | ||
| constructor(types = new TypeMapper(), mapping = {}) { | ||
| this.types = types; | ||
| this.mapping = mapping; | ||
| } | ||
| map(value) { | ||
| const type = this.types.map(value); | ||
| const map = (value) => this.map(value); | ||
| return type in this.mapping | ||
| ? this.mapping[type](value, map) | ||
| : (value === null || value === void 0 ? void 0 : value.toString()) || 'undefined'; | ||
| } | ||
| } | ||
| const types = new TypeMapper({ | ||
| date: (value) => value instanceof Date, | ||
@@ -17,3 +35,3 @@ regexp: (value) => value instanceof RegExp, | ||
| }); | ||
| const stringifier = new ValueMapper_1.ValueMapper(types, { | ||
| const stringifier = new ValueMapper(types, { | ||
| string: (value) => value ? `"${value}"` : 'EmptyString', | ||
@@ -48,4 +66,9 @@ date: (value, map) => map(value.toISOString()), | ||
| const stringify = (value) => stringifier.map(value); | ||
| exports.TypeMapper = TypeMapper; | ||
| exports.ValueMapper = ValueMapper; | ||
| exports.stringify = stringify; | ||
| })(); | ||
| return exports; | ||
| })({}); |
@@ -1,1 +0,1 @@ | ||
| !function(){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.stringify=void 0;const e=require("tslib"),r=require("./Domain/Mapper/TypeMapper"),n=require("./Domain/Mapper/ValueMapper");e.__exportStar(require("./Domain/Mapper/TypeMapper"),exports),e.__exportStar(require("./Domain/Mapper/ValueMapper"),exports);const t=new r.TypeMapper({date:e=>e instanceof Date,regexp:e=>e instanceof RegExp,array:e=>Array.isArray(e),null:e=>null===e}),a=new n.ValueMapper(t,{string:e=>e?`"${e}"`:"EmptyString",date:(e,r)=>r(e.toISOString()),object:(e,r)=>{const n=String(e);if(/^\[([a-z]+) \1\]$/i.test(n)){return`{${Object.keys(e).map((n=>`${n}:${r(e[n])}`)).join(",")}}`}return n},array:(e,r)=>`[${e.map(r).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:e=>{const{constructor:{name:r},name:n}=e,[,t,a,o]=r.match(/^(async)?(generator)?(function)$/i),[,i,p]=e.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!i||n||p?[]:"anonymous").concat(n&&!i&&p?"shorthand":[]).concat(t||[],a||[]).concat(i||p?[]:"arrow").concat(i||o).map((e=>e[0].toUpperCase()+e.slice(1))).join("")].concat(n||[]).join(" ")}});exports.stringify=e=>a.map(e)}(); | ||
| var Stringify=function(n){"use strict";class t{constructor(n={}){this.mapping=Object.keys(n).map((t=>a=>n[t](a)?t:void 0)).concat((n=>typeof n))}map(n){return this.mapping.reduce(((t,a)=>t||a(n)),void 0)}}class a{constructor(n=new t,a={}){this.types=n,this.mapping=a}map(n){const t=this.types.map(n);return t in this.mapping?this.mapping[t](n,(n=>this.map(n))):(null==n?void 0:n.toString())||"undefined"}}const i=new a(new t({date:n=>n instanceof Date,regexp:n=>n instanceof RegExp,array:n=>Array.isArray(n),null:n=>null===n}),{string:n=>n?`"${n}"`:"EmptyString",date:(n,t)=>t(n.toISOString()),object:(n,t)=>{const a=String(n);if(/^\[([a-z]+) \1\]$/i.test(a)){return`{${Object.keys(n).map((a=>`${a}:${t(n[a])}`)).join(",")}}`}return a},array:(n,t)=>`[${n.map(t).join(",")}]`,null:()=>"NULL",undefined:()=>"Undefined",function:n=>{const{constructor:{name:t},name:a}=n,[,i,e,r]=t.match(/^(async)?(generator)?(function)$/i),[,c,s]=n.toString().match(/^(?:async)?(?:[\s\*]+)?(class|function)?(?:[\s\*]+)?([a-z_]\w*)?\s*[\(\{]?/i);return[[].concat(!c||a||s?[]:"anonymous").concat(a&&!c&&s?"shorthand":[]).concat(i||[],e||[]).concat(c||s?[]:"arrow").concat(c||r).map((n=>n[0].toUpperCase()+n.slice(1))).join("")].concat(a||[]).join(" ")}});return n.TypeMapper=t,n.ValueMapper=a,n.stringify=n=>i.map(n),n}({}); |
+1
-1
| { | ||
| "name": "@konfirm/stringify", | ||
| "version": "1.0.3", | ||
| "version": "1.0.4", | ||
| "description": "Create a string representation of any value", | ||
@@ -5,0 +5,0 @@ "iife": "dist/stringify.js", |
+1
-2
@@ -8,4 +8,3 @@ { | ||
| "esModuleInterop": true, | ||
| "moduleResolution": "NodeNext", | ||
| "module": "NodeNext", | ||
| "moduleResolution": "Node", | ||
| "outDir": "dist/", | ||
@@ -12,0 +11,0 @@ "target": "ES2018" |
43883
4.05%567
10.1%