@danqiusheng/nest-nacos 1.0.0

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.
Files changed (39) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +509 -0
  3. package/dist/index.d.ts +14 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +30 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/nacos-config.service.d.ts +62 -0
  8. package/dist/nacos-config.service.d.ts.map +1 -0
  9. package/dist/nacos-config.service.js +179 -0
  10. package/dist/nacos-config.service.js.map +1 -0
  11. package/dist/nacos-naming.service.d.ts +68 -0
  12. package/dist/nacos-naming.service.d.ts.map +1 -0
  13. package/dist/nacos-naming.service.js +153 -0
  14. package/dist/nacos-naming.service.js.map +1 -0
  15. package/dist/nacos.constants.d.ts +8 -0
  16. package/dist/nacos.constants.d.ts.map +1 -0
  17. package/dist/nacos.constants.js +13 -0
  18. package/dist/nacos.constants.js.map +1 -0
  19. package/dist/nacos.decorators.d.ts +9 -0
  20. package/dist/nacos.decorators.d.ts.map +1 -0
  21. package/dist/nacos.decorators.js +27 -0
  22. package/dist/nacos.decorators.js.map +1 -0
  23. package/dist/nacos.health.d.ts +14 -0
  24. package/dist/nacos.health.d.ts.map +1 -0
  25. package/dist/nacos.health.js +57 -0
  26. package/dist/nacos.health.js.map +1 -0
  27. package/dist/nacos.interfaces.d.ts +99 -0
  28. package/dist/nacos.interfaces.d.ts.map +1 -0
  29. package/dist/nacos.interfaces.js +3 -0
  30. package/dist/nacos.interfaces.js.map +1 -0
  31. package/dist/nacos.module.d.ts +17 -0
  32. package/dist/nacos.module.d.ts.map +1 -0
  33. package/dist/nacos.module.js +78 -0
  34. package/dist/nacos.module.js.map +1 -0
  35. package/dist/nacos.providers.d.ts +16 -0
  36. package/dist/nacos.providers.d.ts.map +1 -0
  37. package/dist/nacos.providers.js +78 -0
  38. package/dist/nacos.providers.js.map +1 -0
  39. package/package.json +62 -0
@@ -0,0 +1,99 @@
1
+ /**
2
+ * NestJS Nacos 插件 - 类型定义
3
+ */
4
+ import { ModuleMetadata } from '@nestjs/common';
5
+ /** 传输协议:gRPC(默认,支持 Nacos 2.x/3.x)或 HTTP(仅 2.x) */
6
+ export type NacosTransport = 'grpc' | 'http';
7
+ /** Naming 客户端配置 */
8
+ export interface NacosNamingOptions {
9
+ /** Nacos 服务端地址列表,如 '127.0.0.1:8848' 或数组 */
10
+ serverList: string | string[];
11
+ /** 命名空间 ID,默认 'public' */
12
+ namespace?: string;
13
+ /** 传输协议,默认 'grpc' */
14
+ transport?: NacosTransport;
15
+ /** 用户名 */
16
+ username?: string;
17
+ /** 密码 */
18
+ password?: string;
19
+ /** 是否启用 TLS/SSL */
20
+ ssl?: boolean;
21
+ /** AccessKey(阿里云 RAM 认证) */
22
+ ak?: string;
23
+ /** SecretKey(阿里云 RAM 认证) */
24
+ sk?: string;
25
+ /** 应用名 */
26
+ appName?: string;
27
+ }
28
+ /** Config 客户端配置 */
29
+ export interface NacosConfigOptions {
30
+ /** Nacos 服务端地址列表 */
31
+ serverAddr: string | string[];
32
+ /** 命名空间 ID */
33
+ namespace?: string;
34
+ /** 传输协议,默认 'grpc' */
35
+ transport?: NacosTransport;
36
+ /** 用户名 */
37
+ username?: string;
38
+ /** 密码 */
39
+ password?: string;
40
+ /** 是否启用 TLS/SSL */
41
+ ssl?: boolean;
42
+ /** AccessKey(阿里云 RAM 认证) */
43
+ accessKey?: string;
44
+ /** SecretKey(阿里云 RAM 认证) */
45
+ secretKey?: string;
46
+ /** 签名区域 ID(v4 签名) */
47
+ signatureRegionId?: string;
48
+ }
49
+ /** 服务注册实例配置 */
50
+ export interface NacosInstanceOptions {
51
+ /** 服务名 */
52
+ serviceName: string;
53
+ /** 实例 IP */
54
+ ip: string;
55
+ /** 实例端口 */
56
+ port: number;
57
+ /** 权重,默认 1.0 */
58
+ weight?: number;
59
+ /** 是否临时实例(客户端存活时有效),默认 true */
60
+ ephemeral?: boolean;
61
+ /** 集群名 */
62
+ clusterName?: string;
63
+ /** 分组名,默认 'DEFAULT_GROUP' */
64
+ groupName?: string;
65
+ /** 元数据 */
66
+ metadata?: Record<string, string>;
67
+ }
68
+ /** Nacos 模块配置 */
69
+ export interface NacosModuleOptions {
70
+ /** Naming 服务发现配置(不传则不启用) */
71
+ naming?: NacosNamingOptions;
72
+ /** Config 配置中心配置(不传则不启用) */
73
+ config?: NacosConfigOptions;
74
+ /** 要注册的服务实例(可选,模块初始化时自动注册) */
75
+ instances?: NacosInstanceOptions[];
76
+ /** 要订阅的配置项 dataId 列表(可选) */
77
+ subscribeConfigs?: Array<{
78
+ dataId: string;
79
+ group: string;
80
+ }>;
81
+ }
82
+ /** 异步配置工厂 */
83
+ export type NacosOptionsFactory = {
84
+ createNacosOptions(): Promise<NacosModuleOptions> | NacosModuleOptions;
85
+ };
86
+ /** 异步模块配置 */
87
+ export interface NacosModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
88
+ /** 模块注入的 Token 名,用于多实例隔离,默认 'default' */
89
+ name?: string;
90
+ /** 使用已有 factory */
91
+ useFactory?: (...args: any[]) => Promise<NacosModuleOptions> | NacosModuleOptions;
92
+ /** 依赖注入的 Provider */
93
+ inject?: any[];
94
+ /** 使用已有 class(需实现 NacosOptionsFactory) */
95
+ useClass?: new () => NacosOptionsFactory;
96
+ /** 使用已有实例 */
97
+ useExisting?: any;
98
+ }
99
+ //# sourceMappingURL=nacos.interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.interfaces.d.ts","sourceRoot":"","sources":["../src/nacos.interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=nacos.interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.interfaces.js","sourceRoot":"","sources":["../src/nacos.interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * NestJS Nacos 插件 - 动态模块定义
3
+ *
4
+ * 用法:
5
+ * 同步:NacosModule.forRoot({ naming: {...}, config: {...} })
6
+ * 异步:NacosModule.forRootAsync({ imports, useFactory, inject })
7
+ */
8
+ import { DynamicModule } from '@nestjs/common';
9
+ import { NacosModuleAsyncOptions, NacosModuleOptions } from './nacos.interfaces';
10
+ export declare class NacosModule {
11
+ /** 同步注册 */
12
+ static forRoot(options: NacosModuleOptions): DynamicModule;
13
+ /** 异步注册(配合 @nestjs/config、环境变量等使用) */
14
+ static forRootAsync(options: NacosModuleAsyncOptions): DynamicModule;
15
+ private static createAsyncOptionsProvider;
16
+ }
17
+ //# sourceMappingURL=nacos.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.module.d.ts","sourceRoot":"","sources":["../src/nacos.module.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAM5B,qBACa,WAAW;IACtB,WAAW;IACX,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa;IAe1D,sCAAsC;IACtC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAiBpE,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAmB1C"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var NacosModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.NacosModule = void 0;
11
+ /**
12
+ * NestJS Nacos 插件 - 动态模块定义
13
+ *
14
+ * 用法:
15
+ * 同步:NacosModule.forRoot({ naming: {...}, config: {...} })
16
+ * 异步:NacosModule.forRootAsync({ imports, useFactory, inject })
17
+ */
18
+ const common_1 = require("@nestjs/common");
19
+ const nacos_constants_1 = require("./nacos.constants");
20
+ const nacos_providers_1 = require("./nacos.providers");
21
+ const nacos_naming_service_1 = require("./nacos-naming.service");
22
+ const nacos_config_service_1 = require("./nacos-config.service");
23
+ const nacos_health_1 = require("./nacos.health");
24
+ let NacosModule = NacosModule_1 = class NacosModule {
25
+ /** 同步注册 */
26
+ static forRoot(options) {
27
+ return {
28
+ module: NacosModule_1,
29
+ global: true,
30
+ providers: [
31
+ { provide: nacos_constants_1.NACOS_OPTIONS, useValue: options },
32
+ ...nacos_providers_1.nacosClientProviders,
33
+ nacos_naming_service_1.NacosNamingService,
34
+ nacos_config_service_1.NacosConfigService,
35
+ nacos_health_1.NacosHealthIndicator,
36
+ ],
37
+ exports: [nacos_naming_service_1.NacosNamingService, nacos_config_service_1.NacosConfigService, nacos_health_1.NacosHealthIndicator],
38
+ };
39
+ }
40
+ /** 异步注册(配合 @nestjs/config、环境变量等使用) */
41
+ static forRootAsync(options) {
42
+ const asyncOptionsProvider = this.createAsyncOptionsProvider(options);
43
+ return {
44
+ module: NacosModule_1,
45
+ global: true,
46
+ imports: options.imports,
47
+ providers: [
48
+ asyncOptionsProvider,
49
+ ...nacos_providers_1.nacosClientProviders,
50
+ nacos_naming_service_1.NacosNamingService,
51
+ nacos_config_service_1.NacosConfigService,
52
+ nacos_health_1.NacosHealthIndicator,
53
+ ],
54
+ exports: [nacos_naming_service_1.NacosNamingService, nacos_config_service_1.NacosConfigService, nacos_health_1.NacosHealthIndicator],
55
+ };
56
+ }
57
+ static createAsyncOptionsProvider(options) {
58
+ // 方式一:useFactory
59
+ if (options.useFactory) {
60
+ return {
61
+ provide: nacos_constants_1.NACOS_OPTIONS,
62
+ useFactory: options.useFactory,
63
+ inject: options.inject ?? [],
64
+ };
65
+ }
66
+ // 方式二:useClass / useExisting
67
+ return {
68
+ provide: nacos_constants_1.NACOS_OPTIONS,
69
+ useFactory: async (factory) => factory.createNacosOptions(),
70
+ inject: [options.useExisting ?? options.useClass],
71
+ };
72
+ }
73
+ };
74
+ exports.NacosModule = NacosModule;
75
+ exports.NacosModule = NacosModule = NacosModule_1 = __decorate([
76
+ (0, common_1.Module)({})
77
+ ], NacosModule);
78
+ //# sourceMappingURL=nacos.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.module.js","sourceRoot":"","sources":["../src/nacos.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;;;;;;GAMG;AACH,2CAAiE;AACjE,uDAAkD;AAMlD,uDAAyD;AACzD,iEAA4D;AAC5D,iEAA4D;AAC5D,iDAAsD;AAG/C,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,WAAW;IACX,MAAM,CAAC,OAAO,CAAC,OAA2B;QACxC,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC7C,GAAG,sCAAoB;gBACvB,yCAAkB;gBAClB,yCAAkB;gBAClB,mCAAoB;aACrB;YACD,OAAO,EAAE,CAAC,yCAAkB,EAAE,yCAAkB,EAAE,mCAAoB,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,CAAC,YAAY,CAAC,OAAgC;QAClD,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE;gBACT,oBAAoB;gBACpB,GAAG,sCAAoB;gBACvB,yCAAkB;gBAClB,yCAAkB;gBAClB,mCAAoB;aACrB;YACD,OAAO,EAAE,CAAC,yCAAkB,EAAE,yCAAkB,EAAE,mCAAoB,CAAC;SACxE,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,0BAA0B,CACvC,OAAgC;QAEhC,iBAAiB;QACjB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,+BAAa;gBACtB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC7B,CAAC;QACJ,CAAC;QACD,6BAA6B;QAC7B,OAAO;YACL,OAAO,EAAE,+BAAa;YACtB,UAAU,EAAE,KAAK,EAAE,OAA4B,EAAE,EAAE,CACjD,OAAO,CAAC,kBAAkB,EAAE;YAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC;SAClD,CAAC;IACJ,CAAC;CACF,CAAA;AAtDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,WAAW,CAsDvB"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * NestJS Nacos 插件 - Provider 工厂
3
+ *
4
+ * 负责根据模块配置创建 NacosNamingClient / NacosConfigClient 实例。
5
+ * 如果未配置 naming / config,则返回 null(对应服务以 @Optional 注入)。
6
+ */
7
+ import { Provider } from '@nestjs/common';
8
+ import { NacosNamingClient, NacosConfigClient } from 'nacos';
9
+ import { NacosModuleOptions } from './nacos.interfaces';
10
+ /** 创建 Naming 客户端 */
11
+ export declare function createNamingClient(options: NacosModuleOptions['naming']): NacosNamingClient | null;
12
+ /** 创建 Config 客户端 */
13
+ export declare function createConfigClient(options: NacosModuleOptions['config']): NacosConfigClient | null;
14
+ /** 客户端 Provider 列表 */
15
+ export declare const nacosClientProviders: Provider[];
16
+ //# sourceMappingURL=nacos.providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.providers.d.ts","sourceRoot":"","sources":["../src/nacos.providers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAU,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAiBxD,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAgBlG;AAED,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAelG;AAED,sBAAsB;AACtB,eAAO,MAAM,oBAAoB,EAAE,QAAQ,EAW1C,CAAC"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nacosClientProviders = void 0;
4
+ exports.createNamingClient = createNamingClient;
5
+ exports.createConfigClient = createConfigClient;
6
+ /**
7
+ * NestJS Nacos 插件 - Provider 工厂
8
+ *
9
+ * 负责根据模块配置创建 NacosNamingClient / NacosConfigClient 实例。
10
+ * 如果未配置 naming / config,则返回 null(对应服务以 @Optional 注入)。
11
+ */
12
+ const common_1 = require("@nestjs/common");
13
+ const nacos_1 = require("nacos");
14
+ const nacos_constants_1 = require("./nacos.constants");
15
+ const nestLogger = new common_1.Logger('Nacos');
16
+ /**
17
+ * Logger 适配器
18
+ * Nacos SDK 期望 logger 有 info/warn/error/debug 方法,
19
+ * 而 NestJS Logger 使用 log/warn/error/debug,此处做映射。
20
+ */
21
+ const nacosLogger = {
22
+ info: (...args) => nestLogger.log(args.join(' ')),
23
+ warn: (...args) => nestLogger.warn(args.join(' ')),
24
+ error: (...args) => nestLogger.error(args.join(' ')),
25
+ debug: (...args) => nestLogger.debug(args.join(' ')),
26
+ log: (...args) => nestLogger.log(args.join(' ')),
27
+ };
28
+ /** 创建 Naming 客户端 */
29
+ function createNamingClient(options) {
30
+ if (!options)
31
+ return null;
32
+ // SDK 运行时支持 transport 选项(gRPC),但类型定义尚未包含,故用 as any
33
+ const client = new nacos_1.NacosNamingClient({
34
+ logger: nacosLogger,
35
+ serverList: options.serverList,
36
+ namespace: options.namespace ?? 'public',
37
+ transport: options.transport ?? 'grpc',
38
+ username: options.username,
39
+ password: options.password,
40
+ ssl: options.ssl,
41
+ ak: options.ak,
42
+ sk: options.sk,
43
+ appName: options.appName,
44
+ });
45
+ return client;
46
+ }
47
+ /** 创建 Config 客户端 */
48
+ function createConfigClient(options) {
49
+ if (!options)
50
+ return null;
51
+ // SDK 运行时支持 transport 选项(gRPC),但类型定义尚未包含,故用 as any
52
+ const client = new nacos_1.NacosConfigClient({
53
+ serverAddr: options.serverAddr,
54
+ namespace: options.namespace ?? 'public',
55
+ transport: options.transport ?? 'grpc',
56
+ username: options.username,
57
+ password: options.password,
58
+ ssl: options.ssl,
59
+ accessKey: options.accessKey,
60
+ secretKey: options.secretKey,
61
+ signatureRegionId: options.signatureRegionId,
62
+ });
63
+ return client;
64
+ }
65
+ /** 客户端 Provider 列表 */
66
+ exports.nacosClientProviders = [
67
+ {
68
+ provide: nacos_constants_1.NACOS_NAMING_CLIENT,
69
+ useFactory: (options) => createNamingClient(options?.naming),
70
+ inject: [nacos_constants_1.NACOS_OPTIONS],
71
+ },
72
+ {
73
+ provide: nacos_constants_1.NACOS_CONFIG_CLIENT,
74
+ useFactory: (options) => createConfigClient(options?.config),
75
+ inject: [nacos_constants_1.NACOS_OPTIONS],
76
+ },
77
+ ];
78
+ //# sourceMappingURL=nacos.providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nacos.providers.js","sourceRoot":"","sources":["../src/nacos.providers.ts"],"names":[],"mappings":";;;AA2BA,gDAgBC;AAGD,gDAeC;AA7DD;;;;;GAKG;AACH,2CAAkD;AAClD,iCAA6D;AAC7D,uDAA4F;AAG5F,MAAM,UAAU,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACxD,CAAC;AAEF,oBAAoB;AACpB,SAAgB,kBAAkB,CAAC,OAAqC;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,yBAAiB,CAAC;QACnC,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;KAClB,CAAC,CAAC;IACV,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oBAAoB;AACpB,SAAgB,kBAAkB,CAAC,OAAqC;IACtE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,yBAAiB,CAAC;QACnC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;KACtC,CAAC,CAAC;IACV,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sBAAsB;AACT,QAAA,oBAAoB,GAAe;IAC9C;QACE,OAAO,EAAE,qCAAmB;QAC5B,UAAU,EAAE,CAAC,OAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC;QAChF,MAAM,EAAE,CAAC,+BAAa,CAAC;KACxB;IACD;QACE,OAAO,EAAE,qCAAmB;QAC5B,UAAU,EAAE,CAAC,OAA2B,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC;QAChF,MAAM,EAAE,CAAC,+BAAa,CAAC;KACxB;CACF,CAAC"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@danqiusheng/nest-nacos",
3
+ "version": "1.0.0",
4
+ "description": "NestJS Nacos 插件 - 服务发现 + 配置中心(基于 nacos-sdk-nodejs,支持 gRPC / Nacos 2.x & 3.x)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "scripts": {
13
+ "build": "rimraf dist && tsc",
14
+ "start:example": "ts-node example/app.module.ts",
15
+ "prepublishOnly": "npm run build",
16
+ "version": "npm run build",
17
+ "postversion": "git push && git push --tags"
18
+ },
19
+ "peerDependencies": {
20
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
21
+ "@nestjs/core": "^10.0.0 || ^11.0.0",
22
+ "nacos": "^2.6.0",
23
+ "reflect-metadata": "^0.2.0",
24
+ "rxjs": "^7.0.0"
25
+ },
26
+ "devDependencies": {
27
+ "@nestjs/common": "^11.0.0",
28
+ "@nestjs/config": "^4.0.0",
29
+ "@nestjs/core": "^11.0.0",
30
+ "@nestjs/testing": "^11.1.28",
31
+ "@types/node": "^26.1.2",
32
+ "nacos": "^2.6.3",
33
+ "reflect-metadata": "^0.2.2",
34
+ "rimraf": "^5.0.0",
35
+ "rxjs": "^7.8.2",
36
+ "ts-node": "^10.9.0",
37
+ "typescript": "^5.4.0"
38
+ },
39
+ "keywords": [
40
+ "nestjs",
41
+ "nest",
42
+ "nacos",
43
+ "service-discovery",
44
+ "config-center",
45
+ "configuration",
46
+ "microservice",
47
+ "grpc"
48
+ ],
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/danqiusheng/nest-nacos.git"
52
+ },
53
+ "bugs": {
54
+ "url": "https://github.com/danqiusheng/nest-nacos/issues"
55
+ },
56
+ "homepage": "https://github.com/danqiusheng/nest-nacos#readme",
57
+ "author": "丹丘生",
58
+ "license": "MIT",
59
+ "engines": {
60
+ "node": ">=16"
61
+ }
62
+ }