Skip to content

Commit

Permalink
Minify npm polyfills
Browse files Browse the repository at this point in the history
  • Loading branch information
ije committed Jun 27, 2024
1 parent 736cdf6 commit 71c27da
Show file tree
Hide file tree
Showing 23 changed files with 28 additions and 25 deletions.
3 changes: 3 additions & 0 deletions server/build_resolver.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package server

import (
"bytes"
"crypto/sha1"
"encoding/base64"
"encoding/hex"
Expand Down Expand Up @@ -784,6 +785,8 @@ func (ctx *BuildContext) resolveExternalModule(specifier string, kind api.Resolv
} else {
data, err := embedFS.ReadFile(("server/embed/polyfills/npm_" + specifier + ".js"))
if err == nil {
data = bytes.ReplaceAll(data, []byte{';', '\n'}, []byte{';'})
data = bytes.TrimSuffix(data, []byte{';'})
resolvedPath = fmt.Sprintf("data:text/javascript;base64,%s", base64.StdEncoding.EncodeToString(data))
return
}
Expand Down
4 changes: 2 additions & 2 deletions server/embed/polyfills/npm_abort-controller.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export const AbortSignal = globalThis.AbortSignal;
export const AbortController = globalThis.AbortController;
export const AbortSignal=globalThis.AbortSignal;
export const AbortController=globalThis.AbortController;
export default AbortController;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_array-every.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export const every = (a, p, t) => a.every(p, t);
export const every=(a,p,t)=>a.every(p,t);
export default every;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_array-flatten.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export const flatten = (a, d) => a.flat(typeof d < "u" ? d : Infinity);
export const flatten=(a,d)=>a.flat(typeof d<"u"?d:Infinity);
export default flatten;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_array-includes.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (a, p, i) => a.includes(p, i);
export default (a,p,i)=>a.includes(p,i);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_array.prototype.find.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (a, predicate, thisArg) => a.find(predicate, thisArg);
export default (a,p,t)=>a.find(p,t);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_filter-array.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (a, predicate, thisArg) => a.filter(predicate, thisArg);
export default (a,p,t)=>a.filter(p,t);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_has-own-prop.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);
export default (obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_has-own.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default Object.hasOwn ?? ((o, p) => Object.prototype.hasOwnProperty.call(o, p));
export default Object.hasOwn??((o,p)=>Object.prototype.hasOwnProperty.call(o,p));
6 changes: 3 additions & 3 deletions server/embed/polyfills/npm_has-proto.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
const foo = { bar: {} };
const O = Object;
export default () => ({ __proto__: foo }).bar === foo.bar && !({ __proto__: null } instanceof O);
const foo={bar:{}};
const O=Object;
export default ()=>({__proto__:foo}).bar===foo.bar&&!({__proto__:null}instanceof O);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_has-symbols.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default () => true;
export default ()=>true;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_has-tostringtag.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default () => typeof Symbol.toStringTag === "symbol";
export default ()=>typeof Symbol.toStringTag==="symbol";
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_hasown.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default Object.hasOwn ?? ((o, p) => Object.prototype.hasOwnProperty.call(o, p));
export default Object.hasOwn??((o,p)=>Object.prototype.hasOwnProperty.call(o,p));
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_index-of.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (a, searchElement, start) => a.indexOf(searchElement, start);
export default (a,el,i)=>a.indexOf(el,i);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_is-even.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (n) => (n % 2) === 0;
export default n=>(n%2)===0;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_is-number.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (v) => typeof v === "number";
export default v=>typeof v==="number";
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_is-odd.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (n) => (n % 2) === 1;
export default n=>(n%2)===1;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_is-regexp.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (v) => v instanceof RegExp;
export default v=>v instanceof RegExp;
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_is-string.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (v) => typeof v === "string";
export default v=>typeof v==="string";
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_left-pad.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (s, l, c) => s.padStart(l, c);
export default (s,l,c)=>s.padStart(l,c);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_pad-left.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (s, l, c) => s.padStart(l, c);
export default (s,l,c)=>s.padStart(l,c);
2 changes: 1 addition & 1 deletion server/embed/polyfills/npm_regexp.prototype.flags.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export default (reg) => reg.flags;
export default r=>r.flags;
2 changes: 1 addition & 1 deletion test/esm-worker/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ Deno.test("esm-worker", { sanitizeOps: false, sanitizeResources: false }, async
assertEquals(res7.status, 200);
assertStringIncludes(
await res7.text(),
`"data:text/javascript;base64,ZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmFzc2lnbjsK"`,
`"data:text/javascript;base64,ZXhwb3J0IGRlZmF1bHQgT2JqZWN0LmFzc2lnbg=="`,
);

const res8 = await fetch(`${workerOrigin}/[email protected]?external=react`);
Expand Down

0 comments on commit 71c27da

Please sign in to comment.