@ungap/template-tag-arguments
Advanced tools
Comparing version 0.2.0 to 0.3.0
99
index.js
@@ -1,26 +0,54 @@ | ||
/*! (c) Andrea Giammarchi - ISC */ | ||
var templateLiteral = (function () {'use strict'; | ||
var RAW = 'raw'; | ||
var templateLiteral = (function (exports) { | ||
'use strict'; | ||
/*! (c) Andrea Giammarchi - ISC */ | ||
var self = null || /* istanbul ignore next */ {}; | ||
try { self.WeakMap = WeakMap; } | ||
catch (WeakMap) { | ||
// this could be better but 90% of the time | ||
// it's everything developers need as fallback | ||
self.WeakMap = (function (id, Object) { var dP = Object.defineProperty; | ||
var hOP = Object.hasOwnProperty; | ||
var proto = WeakMap.prototype; | ||
proto.delete = function (key) { | ||
return this.has(key) && delete key[this._]; | ||
}; | ||
proto.get = function (key) { | ||
return this.has(key) ? key[this._] : void 0; | ||
}; | ||
proto.has = function (key) { | ||
return hOP.call(key, this._); | ||
}; | ||
proto.set = function (key, value) { | ||
dP(key, this._, {configurable: true, value: value}); | ||
return this; | ||
}; | ||
return WeakMap; | ||
function WeakMap(iterable) { | ||
dP(this, '_', {value: '_@ungap/weakmap' + id++}); | ||
if (iterable) | ||
iterable.forEach(add, this); | ||
} | ||
function add(pair) { | ||
this.set(pair[0], pair[1]); | ||
} | ||
}(Math.random(), Object)); | ||
} | ||
var WeakMap$1 = self.WeakMap; | ||
var isNoOp = typeof document !== 'object'; | ||
var isBroken = function (UA) { | ||
var broken = /(Firefox|Safari)\/(\d+)/.exec(UA); | ||
return !!broken && !/(Chrom|Android)\/(\d+)/.test(UA); | ||
/* && ( | ||
(broken[1] === 'Firefox' && (broken[2] < 55) || (broken[2] > 65)) || | ||
(broken[1] === 'Safari' && broken[2] > 539) | ||
); */ | ||
}; | ||
var templateLiteral = function (tl) { | ||
if ( | ||
// for badly transpiled literals | ||
!(RAW in tl) || | ||
// for some version of TypeScript | ||
tl.propertyIsEnumerable(RAW) || | ||
// and some other version of TypeScript | ||
!Object.isFrozen(tl[RAW]) || | ||
// check some messed up browser or version | ||
isBroken((document.defaultView.navigator || {}).userAgent) | ||
) { | ||
var RAW = 'raw'; | ||
var isBroken = function (UA) { | ||
return /(Firefox|Safari)\/(\d+)/.test(UA) && | ||
!/(Chrom|Android)\/(\d+)/.test(UA); | ||
}; | ||
var broken = isBroken((document.defaultView.navigator || {}).userAgent); | ||
var FTS = !(RAW in tl) || | ||
tl.propertyIsEnumerable(RAW) || | ||
!Object.isFrozen(tl[RAW]); | ||
if (broken || FTS) { | ||
var forever = {}; | ||
templateLiteral = function (tl) { | ||
var foreverCache = function (tl) { | ||
for (var key = '.', i = 0; i < tl.length; i++) | ||
@@ -30,2 +58,20 @@ key += tl[i].length + '.' + tl[i]; | ||
}; | ||
// Fallback TypeScript shenanigans | ||
if (FTS) | ||
templateLiteral = foreverCache; | ||
// try fast path for other browsers: | ||
// store the template as WeakMap key | ||
// and forever cache it only when it's not there. | ||
// this way performance is still optimal, | ||
// penalized only when there are GC issues | ||
else { | ||
var wm = new WeakMap$1; | ||
var set = function (tl, unique) { | ||
wm.set(tl, unique); | ||
return unique; | ||
}; | ||
templateLiteral = function (tl) { | ||
return wm.get(tl) || set(tl, foreverCache(tl)); | ||
}; | ||
} | ||
} else { | ||
@@ -36,9 +82,14 @@ isNoOp = true; | ||
}; | ||
return TL; | ||
function TL(tl) { | ||
return isNoOp ? tl : templateLiteral(tl); | ||
} | ||
}()); | ||
return TL; | ||
}({})); | ||
function templateTagArguments(template) { | ||
@@ -45,0 +96,0 @@ var length = arguments.length; |
@@ -1,2 +0,2 @@ | ||
/*! (c) Andrea Giammarchi - ISC */ | ||
var templateLiteral=function(){"use strict";var t="raw",r="object"!=typeof document,u=function(e){if(t in e&&!e.propertyIsEnumerable(t)&&Object.isFrozen(e[t])&&!function(e){return!!/(Firefox|Safari)\/(\d+)/.exec(e)&&!/(Chrom|Android)\/(\d+)/.test(e)}((document.defaultView.navigator||{}).userAgent))r=!0;else{var n={};u=function(e){for(var t=".",r=0;r<e.length;r++)t+=e[r].length+"."+e[r];return n[t]||(n[t]=e)}}return a(e)};return a;function a(e){return r?e:u(e)}}();function templateTagArguments(e){for(var t=arguments.length,r=[templateLiteral(e)],n=1;n<t;)r.push(arguments[n++]);return r} | ||
var templateLiteral=function(){"use strict"; | ||
/*! (c) Andrea Giammarchi - ISC */var e={};try{e.WeakMap=WeakMap}catch(t){e.WeakMap=function(e,t){var r=t.defineProperty,n=t.hasOwnProperty,a=i.prototype;return a.delete=function(t){return this.has(t)&&delete t[this._]},a.get=function(t){return this.has(t)?t[this._]:void 0},a.has=function(t){return n.call(t,this._)},a.set=function(t,e){return r(t,this._,{configurable:!0,value:e}),this},i;function i(t){r(this,"_",{value:"_@ungap/weakmap"+e++}),t&&t.forEach(u,this)}function u(t){this.set(t[0],t[1])}}(Math.random(),Object)}var s=e.WeakMap,c="object"!=typeof document,f=function(t){var e,r="raw",n=(e=(document.defaultView.navigator||{}).userAgent,/(Firefox|Safari)\/(\d+)/.test(e)&&!/(Chrom|Android)\/(\d+)/.test(e)),a=!(r in t)||t.propertyIsEnumerable(r)||!Object.isFrozen(t[r]);if(n||a){var i={},u=function(t){for(var e=".",r=0;r<t.length;r++)e+=t[r].length+"."+t[r];return i[e]||(i[e]=t)};if(a)f=u;else{var o=new s;f=function(t){return o.get(t)||function(t,e){return o.set(t,e),e}(t,u(t))}}}else c=!0;return h(t)};function h(t){return c?t:f(t)}return h}();function templateTagArguments(t){for(var e=arguments.length,r=[templateLiteral(t)],n=1;n<e;)r.push(arguments[n++]);return r} |
{ | ||
"name": "@ungap/template-tag-arguments", | ||
"version": "0.2.0", | ||
"version": "0.3.0", | ||
"description": "Normalizes tagged arguments granting a unique template", | ||
@@ -34,4 +34,4 @@ "main": "cjs/index.js", | ||
"dependencies": { | ||
"@ungap/template-literal": "^0.3.0" | ||
"@ungap/template-literal": "^0.4.0" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7432
110
+ Added@ungap/template-literal@0.4.1(transitive)
+ Added@ungap/weakmap@0.1.4(transitive)
- Removed@ungap/template-literal@0.3.0(transitive)