From e11cf5a57d824b1f1ad74afe35d48078d130bbda Mon Sep 17 00:00:00 2001 From: William Buss Date: Fri, 24 Feb 2017 17:16:56 +0000 Subject: [PATCH] Change library type to umd and fully support ES6 module configuration --- dist/JSONBigNumber.min.js | 2 +- package.json | 4 ++-- src/JSONBigNumber.js | 7 ++++++- webpack.config.js | 9 +++++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dist/JSONBigNumber.min.js b/dist/JSONBigNumber.min.js index dc5dcf8..6655cb4 100644 --- a/dist/JSONBigNumber.min.js +++ b/dist/JSONBigNumber.min.js @@ -1 +1 @@ -JSONBigNumber=function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=1)}([function(t,e){t.exports=BigNumber},function(t,e,r){"use strict";function n(t){return t<10?"0"+t:t}function o(){return this.valueOf()}function u(t){return l.lastIndex=0,l.test(t)?'"'+t.replace(l,function(t){var e=g[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function i(t,e){var r,n,o,f,c,a=p,l=e[t],g=null!=l&&(l instanceof s.a||l.isBigNumber);switch(g&&!l.isFinite()&&(l=null),l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(t)),"function"==typeof b&&(l=b.call(e,t,l)),typeof l){case"string":return g?l:u(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(p+=y,c=[],"[object Array]"===Object.prototype.toString.apply(l)){for(f=l.length,r=0;r="0"&&d<="9";)e+=d,m();if("."===d)for(e+=".";m()&&d>="0"&&d<="9";)e+=d;if("e"===d||"E"===d)for(e+=d,m(),"-"!==d&&"+"!==d||(e+=d,m());d>="0"&&d<="9";)e+=d,m();return t=new s.a(e),t.isFinite()?t:void S("Bad number")},x=function(){var t,e,r,n="";if('"'===d)for(;m();){if('"'===d)return m(),n;if("\\"===d)if(m(),"u"===d){for(r=0,e=0;e<4&&(t=parseInt(m(),16),isFinite(t));e+=1)r=16*r+t;n+=String.fromCharCode(r)}else{if("string"!=typeof j[d])break;n+=j[d]}else n+=d}S("Bad string")},w=function(){for(;d&&d<=" ";)m()},C=function(){switch(d){case"t":return m("t"),m("r"),m("u"),m("e"),!0;case"f":return m("f"),m("a"),m("l"),m("s"),m("e"),!1;case"n":return m("n"),m("u"),m("l"),m("l"),null}S("Unexpected '"+d+"'")},J=function(){var t=[];if("["===d){if(m("["),w(),"]"===d)return m("]"),t;for(;d;){if(t.push(v()),w(),"]"===d)return m("]"),t;m(","),w()}}S("Bad array")},B=function(){var t,e={};if("{"===d){if(m("{"),w(),"}"===d)return m("}"),e;for(;d;){if(t=x(),w(),m(":"),Object.hasOwnProperty.call(e,t)&&S("Duplicate key '"+t+"'"),e[t]=v(),w(),"}"===d)return m("}"),e;m(","),w()}}S("Bad object")};v=function(){switch(w(),d){case"{":return B();case"[":return J();case'"':return x();case"-":return N();default:return d>="0"&&d<="9"?N():C()}}}]); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("bignumber.js")):"function"==typeof define&&define.amd?define(["bignumber.js"],e):"object"==typeof exports?exports.JSONBigNumber=e(require("bignumber.js")):t.JSONBigNumber=e(t.BigNumber)}(this,function(t){return function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.i=function(t){return t},e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=1)}([function(e,r){e.exports=t},function(t,e,r){"use strict";function n(t){return t<10?"0"+t:t}function o(){return this.valueOf()}function u(t){return p.lastIndex=0,p.test(t)?'"'+t.replace(p,function(t){var e=b[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function i(t,e){var r,n,o,f,c,a=l,p=e[t],b=null!=p&&(p instanceof s.a||p.isBigNumber);switch(b&&!p.isFinite()&&(p=null),p&&"object"==typeof p&&"function"==typeof p.toJSON&&(p=p.toJSON(t)),"function"==typeof g&&(p=g.call(e,t,p)),typeof p){case"string":return b?p:u(p);case"number":return isFinite(p)?String(p):"null";case"boolean":case"null":return String(p);case"object":if(!p)return"null";if(l+=y,c=[],"[object Array]"===Object.prototype.toString.apply(p)){for(f=p.length,r=0;r="0"&&h<="9";)e+=h,S();if("."===h)for(e+=".";S()&&h>="0"&&h<="9";)e+=h;if("e"===h||"E"===h)for(e+=h,S(),"-"!==h&&"+"!==h||(e+=h,S());h>="0"&&h<="9";)e+=h,S();return t=new s.a(e),t.isFinite()?t:void m("Bad number")},N=function(){var t,e,r,n="";if('"'===h)for(;S();){if('"'===h)return S(),n;if("\\"===h)if(S(),"u"===h){for(r=0,e=0;e<4&&(t=parseInt(S(),16),isFinite(t));e+=1)r=16*r+t;n+=String.fromCharCode(r)}else{if("string"!=typeof v[h])break;n+=v[h]}else n+=h}m("Bad string")},w=function(){for(;h&&h<=" ";)S()},J=function(){switch(h){case"t":return S("t"),S("r"),S("u"),S("e"),!0;case"f":return S("f"),S("a"),S("l"),S("s"),S("e"),!1;case"n":return S("n"),S("u"),S("l"),S("l"),null}m("Unexpected '"+h+"'")},B=function(){var t=[];if("["===h){if(S("["),w(),"]"===h)return S("]"),t;for(;h;){if(t.push(O()),w(),"]"===h)return S("]"),t;S(","),w()}}m("Bad array")},C=function(){var t,e={};if("{"===h){if(S("{"),w(),"}"===h)return S("}"),e;for(;h;){if(t=N(),w(),S(":"),Object.hasOwnProperty.call(e,t)&&m("Duplicate key '"+t+"'"),e[t]=O(),w(),"}"===h)return S("}"),e;S(","),w()}}m("Bad object")};O=function(){switch(w(),h){case"{":return C();case"[":return B();case'"':return N();case"-":return x();default:return h>="0"&&h<="9"?x():J()}},e.default={parse:c,stringify:f}}])}); \ No newline at end of file diff --git a/package.json b/package.json index 97c8dc3..d31dc64 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "json-bignumber", - "version": "0.1.2", - "module": "dist/JSONBigNumber.min.js", + "version": "0.2.0", + "module": "src/JSONBigNumber.js", "main": "dist/JSONBigNumber.min.js", "scripts": { "build": "webpack --colors", diff --git a/src/JSONBigNumber.js b/src/JSONBigNumber.js index af20435..9e73823 100644 --- a/src/JSONBigNumber.js +++ b/src/JSONBigNumber.js @@ -144,7 +144,7 @@ test, toJSON, toString, valueOf */ -import BigNumber from "BigNumber"; +import BigNumber from "bignumber.js"; var rx_escapable = /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; @@ -698,3 +698,8 @@ export function parse(source, reviver) { }({"": result}, "")) : result; } + +export default { + parse: parse, + stringify: stringify +}; diff --git a/webpack.config.js b/webpack.config.js index 7df1352..7451ea1 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -7,10 +7,15 @@ module.exports = { filename: "JSONBigNumber.min.js", path: path.resolve(__dirname, "dist"), library: "JSONBigNumber", - libraryTarget: "assign" + libraryTarget: "umd" }, externals: { - "BigNumber": "BigNumber" + "bignumber.js" : { + commonjs: "bignumber.js", + commonjs2: "bignumber.js", + amd: "bignumber.js", + root: "BigNumber" + } }, plugins: [ new webpack.optimize.UglifyJsPlugin()