@rpcbase/db 0.5.0 → 0.7.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -35
- package/dist/loadModel.d.ts.map +1 -1
- package/dist/registerModels.d.ts +6 -0
- package/dist/registerModels.d.ts.map +1 -0
- package/package.json +3 -6
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -21,11 +21,6 @@ const UserSchema = new Schema({
|
|
|
21
21
|
email_verification_code: { type: String, required: false },
|
|
22
22
|
email_verification_expires_at: { type: Date, required: false }
|
|
23
23
|
});
|
|
24
|
-
const __vite_glob_0_1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
25
|
-
__proto__: null,
|
|
26
|
-
UserSchema,
|
|
27
|
-
ZUser
|
|
28
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
29
24
|
const ZTenant = z.object({
|
|
30
25
|
tenant_id: z.string(),
|
|
31
26
|
parent_tenant_id: z.string().optional(),
|
|
@@ -36,11 +31,6 @@ const TenantSchema = new Schema({
|
|
|
36
31
|
parent_tenant_id: { type: String },
|
|
37
32
|
name: { type: String }
|
|
38
33
|
});
|
|
39
|
-
const __vite_glob_0_0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
40
|
-
__proto__: null,
|
|
41
|
-
TenantSchema,
|
|
42
|
-
ZTenant
|
|
43
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
44
34
|
const frameworkSchemas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
45
35
|
__proto__: null,
|
|
46
36
|
TenantSchema,
|
|
@@ -653,38 +643,42 @@ function parseMixed(required = true, def) {
|
|
|
653
643
|
required
|
|
654
644
|
};
|
|
655
645
|
}
|
|
656
|
-
const { APP_NAME, DB_PORT } = process.env;
|
|
657
|
-
const connections = {};
|
|
658
646
|
let cachedModels = null;
|
|
659
|
-
const
|
|
660
|
-
const
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
const
|
|
675
|
-
|
|
676
|
-
return {
|
|
677
|
-
name,
|
|
678
|
-
model: mongoose.models[name] ?? mongoose.model(name, schema)
|
|
679
|
-
};
|
|
680
|
-
});
|
|
647
|
+
const buildAppModels = (modules) => Object.entries(modules).filter(([key, schema]) => key.endsWith("Schema") && schema instanceof mongoose.Schema).map(([key, schema]) => {
|
|
648
|
+
const name = key.replace(/Schema$/, "");
|
|
649
|
+
return {
|
|
650
|
+
name,
|
|
651
|
+
model: mongoose.models[name] ?? mongoose.model(name, schema)
|
|
652
|
+
};
|
|
653
|
+
});
|
|
654
|
+
const buildFrameworkModels = () => Object.entries(frameworkSchemas).filter(([_, schema]) => schema instanceof mongoose.Schema).map(([key, schema]) => {
|
|
655
|
+
const name = key.replace(/Schema$/, "");
|
|
656
|
+
return {
|
|
657
|
+
name,
|
|
658
|
+
model: mongoose.models[name] ?? mongoose.model(name, schema)
|
|
659
|
+
};
|
|
660
|
+
});
|
|
661
|
+
const buildModels = (modules) => {
|
|
662
|
+
const appModels = buildAppModels(modules);
|
|
663
|
+
const frameworkModels = buildFrameworkModels();
|
|
681
664
|
return [...frameworkModels, ...appModels].reduce((acc, { name, model }) => {
|
|
682
665
|
acc[name] = model;
|
|
683
666
|
return acc;
|
|
684
667
|
}, {});
|
|
685
668
|
};
|
|
669
|
+
const registerModels = (modules) => {
|
|
670
|
+
cachedModels = buildModels(modules);
|
|
671
|
+
};
|
|
672
|
+
const getRegisteredModels = () => {
|
|
673
|
+
if (!cachedModels) {
|
|
674
|
+
throw new Error("Models not registered. Call registerModels before using loadModel.");
|
|
675
|
+
}
|
|
676
|
+
return cachedModels;
|
|
677
|
+
};
|
|
678
|
+
const { APP_NAME, DB_PORT } = process.env;
|
|
679
|
+
const connections = {};
|
|
686
680
|
const loadModel = async (modelName, ctx) => {
|
|
687
|
-
const models =
|
|
681
|
+
const models = getRegisteredModels();
|
|
688
682
|
const tenantId = ctx.req.session?.user?.current_tenant_id || "00000000";
|
|
689
683
|
assert(tenantId, "Tenant ID is missing from session");
|
|
690
684
|
const dbName = ["User", "Tenant"].includes(modelName) ? `${APP_NAME}-users-db` : `${APP_NAME}-${tenantId}-db`;
|
|
@@ -721,7 +715,9 @@ export {
|
|
|
721
715
|
ZTenant,
|
|
722
716
|
ZUser,
|
|
723
717
|
extendZod,
|
|
718
|
+
getRegisteredModels,
|
|
724
719
|
loadModel,
|
|
720
|
+
registerModels,
|
|
725
721
|
z2 as z,
|
|
726
722
|
zId,
|
|
727
723
|
zUUID,
|
package/dist/loadModel.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;
|
|
1
|
+
{"version":3,"file":"loadModel.d.ts","sourceRoot":"","sources":["../src/loadModel.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG;IAClB,GAAG,EAAE;QACH,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE;gBACL,iBAAiB,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAA;SACF,GAAG,IAAI,CAAC;KACV,CAAC;CACH,CAAC;AAKF,eAAO,MAAM,SAAS,GAAU,WAAW,MAAM,EAAE,KAAK,YAAY,uDA0CnE,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { default as mongoose } from '../../vite/node_modules/mongoose';
|
|
2
|
+
type ModelModules = Record<string, unknown>;
|
|
3
|
+
export declare const registerModels: (modules: ModelModules) => void;
|
|
4
|
+
export declare const getRegisteredModels: () => Record<string, mongoose.Model<any, {}, {}, {}, any, any>>;
|
|
5
|
+
export type { ModelModules };
|
|
6
|
+
//# sourceMappingURL=registerModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerModels.d.ts","sourceRoot":"","sources":["../src/registerModels.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAA;AAK/B,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAoC3C,eAAO,MAAM,cAAc,GAAI,SAAS,YAAY,SAEnD,CAAA;AAED,eAAO,MAAM,mBAAmB,iEAK/B,CAAA;AAED,YAAY,EAAE,YAAY,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpcbase/db",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -28,11 +28,8 @@
|
|
|
28
28
|
]
|
|
29
29
|
},
|
|
30
30
|
"build-watch": {
|
|
31
|
-
"command": "../../node_modules/.bin/vite build --watch
|
|
32
|
-
"service": true
|
|
33
|
-
"dependencies": [
|
|
34
|
-
"build"
|
|
35
|
-
]
|
|
31
|
+
"command": "../../node_modules/.bin/vite build --watch",
|
|
32
|
+
"service": true
|
|
36
33
|
},
|
|
37
34
|
"release": {
|
|
38
35
|
"command": "../../scripts/publish.js",
|