From 887ea5a40f28a41ee20c4d45cfc6bf09643ef778 Mon Sep 17 00:00:00 2001 From: Luis Alvarez Date: Wed, 23 Jun 2021 13:00:57 -0500 Subject: [PATCH] Removed tsconfig.js --- framework/commerce/config.js | 22 ++++++++++++-- tsconfig.js | 58 ------------------------------------ 2 files changed, 19 insertions(+), 61 deletions(-) delete mode 100644 tsconfig.js diff --git a/framework/commerce/config.js b/framework/commerce/config.js index 1ba522a1c..28502a04e 100644 --- a/framework/commerce/config.js +++ b/framework/commerce/config.js @@ -57,11 +57,27 @@ function withCommerceConfig(nextConfig = {}) { // Update paths in `tsconfig.json` to point to the selected provider if (config.commerce.updateTSConfig !== false) { - const staticTsconfigPath = path.join(process.cwd(), 'tsconfig.json') - const tsconfig = require('../../tsconfig.js') + const tsconfigPath = path.join(process.cwd(), 'tsconfig.json') + const tsconfig = require(tsconfigPath) + + tsconfig.compilerOptions.paths['@framework'] = [`framework/${name}`] + tsconfig.compilerOptions.paths['@framework/*'] = [`framework/${name}/*`] + + // When running for production it may be useful to exclude the other providers + // from TS checking + if (process.env.VERCEL) { + const exclude = tsconfig.exclude.filter( + (item) => !item.startsWith('framework/') + ) + + tsconfig.exclude = PROVIDERS.reduce((exclude, current) => { + if (current !== name) exclude.push(`framework/${current}`) + return exclude + }, exclude) + } fs.writeFileSync( - staticTsconfigPath, + tsconfigPath, prettier.format(JSON.stringify(tsconfig), { parser: 'json' }) ) } diff --git a/tsconfig.js b/tsconfig.js deleted file mode 100644 index 06c39616c..000000000 --- a/tsconfig.js +++ /dev/null @@ -1,58 +0,0 @@ -const PROVIDERS = ['bigcommerce', 'shopify', 'swell', 'vendure', 'saleor'] - -function getProviderName() { - return ( - process.env.COMMERCE_PROVIDER || - (process.env.BIGCOMMERCE_STOREFRONT_API_URL - ? 'bigcommerce' - : process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN - ? 'shopify' - : process.env.NEXT_PUBLIC_SWELL_STORE_ID - ? 'swell' - : 'local') - ) -} - -const name = getProviderName() -const EXCLUDED_PROVIDERS = PROVIDERS.filter((p) => p !== name).map( - (p) => `./framework/${p}` -) - -module.exports = { - compilerOptions: { - baseUrl: '.', - target: 'esnext', - lib: ['dom', 'dom.iterable', 'esnext'], - allowJs: true, - skipLibCheck: true, - strict: true, - forceConsistentCasingInFileNames: true, - noEmit: true, - esModuleInterop: true, - module: 'esnext', - moduleResolution: 'node', - resolveJsonModule: true, - isolatedModules: true, - jsx: 'preserve', - incremental: true, - paths: { - '@lib/*': ['lib/*'], - '@utils/*': ['utils/*'], - '@config/*': ['config/*'], - '@assets/*': ['assets/*'], - '@components/*': ['components/*'], - '@commerce': ['framework/commerce'], - '@commerce/*': ['framework/commerce/*'], - // Update paths to point to the selected provider - '@framework': [`framework/${name}`], - '@framework/*': [`framework/${name}/*`], - }, - }, - include: ['next-env.d.ts', '**/*.d.ts', '**/*.ts', '**/*.tsx', '**/*.js'], - exclude: [ - 'node_modules', - // It may be useful to exclude the other providers - // from TS checking - ...EXCLUDED_PROVIDERS, - ], -}