mirror of
https://github.com/diced/zipline.git
synced 2025-12-05 20:40:12 -08:00
feat: new scripts system
This commit is contained in:
68
package.json
68
package.json
@@ -4,24 +4,14 @@
|
||||
"license": "MIT",
|
||||
"version": "4.2.3",
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"build:skip": "pnpm run --stream build:prisma && pnpm run --stream build:server && pnpm run --stream build:client",
|
||||
"build": "pnpm run --stream lint && pnpm run --stream build:prisma && pnpm run --stream build:types && pnpm run --stream build:server && pnpm run --stream build:client",
|
||||
"build:types": "tsc",
|
||||
"build:prisma": "prisma generate --no-hints",
|
||||
"build:server": "tsup",
|
||||
"build:client": "vite build && pnpm run --stream \"/^build-ssr:.*/\"",
|
||||
"build-ssr:view": "vite build --ssr ssr-view/server.tsx -m ssr-view --outDir ../../build/ssr --emptyOutDir=false",
|
||||
"build-ssr:view-url": "vite build --ssr ssr-view-url/server.tsx -m ssr-view-url --outDir ../../build/ssr --emptyOutDir=false",
|
||||
"build": "tsx scripts/build.ts",
|
||||
"dev": "cross-env NODE_ENV=development DEBUG=zipline tsx --require dotenv/config --enable-source-maps ./src/server",
|
||||
"dev:nd": "cross-env NODE_ENV=development tsx --require dotenv/config --enable-source-maps ./src/server",
|
||||
"dev:inspector": "cross-env NODE_ENV=development DEBUG=zipline tsx --require dotenv/config --inspect=0.0.0.0:9229 --enable-source-maps ./src/server",
|
||||
"start": "cross-env NODE_ENV=production node --trace-warnings --require dotenv/config ./build/server",
|
||||
"start:inspector": "cross-env NODE_ENV=production node --require dotenv/config --inspect=0.0.0.0:9229 --enable-source-maps ./build/server",
|
||||
"ctl": "NODE_ENV=production node --require dotenv/config --enable-source-maps ./build/ctl",
|
||||
"validate": "pnpm run --stream \"/^validate:.*/\"",
|
||||
"validate:lint": "eslint --cache --fix .",
|
||||
"validate:format": "prettier --write --ignore-path .gitignore .",
|
||||
"validate": "tsx scripts/validate.ts",
|
||||
"db:prototype": "prisma db push --skip-generate && prisma generate --no-hints",
|
||||
"db:migrate": "prisma migrate dev --create-only",
|
||||
"docker:engine": "colima start --mount $PWD/themes:w --mount $PWD/uploads:w --mount $PWD/public:w",
|
||||
@@ -31,8 +21,8 @@
|
||||
"docker:compose:dev:logs": "docker-compose --file docker-compose.dev.yml logs -f"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "3.873.0",
|
||||
"@aws-sdk/lib-storage": "3.873.0",
|
||||
"@aws-sdk/client-s3": "3.879.0",
|
||||
"@aws-sdk/lib-storage": "3.879.0",
|
||||
"@fastify/cookie": "^11.0.2",
|
||||
"@fastify/cors": "^11.1.0",
|
||||
"@fastify/multipart": "^9.0.3",
|
||||
@@ -40,19 +30,19 @@
|
||||
"@fastify/sensible": "^6.0.3",
|
||||
"@fastify/static": "^8.2.0",
|
||||
"@github/webauthn-json": "^2.1.1",
|
||||
"@mantine/charts": "^8.2.5",
|
||||
"@mantine/code-highlight": "^8.2.5",
|
||||
"@mantine/core": "^8.2.5",
|
||||
"@mantine/dates": "^8.2.5",
|
||||
"@mantine/dropzone": "^8.2.5",
|
||||
"@mantine/form": "^8.2.5",
|
||||
"@mantine/hooks": "^8.2.5",
|
||||
"@mantine/modals": "^8.2.5",
|
||||
"@mantine/notifications": "^8.2.5",
|
||||
"@prisma/adapter-pg": "^6.14.0",
|
||||
"@prisma/client": "^6.14.0",
|
||||
"@prisma/internals": "^6.14.0",
|
||||
"@prisma/migrate": "^6.14.0",
|
||||
"@mantine/charts": "^8.2.8",
|
||||
"@mantine/code-highlight": "^8.2.8",
|
||||
"@mantine/core": "^8.2.8",
|
||||
"@mantine/dates": "^8.2.8",
|
||||
"@mantine/dropzone": "^8.2.8",
|
||||
"@mantine/form": "^8.2.8",
|
||||
"@mantine/hooks": "^8.2.8",
|
||||
"@mantine/modals": "^8.2.8",
|
||||
"@mantine/notifications": "^8.2.8",
|
||||
"@prisma/adapter-pg": "^6.15.0",
|
||||
"@prisma/client": "^6.15.0",
|
||||
"@prisma/internals": "^6.15.0",
|
||||
"@prisma/migrate": "^6.15.0",
|
||||
"@smithy/node-http-handler": "^4.1.1",
|
||||
"@tabler/icons-react": "^3.34.1",
|
||||
"argon2": "^0.44.0",
|
||||
@@ -63,8 +53,8 @@
|
||||
"commander": "^14.0.0",
|
||||
"cookie": "^1.0.2",
|
||||
"cross-env": "^10.0.0",
|
||||
"dayjs": "^1.11.13",
|
||||
"dotenv": "^17.2.1",
|
||||
"dayjs": "^1.11.18",
|
||||
"dotenv": "^17.2.2",
|
||||
"fast-glob": "^3.3.3",
|
||||
"fastify": "^5.5.0",
|
||||
"fastify-plugin": "^5.0.1",
|
||||
@@ -78,17 +68,17 @@
|
||||
"ms": "^2.1.3",
|
||||
"multer": "2.0.2",
|
||||
"otplib": "^12.0.1",
|
||||
"prisma": "^6.14.0",
|
||||
"prisma": "^6.15.0",
|
||||
"qrcode": "^1.5.4",
|
||||
"react": "^19.1.1",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-markdown": "^10.1.0",
|
||||
"react-router-dom": "^7.8.1",
|
||||
"react-router-dom": "^7.8.2",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"sharp": "^0.34.3",
|
||||
"swr": "^2.3.6",
|
||||
"typescript-eslint": "^8.40.0",
|
||||
"vite": "^7.1.3",
|
||||
"typescript-eslint": "^8.42.0",
|
||||
"vite": "^7.1.4",
|
||||
"zod": "^4.1.5",
|
||||
"zustand": "^5.0.8"
|
||||
},
|
||||
@@ -100,10 +90,10 @@
|
||||
"@types/multer": "^2.0.0",
|
||||
"@types/node": "^24.3.0",
|
||||
"@types/qrcode": "^1.5.5",
|
||||
"@types/react": "^19.1.10",
|
||||
"@types/react-dom": "^19.1.7",
|
||||
"@vitejs/plugin-react": "^5.0.1",
|
||||
"eslint": "^9.33.0",
|
||||
"@types/react": "^19.1.12",
|
||||
"@types/react-dom": "^19.1.9",
|
||||
"@vitejs/plugin-react": "^5.0.2",
|
||||
"eslint": "^9.34.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-jsx-a11y": "^6.10.2",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
@@ -115,10 +105,10 @@
|
||||
"postcss-preset-mantine": "^1.18.0",
|
||||
"postcss-simple-vars": "^7.0.1",
|
||||
"prettier": "^3.6.2",
|
||||
"sass": "^1.90.0",
|
||||
"sass": "^1.92.0",
|
||||
"tsc-alias": "^1.8.16",
|
||||
"tsup": "^8.5.0",
|
||||
"tsx": "^4.20.4",
|
||||
"tsx": "^4.20.5",
|
||||
"typescript": "^5.9.2"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
1407
pnpm-lock.yaml
generated
1407
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
24
scripts/build.ts
Normal file
24
scripts/build.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { run, step } from '.';
|
||||
import { lintStep } from './lint';
|
||||
|
||||
run(
|
||||
'build',
|
||||
|
||||
lintStep,
|
||||
step('prisma', 'prisma generate'),
|
||||
step('typecheck', 'tsc', () => !process.argv.includes('--skip')),
|
||||
|
||||
// builds
|
||||
step('server', 'tsup'),
|
||||
|
||||
// client stuff
|
||||
step('client', 'vite build'),
|
||||
step(
|
||||
'client/ssr/view',
|
||||
'vite build --ssr ssr-view/server.tsx -m ssr-view --outDir ../../build/ssr --emptyOutDir=false',
|
||||
),
|
||||
step(
|
||||
'client/ssr/view-url',
|
||||
'vite build --ssr ssr-view-url/server.tsx -m ssr-view-url --outDir ../../build/ssr --emptyOutDir=false',
|
||||
),
|
||||
);
|
||||
32
scripts/index.ts
Normal file
32
scripts/index.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
export function step(name: string, command: string, condition: () => boolean = () => true) {
|
||||
return {
|
||||
name,
|
||||
command,
|
||||
condition,
|
||||
};
|
||||
}
|
||||
|
||||
export type Step = ReturnType<typeof step>;
|
||||
|
||||
function log(message: string) {
|
||||
console.log(`\n${message}\n`);
|
||||
}
|
||||
|
||||
export async function run(name: string, ...steps: Step[]) {
|
||||
const { execSync } = await import('child_process');
|
||||
|
||||
for (const step of steps) {
|
||||
if (!step.condition()) {
|
||||
log(`- Skipping step "${name}/${step.name}"...`);
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
log(`> Running step "${name}/${step.name}"...`);
|
||||
execSync(step.command, { stdio: 'inherit' });
|
||||
} catch {
|
||||
console.error(`x Step "${name}/${step.name}" failed.`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
3
scripts/lint.ts
Normal file
3
scripts/lint.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import { step } from '.';
|
||||
|
||||
export const lintStep = step('lint', 'eslint .');
|
||||
9
scripts/validate.ts
Normal file
9
scripts/validate.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { run, step } from '.';
|
||||
import { lintStep } from './lint';
|
||||
|
||||
run(
|
||||
'validate',
|
||||
|
||||
lintStep,
|
||||
step('format', 'prettier --write --ignore-path .gitignore .'),
|
||||
);
|
||||
@@ -19,5 +19,5 @@
|
||||
}
|
||||
},
|
||||
"include": ["vite-env.d.ts", "**/*.ts", "**/*.tsx"],
|
||||
"exclude": ["node_modules", "uploads"]
|
||||
"exclude": ["node_modules", "uploads", "build"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user