Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added typechecking for all ts files #6466

Merged
merged 13 commits into from
Aug 20, 2024
2 changes: 1 addition & 1 deletion nx.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
"start": {
"cache": true,
"dependsOn": ["^build"]
"dependsOn": ["^typecheck","^build"]
},
"lint": {
"executor": "@nx/eslint:lint",
Expand Down
6 changes: 6 additions & 0 deletions packages/twenty-front/project.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@
"outputPath": "{projectRoot}/build"
}
},
"serve": {
"executor": "nx:run-commands",
"options": {
"command": "npx serve -s {projectRoot}/build"
}
},
"start": {
"executor": "@nx/vite:dev-server",
"options": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const meta: Meta<typeof Status> = {
component: Status,
args: {
text: 'Urgent',
weight: 'medium',
},
};

Expand Down
4 changes: 0 additions & 4 deletions packages/twenty-front/src/utils/__tests__/title-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ describe('title-utils', () => {
expect(getPageTitleFromPath('/invite/:workspaceInviteHash')).toBe('Invite');
expect(getPageTitleFromPath('/create/workspace')).toBe('Create Workspace');
expect(getPageTitleFromPath('/create/profile')).toBe('Create Profile');
expect(getPageTitleFromPath('/tasks')).toBe('Tasks');
expect(getPageTitleFromPath('/objects/opportunities')).toBe(
'Opportunities',
);
expect(getPageTitleFromPath('/settings/objects/opportunities')).toBe(
SettingsPageTitles.Objects,
);
Expand Down
13 changes: 13 additions & 0 deletions packages/twenty-front/tsconfig.dev.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"types": ["node"]
},
"include": [
"src/**/*.js",
"src/**/*.jsx",
"src/**/*.d.ts",
"src/**/*.ts",
"src/**/*.tsx"
]
}
7 changes: 5 additions & 2 deletions packages/twenty-front/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,10 @@
"include": [],
"references": [
{
"path": "./tsconfig.app.json"
"path": "./tsconfig.dev.json"
},
{
"path": "./tsconfig.build.json"
},
{
"path": "./tsconfig.spec.json"
Expand All @@ -42,4 +45,4 @@
}
],
"extends": "../../tsconfig.base.json"
}
}
6 changes: 5 additions & 1 deletion packages/twenty-front/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,13 @@ export default defineConfig(({ command, mode }) => {

const isBuildCommand = command === 'build';

const tsConfigPath = isBuildCommand
? path.resolve(__dirname, './tsconfig.build.json')
: path.resolve(__dirname, './tsconfig.dev.json');

const checkers: Checkers = {
typescript: {
tsconfigPath: path.resolve(__dirname, './tsconfig.app.json'),
tsconfigPath: tsConfigPath,
},
overlay: false,
};
Expand Down
15 changes: 15 additions & 0 deletions packages/twenty-ui/.storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { StorybookConfig } from '@storybook/react-vite';
import * as path from 'path';
import checker from 'vite-plugin-checker';

const config: StorybookConfig = {
stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
Expand All @@ -16,6 +18,19 @@ const config: StorybookConfig = {
name: '@storybook/react-vite',
options: {},
},
viteFinal: (config) => {
return {
...config,
plugins: [
...(config.plugins ?? []),
checker({
typescript: {
tsconfigPath: path.resolve(__dirname, '../tsconfig.dev.json'),
},
}),
],
};
},
};

export default config;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ const meta: Meta<typeof Banner> = {
Sync lost with mailbox [email protected]. Please reconnect for updates:
</Banner>
),
argTypes: {
as: { control: false },
theme: { control: false },
},
argTypes: {},
};

export default meta;
Expand Down
4 changes: 1 addition & 3 deletions packages/twenty-ui/src/utilities/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,4 @@ const getDefaultUrl = () => {
};

export const REACT_APP_SERVER_BASE_URL =
window._env_?.REACT_APP_SERVER_BASE_URL ||
process.env.REACT_APP_SERVER_BASE_URL ||
getDefaultUrl();
window._env_?.REACT_APP_SERVER_BASE_URL || getDefaultUrl();
19 changes: 19 additions & 0 deletions packages/twenty-ui/tsconfig.dev.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "commonjs",
"types": ["jest", "node"]
},
"include": [
"vite.config.ts",
"jest.config.ts",
"setupTests.ts",
"src/**/*.d.ts",
"src/**/*.spec.ts",
"src/**/*.test.ts",
"src/**/*.stories.tsx",
"src/**/*.tsx",
"src/**/*.ts",
"vite.config.ts"
]
}
5 changes: 4 additions & 1 deletion packages/twenty-ui/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
"include": [],
"references": [
{
"path": "./tsconfig.lib.json"
"path": "./tsconfig.build.json"
},
{
"path": "./tsconfig.dev.json"
},
{
"path": "./tsconfig.spec.json"
Expand Down
114 changes: 64 additions & 50 deletions packages/twenty-ui/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,64 +4,78 @@ import wyw from '@wyw-in-js/vite';
import * as path from 'path';
import { defineConfig } from 'vite';
import checker from 'vite-plugin-checker';
import dts from 'vite-plugin-dts';
import dts, { PluginOptions } from 'vite-plugin-dts';
import svgr from 'vite-plugin-svgr';
import tsconfigPaths from 'vite-tsconfig-paths';

import { UserPluginConfig } from 'vite-plugin-checker/dist/esm/types';

// eslint-disable-next-line @nx/enforce-module-boundaries, import/no-relative-packages
import packageJson from '../../package.json';

export default defineConfig({
root: __dirname,
cacheDir: '../../node_modules/.vite/packages/twenty-ui',
export default defineConfig(({ command }) => {
const isBuildCommand = command === 'build';

plugins: [
react({ jsxImportSource: '@emotion/react' }),
tsconfigPaths(),
svgr(),
dts({
entryRoot: 'src',
tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
}),
checker({
typescript: {
tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
},
}),
wyw({
include: [
'**/OverflowingTextWithTooltip.tsx',
'**/Chip.tsx',
'**/Tag.tsx',
'**/Avatar.tsx',
'**/AvatarChip.tsx',
],
babelOptions: {
presets: ['@babel/preset-typescript', '@babel/preset-react'],
},
}),
],
const tsConfigPath = isBuildCommand
? path.resolve(__dirname, './tsconfig.build.json')
: path.resolve(__dirname, './tsconfig.dev.json');

// Configuration for building your library.
// See: https://vitejs.dev/guide/build.html#library-mode
build: {
outDir: './dist',
reportCompressedSize: true,
commonjsOptions: {
transformMixedEsModules: true,
const checkersConfig: UserPluginConfig = {
typescript: {
tsconfigPath: tsConfigPath,
},
lib: {
// Could also be a dictionary or array of multiple entry points.
entry: 'src/index.ts',
name: 'twenty-ui',
fileName: 'index',
// Change this to the formats you want to support.
// Don't forget to update your package.json as well.
formats: ['es', 'cjs'],
},
rollupOptions: {
// External packages that should not be bundled into your library.
external: Object.keys(packageJson.dependencies || {}),
};

const dtsConfig: PluginOptions = {
entryRoot: 'src',
tsconfigPath: tsConfigPath,
};

return {
root: __dirname,
cacheDir: '../../node_modules/.vite/packages/twenty-ui',

plugins: [
react({ jsxImportSource: '@emotion/react' }),
tsconfigPaths(),
svgr(),
dts(dtsConfig),
checker(checkersConfig),
wyw({
include: [
'**/OverflowingTextWithTooltip.tsx',
'**/Chip.tsx',
'**/Tag.tsx',
'**/Avatar.tsx',
'**/AvatarChip.tsx',
],
babelOptions: {
presets: ['@babel/preset-typescript', '@babel/preset-react'],
},
}),
],

// Configuration for building your library.
// See: https://vitejs.dev/guide/build.html#library-mode
build: {
outDir: './dist',
reportCompressedSize: true,
commonjsOptions: {
transformMixedEsModules: true,
},
lib: {
// Could also be a dictionary or array of multiple entry points.
entry: 'src/index.ts',
name: 'twenty-ui',
fileName: 'index',
// Change this to the formats you want to support.
// Don't forget to update your package.json as well.
formats: ['es', 'cjs'],
},
rollupOptions: {
// External packages that should not be bundled into your library.
external: Object.keys(packageJson.dependencies || {}),
},
},
},
};
});
Loading