Skip to content

Commit

Permalink
fixed biome scripts and created addPackageScript function
Browse files Browse the repository at this point in the history
  • Loading branch information
aidansunbury committed Nov 15, 2024
1 parent 2c1f7f1 commit cbad9bc
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 58 deletions.
20 changes: 8 additions & 12 deletions cli/src/installers/biome.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import path from "path";
import fs from "fs-extra";
import { type PackageJson } from "type-fest";

import { PKG_ROOT } from "~/consts.js";
import { type Installer } from "~/installers/index.js";
import { addPackageDependency } from "~/utils/addPackageDependency.js";
import { addPackageScript } from "~/utils/addPackageScript.js";

export const biomeInstaller: Installer = ({ projectDir }) => {
addPackageDependency({
Expand All @@ -19,16 +19,12 @@ export const biomeInstaller: Installer = ({ projectDir }) => {

fs.copySync(biomeConfigSrc, biomeConfigDest);

// add format:* scripts to package.json
const packageJsonPath = path.join(projectDir, "package.json");
const packageJsonContent = fs.readJSONSync(packageJsonPath) as PackageJson;
packageJsonContent.scripts = {
...packageJsonContent.scripts,
"format:write": 'biome format --write "**/*.{ts,tsx,js,jsx,mdx}"',
"format:check": 'biome format --check "**/*.{ts,tsx,js,jsx,mdx}"',
};

fs.writeJSONSync(packageJsonPath, packageJsonContent, {
spaces: 2,
addPackageScript({
projectDir,
scripts: {
"format:unsafe": "biome check --write --unsafe .",
"format:write": "biome check --write .",
"format:check": "biome check .",
},
});
};
25 changes: 10 additions & 15 deletions cli/src/installers/drizzle.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import path from "path";
import fs from "fs-extra";
import { type PackageJson } from "type-fest";

import { PKG_ROOT } from "~/consts.js";
import { type Installer } from "~/installers/index.js";
import { addPackageDependency } from "~/utils/addPackageDependency.js";
import { addPackageScript } from "~/utils/addPackageScript.js";

export const drizzleInstaller: Installer = ({
projectDir,
Expand Down Expand Up @@ -69,24 +69,19 @@ export const drizzleInstaller: Installer = ({
);
const clientDest = path.join(projectDir, "src/server/db/index.ts");

// add db:* scripts to package.json
const packageJsonPath = path.join(projectDir, "package.json");

const packageJsonContent = fs.readJSONSync(packageJsonPath) as PackageJson;
packageJsonContent.scripts = {
...packageJsonContent.scripts,
"db:push": "drizzle-kit push",
"db:studio": "drizzle-kit studio",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
};
addPackageScript({
projectDir,
scripts: {
"db:push": "drizzle-kit push",
"db:studio": "drizzle-kit studio",
"db:generate": "drizzle-kit generate",
"db:migrate": "drizzle-kit migrate",
},
});

fs.copySync(configFile, configDest);
fs.mkdirSync(path.dirname(schemaDest), { recursive: true });
fs.writeFileSync(schemaDest, schemaContent);
fs.writeFileSync(configDest, configContent);
fs.copySync(clientSrc, clientDest);
fs.writeJSONSync(packageJsonPath, packageJsonContent, {
spaces: 2,
});
};
22 changes: 10 additions & 12 deletions cli/src/installers/eslint.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import path from "path";
import fs from "fs-extra";
import { type PackageJson } from "type-fest";

import { _initialConfig } from "~/../template/extras/config/_eslint.js";
import { PKG_ROOT } from "~/consts.js";
import { type Installer } from "~/installers/index.js";
import { addPackageDependency } from "~/utils/addPackageDependency.js";
import { addPackageScript } from "~/utils/addPackageScript.js";
import { type AvailableDependencies } from "./dependencyVersionMap.js";

// Also installs prettier
Expand Down Expand Up @@ -44,17 +44,15 @@ export const dynamicEslintInstaller: Installer = ({ projectDir, packages }) => {

fs.copySync(prettierSrc, prettierDest);

// add format:* scripts to package.json
const packageJsonPath = path.join(projectDir, "package.json");
const packageJsonContent = fs.readJSONSync(packageJsonPath) as PackageJson;
packageJsonContent.scripts = {
...packageJsonContent.scripts,
"format:write": 'prettier --write "**/*.{ts,tsx,js,jsx,mdx}" --cache',
"format:check": 'prettier --check "**/*.{ts,tsx,js,jsx,mdx}" --cache',
};

fs.writeJSONSync(packageJsonPath, packageJsonContent, {
spaces: 2,
addPackageScript({
projectDir,
scripts: {
lint: "next lint",
"lint:fix": "next lint --fix",
check: "next lint && tsc --noEmit",
"format:write": 'prettier --write "**/*.{ts,tsx,js,jsx,mdx}" --cache',
"format:check": 'prettier --check "**/*.{ts,tsx,js,jsx,mdx}" --cache',
},
});

// eslint
Expand Down
27 changes: 11 additions & 16 deletions cli/src/installers/prisma.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import path from "path";
import fs from "fs-extra";
import { type PackageJson } from "type-fest";

import { PKG_ROOT } from "~/consts.js";
import { type Installer } from "~/installers/index.js";
import { addPackageDependency } from "~/utils/addPackageDependency.js";
import { addPackageScript } from "~/utils/addPackageScript.js";

export const prismaInstaller: Installer = ({
projectDir,
Expand Down Expand Up @@ -65,21 +65,16 @@ export const prismaInstaller: Installer = ({
);
const clientDest = path.join(projectDir, "src/server/db.ts");

// add postinstall and push script to package.json
const packageJsonPath = path.join(projectDir, "package.json");

const packageJsonContent = fs.readJSONSync(packageJsonPath) as PackageJson;
packageJsonContent.scripts = {
...packageJsonContent.scripts,
postinstall: "prisma generate",
"db:push": "prisma db push",
"db:studio": "prisma studio",
"db:generate": "prisma migrate dev",
"db:migrate": "prisma migrate deploy",
};
addPackageScript({
projectDir,
scripts: {
postinstall: "prisma generate",
"db:push": "prisma db push",
"db:studio": "prisma studio",
"db:generate": "prisma migrate dev",
"db:migrate": "prisma migrate deploy",
},
});

fs.copySync(clientSrc, clientDest);
fs.writeJSONSync(packageJsonPath, packageJsonContent, {
spaces: 2,
});
};
25 changes: 25 additions & 0 deletions cli/src/utils/addPackageScript.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import path from "path";
import fs from "fs-extra";
import sortPackageJson from "sort-package-json";
import { type PackageJson } from "type-fest";

export const addPackageScript = (opts: {
scripts: Record<string, string>;
projectDir: string;
}) => {
const { scripts, projectDir } = opts;

const packageJsonPath = path.join(projectDir, "package.json");
const packageJsonContent = fs.readJSONSync(packageJsonPath) as PackageJson;

packageJsonContent.scripts = {
...packageJsonContent.scripts,
...scripts,
};

const sortedPkgJson = sortPackageJson(packageJsonContent);

fs.writeJSONSync(packageJsonPath, sortedPkgJson, {
spaces: 2,
});
};
3 changes: 0 additions & 3 deletions cli/template/base/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
"dev": "next dev --turbo",
"build": "next build",
"start": "next start",
"lint": "next lint",
"lint:fix": "next lint --fix",
"check": "next lint && tsc --noEmit",
"preview": "next build && next start",
"typecheck": "tsc --noEmit"
},
Expand Down

0 comments on commit cbad9bc

Please sign in to comment.