mirror of
https://github.com/vercel/commerce.git
synced 2025-05-18 07:26:59 +00:00
add a tsconfig.js file
This commit is contained in:
parent
e5d7a143db
commit
de575f7a80
@ -50,27 +50,11 @@ function withCommerceConfig(nextConfig = {}) {
|
|||||||
|
|
||||||
// Update paths in `tsconfig.json` to point to the selected provider
|
// Update paths in `tsconfig.json` to point to the selected provider
|
||||||
if (config.commerce.updateTSConfig !== false) {
|
if (config.commerce.updateTSConfig !== false) {
|
||||||
const tsconfigPath = path.join(process.cwd(), 'tsconfig.json')
|
const staticTsconfigPath = path.join(process.cwd(), 'tsconfig.json')
|
||||||
const tsconfig = require(tsconfigPath)
|
const tsconfig = require('../../tsconfig.js')
|
||||||
|
|
||||||
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(
|
fs.writeFileSync(
|
||||||
tsconfigPath,
|
staticTsconfigPath,
|
||||||
prettier.format(JSON.stringify(tsconfig), { parser: 'json' })
|
prettier.format(JSON.stringify(tsconfig), { parser: 'json' })
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
56
tsconfig.js
Normal file
56
tsconfig.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
const PROVIDERS = ['bigcommerce', 'shopify', 'swell', 'vendure']
|
||||||
|
|
||||||
|
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'
|
||||||
|
: null)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const name = getProviderName()
|
||||||
|
|
||||||
|
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',
|
||||||
|
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',
|
||||||
|
// When running for production it may be useful to exclude the other providers
|
||||||
|
// from TS checking
|
||||||
|
...(process.env.VERCEL
|
||||||
|
? PROVIDERS.filter((p) => p !== name).map((p) => `framework/${p}`)
|
||||||
|
: []),
|
||||||
|
],
|
||||||
|
}
|
@ -27,5 +27,5 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"],
|
"include": ["next-env.d.ts", "**/*.d.ts", "**/*.ts", "**/*.tsx", "**/*.js"],
|
||||||
"exclude": ["node_modules", "framework/swell", "framework/vendure"]
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user