TASK22109: email api contract cleanup and phase21 coverage
This commit is contained in:
@@ -7,13 +7,32 @@ const rootDir = path.resolve(__dirname, "..", "..");
|
||||
const loadModule = (relativePath, injected = {}) => {
|
||||
const filePath = path.join(rootDir, relativePath);
|
||||
let source = fs.readFileSync(filePath, "utf8");
|
||||
const defaultExportNames = [];
|
||||
|
||||
source = source.replace(/import[\s\S]*?from\s+"[^"]+";\n?/g, "");
|
||||
source = source.replace(/export const\s+/g, "const ");
|
||||
source = source.replace(
|
||||
/export default\s+(\w+);/g,
|
||||
"module.exports.default = $1;"
|
||||
/export default async function\s+(\w+)\s*\(/g,
|
||||
(match, name) => {
|
||||
defaultExportNames.push(name);
|
||||
return `async function ${name}(`;
|
||||
}
|
||||
);
|
||||
source = source.replace(
|
||||
/export default function\s+(\w+)\s*\(/g,
|
||||
(match, name) => {
|
||||
defaultExportNames.push(name);
|
||||
return `function ${name}(`;
|
||||
}
|
||||
);
|
||||
source = source.replace(/export const\s+/g, "const ");
|
||||
source = source.replace(/export default\s+(\w+);/g, (match, name) => {
|
||||
defaultExportNames.push(name);
|
||||
return `module.exports.default = ${name};`;
|
||||
});
|
||||
|
||||
defaultExportNames.forEach((name) => {
|
||||
source += `\nif (typeof ${name} !== "undefined" && !module.exports.default) module.exports.default = ${name};\n`;
|
||||
});
|
||||
|
||||
source +=
|
||||
'\nif (typeof respondSuccess !== "undefined") module.exports.respondSuccess = respondSuccess;\n';
|
||||
|
||||
Reference in New Issue
Block a user