lapeh 2.6.0 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/index.js CHANGED
@@ -412,7 +412,7 @@ async function upgradeProject() {
412
412
  function createProject() {
413
413
  const projectName = args.find(arg => !arg.startsWith('-'));
414
414
  const isFull = args.includes('--full');
415
- const useDefaults = args.includes('--defaults') || args.includes('-y');
415
+ const useDefaults = args.includes('--defaults') || args.includes('--default') || args.includes('-y');
416
416
 
417
417
  if (!projectName) {
418
418
  console.error('❌ Please specify the project name:');
@@ -591,6 +591,23 @@ function createProject() {
591
591
 
592
592
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
593
593
 
594
+ // Update tsconfig.json for aliases
595
+ const tsconfigPath = path.join(projectDir, 'tsconfig.json');
596
+ if (fs.existsSync(tsconfigPath)) {
597
+ try {
598
+ const tsconfig = require(tsconfigPath);
599
+ if (!tsconfig.compilerOptions) tsconfig.compilerOptions = {};
600
+ if (!tsconfig.compilerOptions.paths) tsconfig.compilerOptions.paths = {};
601
+
602
+ // Ensure @lapeh/* points to the installed package
603
+ tsconfig.compilerOptions.paths["@lapeh/*"] = ["./node_modules/lapeh/dist/lib/*"];
604
+
605
+ fs.writeFileSync(tsconfigPath, JSON.stringify(tsconfig, null, 2));
606
+ } catch (e) {
607
+ console.warn('⚠️ Failed to update tsconfig.json aliases.');
608
+ }
609
+ }
610
+
594
611
  const prismaBaseFile = path.join(projectDir, "prisma", "base.prisma.template");
595
612
  if (usePrisma && fs.existsSync(prismaBaseFile)) {
596
613
  let baseContent = fs.readFileSync(prismaBaseFile, "utf8");
@@ -1,5 +1,5 @@
1
1
  import { Response } from "express";
2
- export declare function sendSuccess<T>(res: Response, statusCode: number, message: string, data: T): Response<any, Record<string, any>>;
2
+ export declare function sendSuccess<T = any>(res: Response, statusCode: number, message: string, data?: T): Response<any, Record<string, any>>;
3
3
  /**
4
4
  * Mengirim response sukses dengan performa tinggi menggunakan Schema Serialization (Fastify-style).
5
5
  * Melewati proses JSON.stringify standar yang lambat.
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../lib/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAsCnC,wBAAgB,WAAW,CAAC,CAAC,EAC3B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,sCAIR;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAChC,IAAI,EAAE,GAAG,sCASV;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EACnC,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,sCAcX"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../lib/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAsCnC,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,CAAC,sCAIT;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,EAChC,IAAI,EAAE,GAAG,sCASV;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EACnC,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,sCAcX"}
@@ -7,7 +7,7 @@ type ErrorStatus = "error";
7
7
  type SuccessBody<T> = {
8
8
  status: SuccessStatus;
9
9
  message: string;
10
- data: T;
10
+ data?: T;
11
11
  };
12
12
 
13
13
  type ErrorBody<T = unknown> = {
@@ -36,13 +36,13 @@ function toJsonSafe(value: unknown): unknown {
36
36
  return value;
37
37
  }
38
38
 
39
- export function sendSuccess<T>(
39
+ export function sendSuccess<T = any>(
40
40
  res: Response,
41
41
  statusCode: number,
42
42
  message: string,
43
- data: T
43
+ data?: T
44
44
  ) {
45
- const body: SuccessBody<T> = { status: "success", message, data };
45
+ const body: SuccessBody<T | undefined> = { status: "success", message, data };
46
46
  return res.status(statusCode).json(toJsonSafe(body));
47
47
  }
48
48
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lapeh",
3
- "version": "2.6.0",
3
+ "version": "2.6.2",
4
4
  "description": "Framework API Express yang siap pakai (Standardized)",
5
5
  "engines": {
6
6
  "node": ">=18.0.0",
package/prisma.config.ts CHANGED
@@ -8,4 +8,7 @@ export default defineConfig({
8
8
  datasource: {
9
9
  url: process.env.DATABASE_URL,
10
10
  },
11
+ migrations: {
12
+ seed: 'ts-node prisma/seed.ts',
13
+ },
11
14
  });
@@ -25,10 +25,10 @@ fs.mkdirSync(moduleDir, { recursive: true });
25
25
 
26
26
  // Controller
27
27
  const controllerContent = `import { Request, Response } from "express";
28
- import { sendSuccess, sendError } from "@/utils/response";
28
+ import { sendSuccess } from "@lapeh/utils/response";
29
29
  // import * as ${name}Service from "./${lowerName}.service";
30
30
 
31
- export async function index(req: Request, res: Response) {
31
+ export async function index(_req: Request, res: Response) {
32
32
  sendSuccess(res, 200, "Index ${name}");
33
33
  }
34
34
 
@@ -37,7 +37,7 @@ export async function show(req: Request, res: Response) {
37
37
  sendSuccess(res, 200, "Show ${name} " + id);
38
38
  }
39
39
 
40
- export async function create(req: Request, res: Response) {
40
+ export async function create(_req: Request, res: Response) {
41
41
  sendSuccess(res, 201, "Create ${name}");
42
42
  }
43
43
 
@@ -55,13 +55,13 @@ export async function destroy(req: Request, res: Response) {
55
55
  fs.writeFileSync(path.join(moduleDir, `${lowerName}.controller.ts`), controllerContent);
56
56
 
57
57
  // Service (Optional but good for NestJS style)
58
- const serviceContent = `import { prisma } from "@/core/database";
58
+ const serviceContent = `// import { prisma } from "@lapeh/core/database";
59
59
 
60
60
  export async function findAll() {
61
61
  return [];
62
62
  }
63
63
 
64
- export async function findOne(id: number) {
64
+ export async function findOne(_id: number) {
65
65
  return null;
66
66
  }
67
67
  `;