1858 extensibility create relation metadata decorator in thwenty sdkapplications (#15907)
as title First PR I will update the twenty-cli in another PR
This commit is contained in:
@@ -413,7 +413,7 @@ export const format = async (params: any): Promise<any> => {
|
||||
});
|
||||
|
||||
it('manifest should contains typescript sources', async () => {
|
||||
const { isTwentyClientUsed } = await loadManifest(appDirectory);
|
||||
expect(isTwentyClientUsed).toBe(false);
|
||||
const { shouldGenerate } = await loadManifest(appDirectory);
|
||||
expect(shouldGenerate).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -31,7 +31,6 @@ import {
|
||||
isTemplateExpression,
|
||||
isVariableStatement,
|
||||
isImportDeclaration,
|
||||
NamedImports,
|
||||
} from 'typescript';
|
||||
import {
|
||||
AppManifest,
|
||||
@@ -448,7 +447,7 @@ export const extractTwentyAppConfig = (program: Program): Application => {
|
||||
throw new Error('Could not find default exported ApplicationConfig');
|
||||
};
|
||||
|
||||
const isTwentyClientUsedInProgram = (program: Program): boolean => {
|
||||
const isGeneratedModuleUsedInProgram = (program: Program): boolean => {
|
||||
for (const sf of program.getSourceFiles()) {
|
||||
if (sf.isDeclarationFile) continue;
|
||||
|
||||
@@ -468,24 +467,9 @@ const isTwentyClientUsedInProgram = (program: Program): boolean => {
|
||||
moduleText === GENERATED_FOLDER_NAME ||
|
||||
moduleText.endsWith(`/${GENERATED_FOLDER_NAME}`);
|
||||
|
||||
if (
|
||||
isGeneratedModule &&
|
||||
node.importClause &&
|
||||
node.importClause.namedBindings &&
|
||||
node.importClause.namedBindings.kind === SyntaxKind.NamedImports
|
||||
) {
|
||||
const namedImports = node.importClause
|
||||
.namedBindings as NamedImports;
|
||||
|
||||
for (const element of namedImports.elements) {
|
||||
const importedName =
|
||||
element.propertyName?.text ?? element.name.text;
|
||||
|
||||
if (importedName === 'createClient') {
|
||||
found = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (isGeneratedModule && node.importClause) {
|
||||
found = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -507,7 +491,7 @@ export const loadManifest = async (
|
||||
packageJson: PackageJson;
|
||||
yarnLock: string;
|
||||
manifest: AppManifest;
|
||||
isTwentyClientUsed: boolean;
|
||||
shouldGenerate: boolean;
|
||||
}> => {
|
||||
const packageJson = await parseJsoncFile(
|
||||
await findPathFile(appPath, 'package.json'),
|
||||
@@ -532,7 +516,7 @@ export const loadManifest = async (
|
||||
await loadFolderContentIntoJson(program, appPath),
|
||||
];
|
||||
|
||||
const isTwentyClientUsed = isTwentyClientUsedInProgram(program);
|
||||
const shouldGenerate = isGeneratedModuleUsedInProgram(program);
|
||||
|
||||
return {
|
||||
packageJson,
|
||||
@@ -543,6 +527,6 @@ export const loadManifest = async (
|
||||
serverlessFunctions,
|
||||
sources,
|
||||
},
|
||||
isTwentyClientUsed,
|
||||
shouldGenerate,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user