feat: initialize product-site app with Next.js, i18n routing, and custom brand configurations

This commit is contained in:
Firman Ramdhani
2026-07-29 15:29:35 +07:00
parent fcea8f221b
commit eb63a48047
32 changed files with 5829 additions and 196 deletions
+61
View File
@@ -0,0 +1,61 @@
const { resolve } = require("node:path");
const project = resolve(process.cwd(), "tsconfig.json");
/*
* This is a custom ESLint configuration for use with
* Next.js apps.
*
* This config extends the Vercel Engineering Style Guide.
* For more information, see https://github.com/vercel/style-guide
*
*/
module.exports = {
extends: [
...[
"@vercel/style-guide/eslint/node",
"@vercel/style-guide/eslint/typescript",
"@vercel/style-guide/eslint/browser",
"@vercel/style-guide/eslint/react",
"@vercel/style-guide/eslint/next",
].map(require.resolve),
"turbo",
],
parserOptions: {
project,
},
globals: {
React: true,
JSX: true,
},
settings: {
"import/resolver": {
typescript: {
project,
},
node: {
extensions: [".mjs", ".js", ".jsx", ".ts", ".tsx"],
},
},
},
ignorePatterns: ["node_modules/", "dist/"],
// add rules configurations here
rules: {
"import/no-default-export": "off",
"unicorn/filename-case": "off",
"react/jsx-sort-props": "off",
"import/order": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/no-unsafe-call": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/require-await": "off",
"react/no-unescaped-entities": "off",
"react/display-name": "off",
"@next/next/no-img-element": "off",
"@typescript-eslint/no-misused-promises": "off"
},
};
+21
View File
@@ -0,0 +1,21 @@
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";
export const nextjsConfig = [
...nextVitals,
...nextTs,
{
ignores: [
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]
},
{
rules: {
"@typescript-eslint/no-explicit-any": "off",
"@next/next/no-img-element": "off"
}
}
];
+3 -1
View File
@@ -6,7 +6,9 @@
"index.js",
"library.js",
"react.js",
"storybook.js"
"storybook.js",
"nextjs.js",
"nextjs.mjs"
],
"dependencies": {
"@typescript-eslint/eslint-plugin": "^7.1.0",