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

exports can be detected in hashbang #70

Closed
magic-akari opened this issue Jun 27, 2022 · 0 comments
Closed

exports can be detected in hashbang #70

magic-akari opened this issue Jun 27, 2022 · 0 comments

Comments

@magic-akari
Copy link

const { parse } = require("cjs-module-lexer")

const { exports: x } = parse(`
#! exports.x = exports.y = void 0;
`);
console.log(x); // ["x", "y"]

For esbuild style exports, I'm looking for a way to get the lexer to recognize it. So I found this method.

#! exports.x = exports.y = exports.foo = exports.bar = void 0;
"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);
var foo_exports = {};
__export(foo_exports, {
  bar: () => bar,
  foo: () => foo,
  x: () => x,
  y: () => y
});
module.exports = __toCommonJS(foo_exports);
let x = 1n;
const y = 2n;
function foo() {
  x++;
}
function bar() {
  return x;
}
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

1 participant