Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slim down CommonJS runtime code #2448

Open
marvinhagemeister opened this issue Aug 8, 2022 · 1 comment
Open

Slim down CommonJS runtime code #2448

marvinhagemeister opened this issue Aug 8, 2022 · 1 comment

Comments

@marvinhagemeister
Copy link

marvinhagemeister commented Aug 8, 2022

Noticed that esbuild's CommonJS runtime is a bit bigger compared to what tsc generates.

Input:

export const foo = 123;

const bar = 42;
export default bar;

TypeScript tsc --module commonjs --target es2020:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.foo = void 0;
exports.foo = 123;
const bar = 42;
exports.default = bar;

esbuild:

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// src/index.ts
var src_exports = {};
__export(src_exports, {
  default: () => src_default,
  foo: () => foo
});
module.exports = __toCommonJS(src_exports);
var foo = 123;
var bar = 42;
var src_default = bar;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
  foo
});
//# sourceMappingURL=index.js.map
@lukeed
Copy link
Contributor

lukeed commented Aug 8, 2022

Related #1079

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants