mirror of
https://github.com/twentyhq/twenty
synced 2026-04-21 13:37:22 +00:00
- Moves twenty-cli content into twenty-sdk - add a new twenty-sdk:0.1.0 version - this new twenty-sdk exports a cli command called 'twenty' (like twenty-cli before) - deprecates twenty-cli - simplify app init command base-project - use `twenty-sdk:0.1.0` in base project - move the "twenty-sdk/application" barrel to "twenty-sdk" - add `create-twenty-app` package <img width="1512" height="919" alt="image" src="https://github.com/user-attachments/assets/007bef45-4e71-419a-9213-cebed376adbf" /> <img width="1506" height="929" alt="image" src="https://github.com/user-attachments/assets/3de2fec6-1624-4923-ae13-f4e1cf165eb5" />
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import { join } from 'path';
|
|
import {
|
|
createProgram,
|
|
formatDiagnosticsWithColorAndContext,
|
|
parseJsonConfigFileContent,
|
|
readConfigFile,
|
|
sys,
|
|
type Program,
|
|
type Diagnostic,
|
|
} from 'typescript';
|
|
|
|
const getProgramFromTsconfig = ({
|
|
appPath,
|
|
tsconfigPath = 'tsconfig.json',
|
|
}: {
|
|
appPath: string;
|
|
tsconfigPath?: string;
|
|
}) => {
|
|
const configFile = readConfigFile(join(appPath, tsconfigPath), sys.readFile);
|
|
if (configFile.error)
|
|
throw new Error(
|
|
formatDiagnosticsWithColorAndContext([configFile.error], {
|
|
getCanonicalFileName: (f) => f,
|
|
getCurrentDirectory: sys.getCurrentDirectory,
|
|
getNewLine: () => sys.newLine,
|
|
}),
|
|
);
|
|
const parsed = parseJsonConfigFileContent(configFile.config, sys, appPath);
|
|
if (parsed.errors.length) {
|
|
throw new Error(
|
|
formatDiagnosticsWithColorAndContext(parsed.errors, {
|
|
getCanonicalFileName: (f) => f,
|
|
getCurrentDirectory: sys.getCurrentDirectory,
|
|
getNewLine: () => sys.newLine,
|
|
}),
|
|
);
|
|
}
|
|
return createProgram(parsed.fileNames, parsed.options);
|
|
};
|
|
|
|
export const getTsProgramAndDiagnostics = async ({
|
|
appPath,
|
|
}: {
|
|
appPath: string;
|
|
}): Promise<{ program: Program; diagnostics: Diagnostic[] }> => {
|
|
const program = getProgramFromTsconfig({
|
|
appPath,
|
|
tsconfigPath: 'tsconfig.json',
|
|
});
|
|
|
|
return {
|
|
diagnostics: [
|
|
...program.getSyntacticDiagnostics(),
|
|
...program.getSemanticDiagnostics(),
|
|
...program.getGlobalDiagnostics(),
|
|
],
|
|
program,
|
|
};
|
|
};
|