@saihu/common 1.0.1

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/README.md ADDED
@@ -0,0 +1,8 @@
1
+ # Common
2
+
3
+ A collection of common utilities for NestJS applications.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @aidenhsy/common
@@ -0,0 +1,14 @@
1
+ export declare class BaseResponseDto<T> {
2
+ code: number;
3
+ msg: string;
4
+ data: T | null;
5
+ constructor(code: number, msg: string, data?: T | null);
6
+ static success<T>(data: T): BaseResponseDto<T>;
7
+ static successWithMessage<T>(msg: string, data: T): BaseResponseDto<T>;
8
+ static error<T>(code: number, msg: string): BaseResponseDto<T>;
9
+ static readonly CODE_NOT_FOUND = 404;
10
+ static readonly CODE_UNAUTHORIZED = 401;
11
+ static readonly CODE_FORBIDDEN = 403;
12
+ static readonly CODE_BAD_REQUEST = 400;
13
+ static readonly CODE_SERVER_ERROR = 500;
14
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseResponseDto = void 0;
4
+ // src/dto/base-response.dto.ts
5
+ class BaseResponseDto {
6
+ constructor(code, msg, data = null) {
7
+ this.code = code;
8
+ this.msg = msg;
9
+ this.data = data;
10
+ }
11
+ static success(data) {
12
+ return new BaseResponseDto(0, 'success', data);
13
+ }
14
+ static successWithMessage(msg, data) {
15
+ return new BaseResponseDto(0, msg, data);
16
+ }
17
+ static error(code, msg) {
18
+ return new BaseResponseDto(code, msg, null);
19
+ }
20
+ }
21
+ exports.BaseResponseDto = BaseResponseDto;
22
+ // Common error codes
23
+ BaseResponseDto.CODE_NOT_FOUND = 404;
24
+ BaseResponseDto.CODE_UNAUTHORIZED = 401;
25
+ BaseResponseDto.CODE_FORBIDDEN = 403;
26
+ BaseResponseDto.CODE_BAD_REQUEST = 400;
27
+ BaseResponseDto.CODE_SERVER_ERROR = 500;
@@ -0,0 +1 @@
1
+ export * from './base-response.dto';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./base-response.dto"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './dto';
2
+ export * from './interceptors';
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dto"), exports);
18
+ __exportStar(require("./interceptors"), exports);
@@ -0,0 +1 @@
1
+ export * from './transform.interceptor';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./transform.interceptor"), exports);
@@ -0,0 +1,6 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ import { BaseResponseDto } from '../dto/base-response.dto';
4
+ export declare class TransformInterceptor<T> implements NestInterceptor<T, BaseResponseDto<T>> {
5
+ intercept(context: ExecutionContext, next: CallHandler): Observable<BaseResponseDto<T>>;
6
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
5
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
6
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
7
+ var _, done = false;
8
+ for (var i = decorators.length - 1; i >= 0; i--) {
9
+ var context = {};
10
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
11
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
12
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
13
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
14
+ if (kind === "accessor") {
15
+ if (result === void 0) continue;
16
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
17
+ if (_ = accept(result.get)) descriptor.get = _;
18
+ if (_ = accept(result.set)) descriptor.set = _;
19
+ if (_ = accept(result.init)) initializers.unshift(_);
20
+ }
21
+ else if (_ = accept(result)) {
22
+ if (kind === "field") initializers.unshift(_);
23
+ else descriptor[key] = _;
24
+ }
25
+ }
26
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
+ done = true;
28
+ };
29
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
+ var useValue = arguments.length > 2;
31
+ for (var i = 0; i < initializers.length; i++) {
32
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
+ }
34
+ return useValue ? value : void 0;
35
+ };
36
+ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
37
+ if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
38
+ return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
39
+ };
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.TransformInterceptor = void 0;
42
+ // src/interceptors/transform.interceptor.ts
43
+ const common_1 = require("@nestjs/common");
44
+ const operators_1 = require("rxjs/operators");
45
+ const base_response_dto_1 = require("../dto/base-response.dto");
46
+ let TransformInterceptor = (() => {
47
+ let _classDecorators = [(0, common_1.Injectable)()];
48
+ let _classDescriptor;
49
+ let _classExtraInitializers = [];
50
+ let _classThis;
51
+ var TransformInterceptor = _classThis = class {
52
+ intercept(context, next) {
53
+ return next.handle().pipe((0, operators_1.map)(data => {
54
+ // If the response is already a BaseResponseDto, return it as is
55
+ if (data instanceof base_response_dto_1.BaseResponseDto) {
56
+ return data;
57
+ }
58
+ // Otherwise, wrap it in a success response
59
+ return base_response_dto_1.BaseResponseDto.success(data);
60
+ }));
61
+ }
62
+ };
63
+ __setFunctionName(_classThis, "TransformInterceptor");
64
+ (() => {
65
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
66
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
67
+ TransformInterceptor = _classThis = _classDescriptor.value;
68
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
69
+ __runInitializers(_classThis, _classExtraInitializers);
70
+ })();
71
+ return TransformInterceptor = _classThis;
72
+ })();
73
+ exports.TransformInterceptor = TransformInterceptor;
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@saihu/common",
3
+ "version": "1.0.1",
4
+ "description": "Common utilities for NestJS applications",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "prepublishOnly": "npm run build"
13
+ },
14
+ "keywords": [
15
+ "nestjs",
16
+ "common",
17
+ "dto"
18
+ ],
19
+ "author": "Aiden Yang",
20
+ "license": "MIT",
21
+ "peerDependencies": {
22
+ "@nestjs/common": "^10.0.0",
23
+ "rxjs": "^7.0.0"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^22.14.1",
27
+ "typescript": "^5.8.3"
28
+ }
29
+ }