prostgles-server 4.2.522 → 4.2.524
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/DBSchemaBuilder/DBSchemaBuilder.d.ts +2 -5
- package/dist/DBSchemaBuilder/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder/getDBGeneratedSchema.d.ts.map +1 -1
- package/dist/DBSchemaBuilder/getDBGeneratedSchema.js +6 -0
- package/dist/DBSchemaBuilder/getDBGeneratedSchema.js.map +1 -1
- package/dist/Filtering/Filtering.d.ts +1 -1
- package/dist/WebsocketAPI/getClientHandlers.d.ts +1 -1
- package/dist/WebsocketAPI/getClientHandlers.d.ts.map +1 -1
- package/dist/WebsocketAPI/getClientHandlers.js +2 -4
- package/dist/WebsocketAPI/getClientHandlers.js.map +1 -1
- package/dist/typeTests/DBOFullyTyped.spec.js +1 -0
- package/dist/typeTests/DBOFullyTyped.spec.js.map +1 -1
- package/lib/DBSchemaBuilder/DBSchemaBuilder.ts +2 -8
- package/lib/DBSchemaBuilder/getDBGeneratedSchema.ts +8 -0
- package/lib/WebsocketAPI/getClientHandlers.ts +5 -9
- package/lib/typeTests/DBOFullyTyped.spec.ts +3 -2
- package/package.json +2 -2
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import type { AnyObject, DBSchema, TableHandler
|
|
1
|
+
import type { AnyObject, DBSchema, TableHandler } from "prostgles-types";
|
|
2
2
|
import type { TX } from "../DboBuilder/DboBuilderTypes";
|
|
3
3
|
import type { PublishAllOrNothing, PublishTableRule } from "../PublishParser/PublishParser";
|
|
4
4
|
import { type PublishObject } from "../PublishParser/PublishParser";
|
|
5
|
-
export type ServerViewHandler<T extends AnyObject = AnyObject, Schema extends DBSchema | void = void> = ViewHandler<T, Schema> & {
|
|
6
|
-
is_view: true;
|
|
7
|
-
};
|
|
8
5
|
export type ServerTableHandler<T extends AnyObject = AnyObject, Schema extends DBSchema | void = void> = TableHandler<T, Schema> & {
|
|
9
6
|
is_view: false;
|
|
10
7
|
};
|
|
11
8
|
export type DBTableHandlersFromSchema<Schema = void> = Schema extends DBSchema ? {
|
|
12
|
-
[tov_name in keyof Schema]:
|
|
9
|
+
[tov_name in keyof Schema]: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
13
10
|
} : Record<string, Partial<ServerTableHandler>>;
|
|
14
11
|
export type DBHandlerServerWithTx<TH = Record<string, Partial<ServerTableHandler>>, WithTransactions = true> = WithTransactions extends true ? {
|
|
15
12
|
tx: TX<TH>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"DBSchemaBuilder.d.ts","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/DBSchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEpE,MAAM,MAAM,kBAAkB,CAC5B,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,MAAM,SAAS,QAAQ,GAAG,IAAI,GAAG,IAAI,IACnC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,yBAAyB,CAAC,MAAM,GAAG,IAAI,IACjD,MAAM,SAAS,QAAQ,GACrB;KACG,QAAQ,IAAI,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpF,GACD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEhD,MAAM,MAAM,qBAAqB,CAC/B,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAChD,gBAAgB,GAAG,IAAI,IACrB,gBAAgB,SAAS,IAAI,GAAG;IAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3E,MAAM,MAAM,aAAa,CACvB,MAAM,GAAG,IAAI,EACb,gBAAgB,GAAG,IAAI,IACrB,yBAAyB,CAAC,MAAM,CAAC,GACnC,qBAAqB,CAAC,yBAAyB,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAE7E,MAAM,MAAM,iBAAiB,CAAC,MAAM,GAAG,IAAI,IACzC,MAAM,SAAS,QAAQ,GACrB;KACG,QAAQ,IAAI,MAAM,OAAO,CAAC,MAAM,CAAC,GAC9B,mBAAmB,GACnB,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC1D,GACD,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDBGeneratedSchema.d.ts","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/getDBGeneratedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"getDBGeneratedSchema.d.ts","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/getDBGeneratedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAK9D,eAAO,MAAM,oBAAoB,GAAI,4BAGlC;IACD,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,aAAa,EAAE,WAAW,EAAE,CAAC;CAC9B,KAAG,MA8CH,CAAC"}
|
|
@@ -12,6 +12,12 @@ const getDBGeneratedSchema = ({ config, tablesOrViews, }) => {
|
|
|
12
12
|
.forEach((tableOrView) => {
|
|
13
13
|
const { columns } = tableOrView;
|
|
14
14
|
const cols = columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
15
|
+
// const referencedBy: Record<string, string[]> = fromEntries(
|
|
16
|
+
// tablesOrViews.map((tov) => [
|
|
17
|
+
// tov.name,
|
|
18
|
+
// tov.columns.filter((col) => col.udt_name === tableOrView.name).map((col) => col.name),
|
|
19
|
+
// ]),
|
|
20
|
+
// );
|
|
15
21
|
tables.push(`${(0, utils_1.escapeTSNames)(tableOrView.name)}: {
|
|
16
22
|
columns: {${cols
|
|
17
23
|
.map((column) => `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDBGeneratedSchema.js","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/getDBGeneratedSchema.ts"],"names":[],"mappings":";;;AAEA,0CAA+C;AAC/C,mFAAgF;
|
|
1
|
+
{"version":3,"file":"getDBGeneratedSchema.js","sourceRoot":"","sources":["../../lib/DBSchemaBuilder/getDBGeneratedSchema.ts"],"names":[],"mappings":";;;AAEA,0CAA+C;AAC/C,mFAAgF;AAGzE,MAAM,oBAAoB,GAAG,CAAC,EACnC,MAAM,EACN,aAAa,GAId,EAAU,EAAE;IACX,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,kFAAkF;IAClF,aAAa;SACV,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5C,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3E,8DAA8D;QAC9D,iCAAiC;QACjC,gBAAgB;QAChB,6FAA6F;QAC7F,QAAQ;QACR,KAAK;QACL,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,qBAAa,EAAC,WAAW,CAAC,IAAI,CAAC;gBACpC,IAAI;aACb,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CAAC;QACZ,IAAA,6DAA6B,EAAC,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAChF;aACA,IAAI,CAAC,EAAE,CAAC;;SAEN,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACL,OAAO;;IAEL,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;CAgBlB,CAAC;AACF,CAAC,CAAC;AApDW,QAAA,oBAAoB,wBAoD/B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FullFilter } from "prostgles-types";
|
|
2
2
|
import { type SelectItemValidated } from "../DboBuilder/QueryBuilder/QueryBuilder";
|
|
3
|
-
export declare const FILTER_OPERANDS: readonly ["$ilike", "$like", "$nilike", "$nlike", ...("?" | "-" | "@>" | "<@" | "?|" | "?&" | "||" | "#-" | "@?"
|
|
3
|
+
export declare const FILTER_OPERANDS: readonly ["$ilike", "$like", "$nilike", "$nlike", ...("?" | "-" | "@@" | "@>" | "<@" | "?|" | "?&" | "||" | "#-" | "@?")[], "=", "<>", ">", "<", ">=", "<=", "$eq", "$ne", "$gt", "$gte", "$lt", "$lte", "$isDistinctFrom", "$isNotDistinctFrom", "$between", "$notBetween", "$in", "$nin"];
|
|
4
4
|
export declare const FILTER_OPERAND_TO_SQL_OPERAND: Record<(typeof FILTER_OPERANDS)[number], string>;
|
|
5
5
|
/**
|
|
6
6
|
* Parse a single filter
|
|
@@ -2,8 +2,8 @@ import { type ClientSchema, type SQLHandler } from "prostgles-types";
|
|
|
2
2
|
import type { AuthClientRequest } from "../Auth/AuthTypes";
|
|
3
3
|
import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
4
4
|
import type { Prostgles } from "../Prostgles";
|
|
5
|
-
import type { PermissionScope } from "../PublishParser/publishTypesAndUtils";
|
|
6
5
|
import type { ServerFunctionDefinition } from "../PublishParser/defineServerFunction";
|
|
6
|
+
import type { PermissionScope } from "../PublishParser/publishTypesAndUtils";
|
|
7
7
|
export type ClientHandlers<S = void> = {
|
|
8
8
|
clientSql: SQLHandler;
|
|
9
9
|
clientDb: DBOFullyTyped<S, false>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientHandlers.d.ts","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"getClientHandlers.d.ts","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,UAAU,EAGhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAI7E,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,IAAI,IAAI;IACrC,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IACxD,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AACF,eAAO,MAAM,iBAAiB,GAAU,CAAC,GAAG,IAAI,EAC9C,WAAW,SAAS,EACpB,WAAW,iBAAiB,EAC5B,OAAO,eAAe,GAAG,SAAS,KACjC,OAAO,CAAC,cAAc,CAyDxB,CAAC"}
|
|
@@ -9,7 +9,7 @@ const getClientHandlers = async (prostgles, clientReq, scope) => {
|
|
|
9
9
|
(await getClientSchema_1.getClientSchema.bind(prostgles)(clientReq, scope));
|
|
10
10
|
const sqlHandler = ((query, params, options) => runClientRequest_1.runClientSqlRequest.bind(prostgles)({ query, params, options }, clientReq));
|
|
11
11
|
const tableHandlers = Object.fromEntries(prostgles.dboBuilder.tablesOrViews.map((table) => {
|
|
12
|
-
const methods = [...
|
|
12
|
+
const methods = [...tableMethods];
|
|
13
13
|
const handlers = Object.fromEntries(methods.map((command) => {
|
|
14
14
|
const method = (param1, param2, param3) => runClientRequest_1.runClientRequest.bind(prostgles)({ command, tableName: table.name, param1, param2, param3 }, clientReq, scope);
|
|
15
15
|
return [command, method];
|
|
@@ -43,7 +43,7 @@ const getClientHandlers = async (prostgles, clientReq, scope) => {
|
|
|
43
43
|
return { clientDb, clientSql, clientMethods, clientSchema };
|
|
44
44
|
};
|
|
45
45
|
exports.getClientHandlers = getClientHandlers;
|
|
46
|
-
const
|
|
46
|
+
const tableMethods = (0, prostgles_types_1.getKeys)({
|
|
47
47
|
count: 1,
|
|
48
48
|
find: 1,
|
|
49
49
|
findOne: 1,
|
|
@@ -52,8 +52,6 @@ const viewMethods = (0, prostgles_types_1.getKeys)({
|
|
|
52
52
|
size: 1,
|
|
53
53
|
subscribe: 1,
|
|
54
54
|
subscribeOne: 1,
|
|
55
|
-
});
|
|
56
|
-
const tableMethods = (0, prostgles_types_1.getKeys)({
|
|
57
55
|
delete: 1,
|
|
58
56
|
insert: 1,
|
|
59
57
|
update: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getClientHandlers.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"getClientHandlers.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/getClientHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBOFullyTyped.spec.js","sourceRoot":"","sources":["../../lib/typeTests/DBOFullyTyped.spec.ts"],"names":[],"mappings":";;AAAA,yCAA2C;AAuB3C,KAAK,IAAA,oBAAQ,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IAC7C,MAAM,IAAA,gBAAI,EAAC,WAAW,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE;YACnB,MAAM,GAAG,GAAG,EAAmB,CAAC;YAChC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;YAEpB,MAAM,IAAI,GAAG,EAAqB,CAAC;YACnC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;YAEb,MAAM,EAAE,GAAG,EAAsC,CAAC;YAElD,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,OAAO,MAAe,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,KAAsB,CAAC;YAEvB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAEf,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAC5B,EAAE,EACF;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,CAAC;iBACN;aACF,CACF,CAAC;YAEF,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAET,kBAAkB;YAClB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;YAEd,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"DBOFullyTyped.spec.js","sourceRoot":"","sources":["../../lib/typeTests/DBOFullyTyped.spec.ts"],"names":[],"mappings":";;AAAA,yCAA2C;AAuB3C,KAAK,IAAA,oBAAQ,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IAC7C,MAAM,IAAA,gBAAI,EAAC,WAAW,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE;YACnB,MAAM,GAAG,GAAG,EAAmB,CAAC;YAChC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC;YAEpB,MAAM,IAAI,GAAG,EAAqB,CAAC;YACnC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;YAEb,MAAM,EAAE,GAAG,EAAsC,CAAC;YAElD,0CAA0C;YAC1C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,OAAO,MAAe,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,KAAsB,CAAC;YAEvB,6DAA6D;YAC7D,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;YAEf,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAC5B,EAAE,EACF;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,CAAC;iBACN;aACF,CACF,CAAC;YAEF,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAET,kBAAkB;YAClB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;YAEd,MAAM,GAAG,GAAG,EAA0D,CAAC;YACvE,KAAK,GAAG,CAAC,IAAI,CACX,EAAE,EACF;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;gBACjB,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;aACvB,CACF,CAAC;YAEF,KAAK,GAAG,CAAC,IAAI,CACX,EAAE,EACF;gBACE,kBAAkB;gBAClB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;aACvB,CACF,CAAC;YAEF,KAAK,GAAG,CAAC,IAAI,CACX,EAAE,EACF;gBACE,kBAAkB;gBAClB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;aACxB,CACF,CAAC;YAEF,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAGzE,CAAC;YAEJ,MAAM,OAAO,GAA+B;gBAC1C,KAAK,EAAE;oBACL,MAAM,EAAE;wBACN,MAAM,EAAE;4BACN,IAAI,EAAE,CAAC;4BACP,kBAAkB;4BAClB,OAAO,EAAE,CAAC;yBACX;wBACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;4BAClB,GAAG,GAAG;4BACN,CAAC,EAAE,CAAC,EAAE,CAAC;yBACR,CAAC;qBACH;iBACF;aACF,CAAC;YACF,OAAO,CAAC;QACV,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import type { AnyObject, DBSchema, TableHandler
|
|
1
|
+
import type { AnyObject, DBSchema, TableHandler } from "prostgles-types";
|
|
2
2
|
import type { TX } from "../DboBuilder/DboBuilderTypes";
|
|
3
3
|
import type { PublishAllOrNothing, PublishTableRule } from "../PublishParser/PublishParser";
|
|
4
4
|
import { type PublishObject } from "../PublishParser/PublishParser";
|
|
5
5
|
|
|
6
|
-
export type ServerViewHandler<
|
|
7
|
-
T extends AnyObject = AnyObject,
|
|
8
|
-
Schema extends DBSchema | void = void,
|
|
9
|
-
> = ViewHandler<T, Schema> & { is_view: true };
|
|
10
6
|
export type ServerTableHandler<
|
|
11
7
|
T extends AnyObject = AnyObject,
|
|
12
8
|
Schema extends DBSchema | void = void,
|
|
@@ -15,9 +11,7 @@ export type ServerTableHandler<
|
|
|
15
11
|
export type DBTableHandlersFromSchema<Schema = void> =
|
|
16
12
|
Schema extends DBSchema ?
|
|
17
13
|
{
|
|
18
|
-
[tov_name in keyof Schema]: Schema[tov_name]["
|
|
19
|
-
ServerViewHandler<Schema[tov_name]["columns"], Schema>
|
|
20
|
-
: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
14
|
+
[tov_name in keyof Schema]: ServerTableHandler<Schema[tov_name]["columns"], Schema>;
|
|
21
15
|
}
|
|
22
16
|
: Record<string, Partial<ServerTableHandler>>;
|
|
23
17
|
|
|
@@ -2,6 +2,7 @@ import type { TableSchema } from "prostgles-types";
|
|
|
2
2
|
import type { TableConfig } from "../TableConfig/TableConfig";
|
|
3
3
|
import { escapeTSNames } from "../utils/utils";
|
|
4
4
|
import { getColumnTypescriptDefinition } from "./getColumnTypescriptDefinition";
|
|
5
|
+
import { fromEntries } from "../PublishParser/applyScopeToTableRules";
|
|
5
6
|
|
|
6
7
|
export const getDBGeneratedSchema = ({
|
|
7
8
|
config,
|
|
@@ -19,6 +20,13 @@ export const getDBGeneratedSchema = ({
|
|
|
19
20
|
.forEach((tableOrView) => {
|
|
20
21
|
const { columns } = tableOrView;
|
|
21
22
|
const cols = columns.slice(0).sort((a, b) => a.name.localeCompare(b.name));
|
|
23
|
+
|
|
24
|
+
// const referencedBy: Record<string, string[]> = fromEntries(
|
|
25
|
+
// tablesOrViews.map((tov) => [
|
|
26
|
+
// tov.name,
|
|
27
|
+
// tov.columns.filter((col) => col.udt_name === tableOrView.name).map((col) => col.name),
|
|
28
|
+
// ]),
|
|
29
|
+
// );
|
|
22
30
|
tables.push(`${escapeTSNames(tableOrView.name)}: {
|
|
23
31
|
columns: {${cols
|
|
24
32
|
.map(
|
|
@@ -5,15 +5,14 @@ import {
|
|
|
5
5
|
type SQLHandler,
|
|
6
6
|
type SQLOptions,
|
|
7
7
|
type TableHandler,
|
|
8
|
-
type ViewHandler,
|
|
9
8
|
} from "prostgles-types";
|
|
10
9
|
import type { AuthClientRequest } from "../Auth/AuthTypes";
|
|
11
10
|
import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
12
11
|
import type { Prostgles } from "../Prostgles";
|
|
12
|
+
import type { ServerFunctionDefinition } from "../PublishParser/defineServerFunction";
|
|
13
|
+
import type { PermissionScope } from "../PublishParser/publishTypesAndUtils";
|
|
13
14
|
import { runClientMethod, runClientRequest, runClientSqlRequest } from "../runClientRequest";
|
|
14
15
|
import { getClientSchema } from "./getClientSchema";
|
|
15
|
-
import type { PermissionScope } from "../PublishParser/publishTypesAndUtils";
|
|
16
|
-
import type { ServerFunctionDefinition } from "../PublishParser/defineServerFunction";
|
|
17
16
|
|
|
18
17
|
export type ClientHandlers<S = void> = {
|
|
19
18
|
clientSql: SQLHandler;
|
|
@@ -36,7 +35,7 @@ export const getClientHandlers = async <S = void>(
|
|
|
36
35
|
) => runClientSqlRequest.bind(prostgles)({ query, params, options }, clientReq)) as SQLHandler;
|
|
37
36
|
const tableHandlers = Object.fromEntries(
|
|
38
37
|
prostgles.dboBuilder.tablesOrViews!.map((table) => {
|
|
39
|
-
const methods = [...
|
|
38
|
+
const methods = [...tableMethods];
|
|
40
39
|
const handlers = Object.fromEntries(
|
|
41
40
|
methods.map((command) => {
|
|
42
41
|
const method = (param1: unknown, param2: unknown, param3: unknown) =>
|
|
@@ -84,7 +83,7 @@ export const getClientHandlers = async <S = void>(
|
|
|
84
83
|
return { clientDb, clientSql, clientMethods, clientSchema };
|
|
85
84
|
};
|
|
86
85
|
|
|
87
|
-
const
|
|
86
|
+
const tableMethods = getKeys({
|
|
88
87
|
count: 1,
|
|
89
88
|
find: 1,
|
|
90
89
|
findOne: 1,
|
|
@@ -93,13 +92,10 @@ const viewMethods = getKeys({
|
|
|
93
92
|
size: 1,
|
|
94
93
|
subscribe: 1,
|
|
95
94
|
subscribeOne: 1,
|
|
96
|
-
} satisfies Record<keyof ViewHandler, 1>);
|
|
97
|
-
|
|
98
|
-
const tableMethods = getKeys({
|
|
99
95
|
delete: 1,
|
|
100
96
|
insert: 1,
|
|
101
97
|
update: 1,
|
|
102
98
|
upsert: 1,
|
|
103
99
|
updateBatch: 1,
|
|
104
100
|
insertMany: 1,
|
|
105
|
-
} satisfies Record<
|
|
101
|
+
} satisfies Record<keyof TableHandler, 1>);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { describe, test } from "node:test";
|
|
2
|
-
import type { ViewHandler } from "prostgles-types";
|
|
3
2
|
import type { DBOFullyTyped } from "../DBSchemaBuilder/DBSchemaBuilder";
|
|
4
3
|
import type { DBHandlerServer } from "../DboBuilder/DboBuilder";
|
|
5
4
|
import type { Publish } from "../PublishParser/PublishParser";
|
|
6
5
|
import type { DBGeneratedSchema } from "./DBoGenerated";
|
|
6
|
+
import type { TableHandler } from "prostgles-types";
|
|
7
7
|
|
|
8
8
|
type DBSchema2 = {
|
|
9
9
|
tr2: {
|
|
@@ -38,6 +38,7 @@ void describe("DBOFullyTyped test", async () => {
|
|
|
38
38
|
});
|
|
39
39
|
txRes satisfies "test";
|
|
40
40
|
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
41
42
|
db.items2.find;
|
|
42
43
|
|
|
43
44
|
const r = await db.items2.find(
|
|
@@ -55,7 +56,7 @@ void describe("DBOFullyTyped test", async () => {
|
|
|
55
56
|
//@ts-expect-error
|
|
56
57
|
r[0]?.bad_col;
|
|
57
58
|
|
|
58
|
-
const tr2 = {} as
|
|
59
|
+
const tr2 = {} as TableHandler<DBSchema2["tr2"]["columns"], DBSchema2>;
|
|
59
60
|
void tr2.find(
|
|
60
61
|
{},
|
|
61
62
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prostgles-server",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.524",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"pg": "^8.19.0",
|
|
58
58
|
"pg-cursor": "^2.19.0",
|
|
59
59
|
"pg-promise": "^12.6.2",
|
|
60
|
-
"prostgles-types": "^4.0.
|
|
60
|
+
"prostgles-types": "^4.0.241"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@eslint/js": "^9.22.0",
|