@alpha018/nestjs-redisom 1.0.0 → 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 +52 -7
- package/dist/redis-om/common/base.entity.js.map +1 -1
- package/dist/redis-om/common/redis-om.utils.js.map +1 -1
- package/dist/redis-om/decorators/inject-repository.decorator.js.map +1 -1
- package/dist/redis-om/decorators/prop.decorator.js.map +1 -1
- package/dist/redis-om/decorators/schema.decorator.js.map +1 -1
- package/dist/redis-om/factories/schema.factory.js.map +1 -1
- package/dist/redis-om/redis-om-core.module.js.map +1 -1
- package/dist/redis-om/redis-om.constants.js.map +1 -1
- package/dist/redis-om/redis-om.module.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
<a href="https://nestjs.com" target="_blank">
|
|
13
13
|
<img src="https://img.shields.io/badge/built%20with-NestJs-red.svg" alt="Built with NestJS">
|
|
14
14
|
</a>
|
|
15
|
+
<a href="https://github.com/Alpha018/nestjs-redisom/actions">
|
|
16
|
+
<img src="https://github.com/Alpha018/nestjs-redisom/actions/workflows/build.yml/badge.svg" alt="Test Status">
|
|
17
|
+
</a>
|
|
18
|
+
<a href="https://github.com/Alpha018/nestjs-redisom">
|
|
19
|
+
<img src="https://img.shields.io/github/stars/Alpha018/nestjs-redisom?style=social" alt="GitHub stars">
|
|
20
|
+
</a>
|
|
15
21
|
</div>
|
|
16
22
|
|
|
17
23
|
|
|
@@ -102,17 +108,20 @@ export class CatsService {
|
|
|
102
108
|
|
|
103
109
|
### 1. Nested Typed Objects
|
|
104
110
|
|
|
105
|
-
You can define nested objects using classes and the `@Prop({ type: () => Class })` syntax. This allows Redis OM to automatically generate the correct schema fields
|
|
111
|
+
You can define nested objects using classes and the `@Prop({ type: () => Class })` syntax. This allows Redis OM to automatically generate the correct schema fields for your nested data.
|
|
112
|
+
|
|
113
|
+
**How it works:**
|
|
114
|
+
The library flattens nested properties into the Redis schema using the format `parentProperty_childProperty` (underscore separator). This allows you to index and search deeply nested fields without complex JSON path syntax.
|
|
106
115
|
|
|
107
116
|
**Define the Embedded Class:**
|
|
108
117
|
|
|
109
118
|
```typescript
|
|
110
119
|
export class Address {
|
|
111
120
|
@Prop({ indexed: true })
|
|
112
|
-
|
|
121
|
+
street: string;
|
|
113
122
|
|
|
114
|
-
@Prop()
|
|
115
|
-
|
|
123
|
+
@Prop({ indexed: true })
|
|
124
|
+
city: string; // Will become 'address_city' in the schema
|
|
116
125
|
}
|
|
117
126
|
```
|
|
118
127
|
|
|
@@ -131,12 +140,13 @@ export class Person extends BaseEntity {
|
|
|
131
140
|
|
|
132
141
|
**Search using flattened/nested fields:**
|
|
133
142
|
|
|
134
|
-
|
|
143
|
+
Since the schema uses flattened keys, you query them using the underscore syntax:
|
|
135
144
|
|
|
136
145
|
```typescript
|
|
137
|
-
// Search for persons
|
|
146
|
+
// Search for persons where address.city is 'New York'
|
|
138
147
|
const results = await this.personRepo.search()
|
|
139
|
-
.where('address_city' as any)
|
|
148
|
+
.where('address_city' as any) // Use the flattened key
|
|
149
|
+
.eq('New York')
|
|
140
150
|
.return.all();
|
|
141
151
|
```
|
|
142
152
|
|
|
@@ -166,6 +176,41 @@ await this.catRepo.save(id, sessionEntity);
|
|
|
166
176
|
await this.catRepo.expire(id, 60);
|
|
167
177
|
```
|
|
168
178
|
|
|
179
|
+
### 4. TLS Connection (Production / Cloud)
|
|
180
|
+
|
|
181
|
+
For secure connections (e.g., AWS ElastiCache, Redis Cloud), use the `rediss://` protocol and provide TLS options in the `socket` configuration.
|
|
182
|
+
|
|
183
|
+
**Static Configuration:**
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import * as fs from 'fs';
|
|
187
|
+
|
|
188
|
+
RedisOmModule.forRoot({
|
|
189
|
+
url: 'rediss://your-redis-instance:6380',
|
|
190
|
+
socket: {
|
|
191
|
+
tls: true,
|
|
192
|
+
rejectUnauthorized: false, // Set to true if using a public CA
|
|
193
|
+
// ca: fs.readFileSync('path/to/ca.pem'), // Optional: Load custom CA
|
|
194
|
+
},
|
|
195
|
+
})
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Async Configuration (e.g., using ConfigService):**
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
RedisOmModule.forRootAsync({
|
|
202
|
+
imports: [ConfigModule],
|
|
203
|
+
inject: [ConfigService],
|
|
204
|
+
useFactory: (config: ConfigService) => ({
|
|
205
|
+
url: config.get('REDIS_URL'), // e.g., 'rediss://...'
|
|
206
|
+
socket: {
|
|
207
|
+
tls: true,
|
|
208
|
+
rejectUnauthorized: config.get('REDIS_TLS_REJECT_UNAUTHORIZED') === 'true',
|
|
209
|
+
},
|
|
210
|
+
}),
|
|
211
|
+
})
|
|
212
|
+
```
|
|
213
|
+
|
|
169
214
|
## Features
|
|
170
215
|
|
|
171
216
|
- **Schema Factory**: Automatically generates RedisOM schemas from your class metadata.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/redis-om/common/base.entity.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;
|
|
1
|
+
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/redis-om/common/base.entity.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAYpC,MAAa,UAAU;IAMrB,MAAM,CAAC,KAAK,CAAC,MAA6B;QACxC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,OAAQ,MAAuB,CAAC,mBAAQ,CAAC,CAAC;IAC5C,CAAC;CACF;AAVD,gCAUC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-om.utils.js","sourceRoot":"","sources":["../../../src/redis-om/common/redis-om.utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"redis-om.utils.js","sourceRoot":"","sources":["../../../src/redis-om/common/redis-om.utils.ts"],"names":[],"mappings":";;AAQA,gDAMC;AAOD,gDAIC;AAjBD,SAAgB,kBAAkB,CAAC,MAA0B;IAC3D,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC/D,OAAO,GAAG,IAAI,YAAY,CAAC;AAC7B,CAAC;AAOD,SAAgB,kBAAkB,CAAC,IAAa;IAC9C,OAAO,IAAI,IAAI,IAAI,KAAK,SAAS;QAC/B,CAAC,CAAC,uBAAuB,IAAI,EAAE;QAC/B,CAAC,CAAC,qBAAqB,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-repository.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/inject-repository.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAGxC,6DAA8D;
|
|
1
|
+
{"version":3,"file":"inject-repository.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/inject-repository.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAGxC,6DAA8D;AAOvD,MAAM,gBAAgB,GAAG,CAAC,MAAiB,EAAE,EAAE;IACpD,OAAO,IAAA,eAAM,EAAC,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAFW,QAAA,gBAAgB,oBAE3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prop.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/prop.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"prop.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/prop.decorator.ts"],"names":[],"mappings":";;AAoDA,oBAWC;AA/DD,8DAA+D;AAoD/D,SAAgB,IAAI,CAAC,UAAuB,EAAE;IAC5C,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,aAAa,GACjB,OAAO,CAAC,WAAW,CAAC,2CAAsB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxE,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,cAAc,CACpB,2CAAsB,EACtB,aAAa,EACb,MAAM,CAAC,WAAW,CACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/schema.decorator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"schema.decorator.js","sourceRoot":"","sources":["../../../src/redis-om/decorators/schema.decorator.ts"],"names":[],"mappings":";;AAmBA,wBAIC;AAvBD,8DAAiE;AAmBjE,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,OAAO,CAAC,cAAc,CAAC,6CAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.factory.js","sourceRoot":"","sources":["../../../src/redis-om/factories/schema.factory.ts"],"names":[],"mappings":";;;AACA,uCAAkC;AAElC,8DAG+B;
|
|
1
|
+
{"version":3,"file":"schema.factory.js","sourceRoot":"","sources":["../../../src/redis-om/factories/schema.factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-om-core.module.js","sourceRoot":"","sources":["../../src/redis-om/redis-om-core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAMwB;AACxB,iCAAqC;AAGrC,6DAA+D;AAC/D,4DAA6D;
|
|
1
|
+
{"version":3,"file":"redis-om-core.module.js","sourceRoot":"","sources":["../../src/redis-om/redis-om-core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAMwB;AACxB,iCAAqC;AAGrC,6DAA+D;AAC/D,4DAA6D;AAUtD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAU5B,MAAM,CAAC,YAAY,CAAC,OAAkC;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE1D,OAAO;YACL,SAAS,EAAE;gBACT,GAAG,cAAc;gBACjB;oBACE,UAAU,EAAE,KAAK,EAAE,GAAyB,EAAE,EAAE;wBAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;wBAC7C,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;wBAC5C,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;wBAE5B,OAAO,WAAW,CAAC;oBACrB,CAAC;oBACD,MAAM,EAAE,CAAC,4CAAuB,CAAC;oBACjC,OAAO,EAAE,IAAA,mCAAkB,GAAE;iBAC9B;aACF;YACD,OAAO,EAAE,CAAC,IAAA,mCAAkB,GAAE,CAAC;YAC/B,MAAM,EAAE,mBAAiB;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;IACJ,CAAC;IAWD,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,MAAM,yBAAyB,GAAa;YAC1C,UAAU,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,MAAM,WAAW,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAE5B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,EAAE,IAAA,mCAAkB,GAAE;SAC9B,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,CAAC,yBAAyB,CAAC;YACtC,OAAO,EAAE,CAAC,yBAAyB,CAAC;YACpC,MAAM,EAAE,mBAAiB;SAC1B,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,oBAAoB,CACjC,OAAkC;QAElC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO;gBACL;oBACE,OAAO,EAAE,4CAAuB;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,qBAAqB,KAAI,CAAC;CACjC,CAAA;AA9EY,8CAAiB;4BAAjB,iBAAiB;IAF7B,IAAA,eAAM,EAAC,EAAE,CAAC;IACV,IAAA,eAAM,GAAE;GACI,iBAAiB,CA8E7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-om.constants.js","sourceRoot":"","sources":["../../src/redis-om/redis-om.constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"redis-om.constants.js","sourceRoot":"","sources":["../../src/redis-om/redis-om.constants.ts"],"names":[],"mappings":";;;AACa,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAEtD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAElD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-om.module.js","sourceRoot":"","sources":["../../src/redis-om/redis-om.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AAGjE,4DAGiC;AAEjC,iEAA2D;AAC3D,+DAA2D;
|
|
1
|
+
{"version":3,"file":"redis-om.module.js","sourceRoot":"","sources":["../../src/redis-om/redis-om.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAiE;AAGjE,4DAGiC;AAEjC,iEAA2D;AAC3D,+DAA2D;AAUpD,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAmBxB,MAAM,CAAC,UAAU,CAAC,MAAmB;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;SACnB,CAAC;IACJ,CAAC;IAsBD,MAAM,CAAC,YAAY,CAAC,OAAkC;QACpD,OAAO;YACL,OAAO,EAAE,CAAC,wCAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,EAAE,eAAa;SACtB,CAAC;IACJ,CAAC;IAkBD,MAAM,CAAC,OAAO,CAAC,OAA6B;QAC1C,OAAO;YACL,OAAO,EAAE,CAAC,wCAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,EAAE,eAAa;SACtB,CAAC;IACJ,CAAC;CACF,CAAA;AA7EY,sCAAa;wBAAb,aAAa;IADzB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,aAAa,CA6EzB;AAED,uCAAsC;AAEtC,SAAS,qBAAqB,CAAC,KAAgB;IAC7C,OAAO;QACL,UAAU,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,8BAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,IAAI,qBAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClD,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,IAAA,mCAAkB,EAAC,KAAK,CAAC;QAClC,MAAM,EAAE,CAAC,IAAA,mCAAkB,GAAE,CAAC;KAC/B,CAAC;AACJ,CAAC"}
|