@autobe/agent
Version:
AI backend server code generator
63 lines (50 loc) • 2.01 kB
text/typescript
export namespace AutoBeRealizeAuthorizationReplaceImport {
export function replaceProviderImport(
actor: string,
content: string,
): string {
let updatedContent = content;
const actorCapitalized =
actor.charAt(0).toUpperCase() + actor.slice(1).toLowerCase();
const nestjsCommonPattern =
/import\s+{\s*[^}]*\s*}\s+from\s+"@nestjs\/common";/g;
const nestjsCommonReplacement =
'import { ForbiddenException, UnauthorizedException } from "@nestjs/common";';
const myGlobalPattern = /import\s+{\s*MyGlobal\s*}\s+from\s+[^;]+;/g;
const myGlobalReplacement = 'import { MyGlobal } from "../../MyGlobal";';
const jwtAuthorizePattern =
/import\s+{\s*jwtAuthorize\s*}\s+from\s+[^;]+;/g;
const jwtAuthorizeReplacement =
'import { jwtAuthorize } from "./jwtAuthorize";';
const payloadPattern = /import\s+{\s*\w*Payload\s*}\s+from\s+[^;]+;/g;
const payloadReplacement = `import { ${actorCapitalized}Payload } from "../../decorators/payload/${actorCapitalized}Payload";`;
updatedContent = updatedContent.replace(
nestjsCommonPattern,
nestjsCommonReplacement,
);
updatedContent = updatedContent.replace(
myGlobalPattern,
myGlobalReplacement,
);
updatedContent = updatedContent.replace(
jwtAuthorizePattern,
jwtAuthorizeReplacement,
);
updatedContent = updatedContent.replace(payloadPattern, payloadReplacement);
return updatedContent;
}
export function replaceDecoratorImport(
actor: string,
content: string,
): string {
let updatedContent = content;
const actorLowercase = actor.toLowerCase();
const authorizePattern = /import\s+{\s*\w*Authorize\s*}\s+from\s+[^;]+;/g;
const authorizeReplacement = `import { ${actorLowercase}Authorize } from "../providers/authorize/${actorLowercase}Authorize";`;
updatedContent = updatedContent.replace(
authorizePattern,
authorizeReplacement,
);
return updatedContent;
}
}