flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
40 lines (36 loc) • 1.29 kB
JavaScript
var getJsType = require('./get-js-type.cjs');
function wrapDefaultExport(content, withFunction) {
const { isCJS, isESM } = getJsType.getJsType(content);
if (!isCJS && !isESM) {
return content;
}
let wrappedContent = content;
if (isESM) {
const esmMatch = content.match(/export\s+default\s+(?:class|interface|abstract\s+class)\s+/);
if (!esmMatch) {
wrappedContent = wrappedContent.replace(
/(export\s+default\s+)([^;\n]+(?:{[^}]*})?[^;\n]*)(;?\s*)$/gm,
(_, prefix, exportValue, semicolon) => {
const trimmedValue = exportValue.trim();
return `${prefix}${withFunction}(${trimmedValue})${semicolon}`;
}
);
}
}
if (isCJS) {
const cjsMatch = content.match(/module\.exports\s*=\s*(?:class|interface|abstract\s+class)\s+/);
if (!cjsMatch) {
wrappedContent = wrappedContent.replace(
/(module\.exports\s*=\s*)([^;\n]+(?:{[^}]*})?[^;\n]*)(;?\s*)$/gm,
(_, prefix, exportValue, semicolon) => {
const trimmedValue = exportValue.trim();
return `${prefix}${withFunction}(${trimmedValue})${semicolon}`;
}
);
}
}
return wrappedContent;
}
exports.wrapDefaultExport = wrapDefaultExport;
//# sourceMappingURL=wrap-default-export.cjs.map
;