2023-05-22 12:55:46 +00:00
|
|
|
import {
|
|
|
|
|
extractIdentifierInfoFromCode,
|
|
|
|
|
entityRefactorFromCode,
|
|
|
|
|
} from "@shared/ast";
|
2022-09-12 09:15:47 +00:00
|
|
|
|
|
|
|
|
export default class AstService {
|
2022-09-28 17:28:18 +00:00
|
|
|
static async extractIdentifierDataFromScript(
|
2022-09-12 09:15:47 +00:00
|
|
|
script,
|
2022-09-28 17:28:18 +00:00
|
|
|
evalVersion,
|
2023-05-22 12:55:46 +00:00
|
|
|
invalidIdentifiers = {},
|
2022-09-12 09:15:47 +00:00
|
|
|
): Promise<any> {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
try {
|
2022-09-28 17:28:18 +00:00
|
|
|
const identifierInfo = extractIdentifierInfoFromCode(
|
2022-09-12 09:15:47 +00:00
|
|
|
script,
|
2022-09-28 17:28:18 +00:00
|
|
|
evalVersion,
|
2023-05-22 12:55:46 +00:00
|
|
|
invalidIdentifiers,
|
2022-09-12 09:15:47 +00:00
|
|
|
);
|
|
|
|
|
|
2022-09-28 17:28:18 +00:00
|
|
|
resolve(identifierInfo);
|
2022-09-12 09:15:47 +00:00
|
|
|
} catch (err) {
|
|
|
|
|
reject(err);
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-10-18 06:37:06 +00:00
|
|
|
}
|
|
|
|
|
static async entityRefactor(
|
|
|
|
|
script,
|
|
|
|
|
oldName,
|
|
|
|
|
newName,
|
2022-10-26 14:53:06 +00:00
|
|
|
isJSObject,
|
2023-05-22 12:55:46 +00:00
|
|
|
evalVersion,
|
2022-10-18 06:37:06 +00:00
|
|
|
): Promise<any> {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
try {
|
|
|
|
|
const refactoredCode = entityRefactorFromCode(
|
|
|
|
|
script,
|
|
|
|
|
oldName,
|
|
|
|
|
newName,
|
2022-10-26 14:53:06 +00:00
|
|
|
isJSObject,
|
2023-05-22 12:55:46 +00:00
|
|
|
evalVersion,
|
2022-10-18 06:37:06 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
resolve(refactoredCode);
|
|
|
|
|
} catch (err) {
|
|
|
|
|
reject(err);
|
|
|
|
|
}
|
|
|
|
|
});
|
2022-09-12 09:15:47 +00:00
|
|
|
}
|
|
|
|
|
}
|