@juit/pgproxy-utils 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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/serialize.ts"],
4
+ "mappings": "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",
5
+ "names": ["ts"]
6
+ }
@@ -0,0 +1,9 @@
1
+ import '@juit/pgproxy-client-psql';
2
+ import ts from 'typescript';
3
+ import type { Schema } from './index';
4
+ /**
5
+ * Serialize the specified `Schema` as a TypeScript source file.
6
+ *
7
+ * If the `id` is unspecified, the default name `Schema` will be used.
8
+ */
9
+ export declare function serializeSchema(schema: Schema, id?: string, overrides?: Record<number, ts.TypeNode>): string;
@@ -0,0 +1,244 @@
1
+ // serialize.ts
2
+ import "@juit/pgproxy-client-psql";
3
+ import { PGOIDs } from "@juit/pgproxy-types";
4
+ import ts from "typescript";
5
+ import * as types from "./types.mjs";
6
+ var exportModifier = ts.factory.createModifier(ts.SyntaxKind.ExportKeyword);
7
+ var endOfFileToken = ts.factory.createToken(ts.SyntaxKind.EndOfFileToken);
8
+ var oidTypes = {
9
+ /* Basic known types |_oid__|_typname______| */
10
+ [PGOIDs.bool]: types.booleanType,
11
+ /* | 16 | bool | */
12
+ [PGOIDs.bytea]: types.uint8ArrayType,
13
+ /* | 17 | bytea | */
14
+ [PGOIDs.int8]: types.bigintType,
15
+ /* | 20 | int8 | */
16
+ [PGOIDs.int2]: types.numberType,
17
+ /* | 21 | int2 | */
18
+ [PGOIDs.int4]: types.numberType,
19
+ /* | 23 | int4 | */
20
+ [PGOIDs.oid]: types.numberType,
21
+ /* | 26 | oid | */
22
+ [PGOIDs.json]: types.anyType,
23
+ /* | 114 | json | */
24
+ [PGOIDs.point]: types.pgPointType,
25
+ /* | 600 | point | */
26
+ [PGOIDs.float4]: types.numberType,
27
+ /* | 700 | float4 | */
28
+ [PGOIDs.float8]: types.numberType,
29
+ /* | 701 | float8 | */
30
+ [PGOIDs.circle]: types.pgCircleType,
31
+ /* | 718 | circle | */
32
+ [PGOIDs.varchar]: types.stringType,
33
+ /* | 1043 | varchar | */
34
+ [PGOIDs.timestamp]: types.dateType,
35
+ /* | 1114 | timestamp | */
36
+ [PGOIDs.timestamptz]: types.dateType,
37
+ /* | 1184 | timestamptz | */
38
+ [PGOIDs.interval]: types.pgIntervalType,
39
+ /* | 1186 | interval | */
40
+ [PGOIDs.numeric]: types.stringType,
41
+ /* | 1700 | numeric | */
42
+ [PGOIDs.jsonb]: types.anyType,
43
+ /* | 3802 | jsonb | */
44
+ /* Special types |_oid__|_typname______| */
45
+ [PGOIDs.void]: types.voidType,
46
+ /* | 2278 | void | */
47
+ [PGOIDs.xid]: types.numberType,
48
+ /* | 28 | xid | */
49
+ [PGOIDs.xid8]: types.bigintType,
50
+ /* | 5069 | xid8 | */
51
+ [PGOIDs._xid]: types.numberArrayType,
52
+ /* | 1011 | _xid | */
53
+ [PGOIDs._xid8]: types.bigintArrayType,
54
+ /* | 271 | _xid8 | */
55
+ /* Native array types of the above |_oid__|_typname______| */
56
+ [PGOIDs._bool]: types.booleanArrayType,
57
+ /* | 1000 | _bool | */
58
+ [PGOIDs._bytea]: types.uint8ArrayArrayType,
59
+ /* | 1001 | _bytea | */
60
+ [PGOIDs._int8]: types.bigintArrayType,
61
+ /* | 1016 | _int8 | */
62
+ [PGOIDs._int2]: types.numberArrayType,
63
+ /* | 1005 | _int2 | */
64
+ [PGOIDs._int4]: types.numberArrayType,
65
+ /* | 1007 | _int4 | */
66
+ [PGOIDs._oid]: types.numberArrayType,
67
+ /* | 1028 | _oid | */
68
+ [PGOIDs._json]: types.anyArrayType,
69
+ /* | 199 | _json | */
70
+ [PGOIDs._point]: types.pgPointArrayType,
71
+ /* | 1017 | _point | */
72
+ [PGOIDs._float4]: types.numberArrayType,
73
+ /* | 1021 | _float4 | */
74
+ [PGOIDs._float8]: types.numberArrayType,
75
+ /* | 1022 | _float8 | */
76
+ [PGOIDs._circle]: types.pgCircleArrayType,
77
+ /* | 719 | _circle | */
78
+ [PGOIDs._timestamp]: types.dateArrayType,
79
+ /* | 1115 | _timestamp | */
80
+ [PGOIDs._timestamptz]: types.dateArrayType,
81
+ /* | 1185 | _timestamptz | */
82
+ [PGOIDs._interval]: types.pgIntervalArrayType,
83
+ /* | 1187 | _interval | */
84
+ [PGOIDs._numeric]: types.stringArrayType,
85
+ /* | 1231 | _numeric | */
86
+ [PGOIDs._jsonb]: types.anyArrayType,
87
+ /* | 3807 | _jsonb | */
88
+ /* Other known array types |_oid__|_typname______| */
89
+ [PGOIDs._cidr]: types.stringArrayType,
90
+ /* | 651 | _cidr | */
91
+ [PGOIDs._money]: types.stringArrayType,
92
+ /* | 791 | _money | */
93
+ [PGOIDs._regproc]: types.stringArrayType,
94
+ /* | 1008 | _regproc | */
95
+ [PGOIDs._text]: types.stringArrayType,
96
+ /* | 1009 | _text | */
97
+ [PGOIDs._bpchar]: types.stringArrayType,
98
+ /* | 1014 | _bpchar | */
99
+ [PGOIDs._varchar]: types.stringArrayType,
100
+ /* | 1015 | _varchar | */
101
+ [PGOIDs._macaddr]: types.stringArrayType,
102
+ /* | 1040 | _macaddr | */
103
+ [PGOIDs._inet]: types.stringArrayType,
104
+ /* | 1041 | _inet | */
105
+ [PGOIDs._date]: types.stringArrayType,
106
+ /* | 1182 | _date | */
107
+ [PGOIDs._time]: types.stringArrayType,
108
+ /* | 1183 | _time | */
109
+ [PGOIDs._timetz]: types.stringArrayType,
110
+ /* | 1270 | _timetz | */
111
+ [PGOIDs._uuid]: types.stringArrayType,
112
+ /* | 2951 | _uuid | */
113
+ /* Range types |_oid__|_typname______| */
114
+ [PGOIDs.int4range]: types.numberRangeType,
115
+ /* | 3904 | int4range | */
116
+ [PGOIDs.numrange]: types.numberRangeType,
117
+ /* | 3906 | numrange | */
118
+ [PGOIDs.tsrange]: types.dateRangeType,
119
+ /* | 3908 | tsrange | */
120
+ [PGOIDs.tstzrange]: types.dateRangeType,
121
+ /* | 3910 | tstzrange | */
122
+ [PGOIDs.daterange]: types.stringRangeType,
123
+ /* | 3912 | daterange | */
124
+ [PGOIDs.int8range]: types.bigintRangeType,
125
+ /* | 3926 | int8range | */
126
+ /* Array of range types |_oid__|_typname______| */
127
+ [PGOIDs._int4range]: types.numberRangeArrayType,
128
+ /* | 3905 | _int4range | */
129
+ [PGOIDs._numrange]: types.numberRangeArrayType,
130
+ /* | 3907 | _numrange | */
131
+ [PGOIDs._tsrange]: types.dateRangeArrayType,
132
+ /* | 3909 | _tsrange | */
133
+ [PGOIDs._tstzrange]: types.dateRangeArrayType,
134
+ /* | 3911 | _tstzrange | */
135
+ [PGOIDs._daterange]: types.stringRangeArrayType,
136
+ /* | 3913 | _daterange | */
137
+ [PGOIDs._int8range]: types.bigintRangeArrayType
138
+ /* | 3927 | _int8range | */
139
+ };
140
+ var trueLiteralTypeNode = ts.factory.createLiteralTypeNode(
141
+ ts.factory.createToken(ts.SyntaxKind.TrueKeyword)
142
+ );
143
+ var isNullableSignature = ts.factory.createPropertySignature(
144
+ void 0,
145
+ // no modifiers
146
+ "isNullable",
147
+ void 0,
148
+ // no question mark
149
+ trueLiteralTypeNode
150
+ );
151
+ var hasDefaultSignature = ts.factory.createPropertySignature(
152
+ void 0,
153
+ // no modifiers
154
+ "hasDefault",
155
+ void 0,
156
+ // no question mark
157
+ trueLiteralTypeNode
158
+ );
159
+ function serializeSchema(schema, id = "Schema", overrides = {}) {
160
+ const tables = [];
161
+ for (const [tableName, table] of Object.entries(schema)) {
162
+ const columns = [];
163
+ for (const [columnName, column] of Object.entries(table)) {
164
+ let typeNode;
165
+ if (column.oid in overrides) {
166
+ typeNode = overrides[column.oid];
167
+ } else if (column.oid in oidTypes) {
168
+ typeNode = oidTypes[column.oid];
169
+ } else if (column.enumValues) {
170
+ typeNode = ts.factory.createUnionTypeNode(
171
+ column.enumValues.map((value) => ts.factory.createLiteralTypeNode(
172
+ ts.factory.createStringLiteral(value)
173
+ ))
174
+ );
175
+ } else {
176
+ typeNode = types.stringType;
177
+ }
178
+ const typeSignature = ts.factory.createPropertySignature(
179
+ void 0,
180
+ // no modifiers
181
+ "type",
182
+ void 0,
183
+ // no question mark
184
+ typeNode
185
+ );
186
+ const definition = [typeSignature];
187
+ if (column.hasDefault)
188
+ definition.push(hasDefaultSignature);
189
+ if (column.isNullable)
190
+ definition.push(isNullableSignature);
191
+ const columnSignature = ts.factory.createPropertySignature(
192
+ void 0,
193
+ // no modifiers
194
+ ts.factory.createStringLiteral(columnName),
195
+ void 0,
196
+ // no question mark
197
+ ts.factory.createTypeLiteralNode(definition)
198
+ );
199
+ if (column.description) {
200
+ ts.addSyntheticLeadingComment(
201
+ columnSignature,
202
+ ts.SyntaxKind.MultiLineCommentTrivia,
203
+ `* ${column.description} `,
204
+ true
205
+ // trailing newline!
206
+ );
207
+ }
208
+ columns.push(columnSignature);
209
+ }
210
+ const tableSignature = ts.factory.createPropertySignature(
211
+ void 0,
212
+ // modifiers
213
+ ts.factory.createStringLiteral(tableName),
214
+ void 0,
215
+ // question mark
216
+ ts.factory.createTypeLiteralNode(columns)
217
+ // as any,
218
+ );
219
+ tables.push(tableSignature);
220
+ }
221
+ const declaration = ts.factory.createInterfaceDeclaration(
222
+ [exportModifier],
223
+ // export modifier
224
+ id,
225
+ // the name of the schema, "Schema" or whatever we were given
226
+ void 0,
227
+ // no type parameters
228
+ void 0,
229
+ // no heritage clause
230
+ tables
231
+ // all our tables signatures
232
+ );
233
+ const source = ts.factory.createSourceFile(
234
+ [declaration],
235
+ endOfFileToken,
236
+ ts.NodeFlags.None
237
+ );
238
+ const content = ts.createPrinter().printFile(source);
239
+ return content;
240
+ }
241
+ export {
242
+ serializeSchema
243
+ };
244
+ //# sourceMappingURL=serialize.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/serialize.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
package/dist/types.cjs ADDED
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // types.ts
31
+ var types_exports = {};
32
+ __export(types_exports, {
33
+ anyArrayType: () => anyArrayType,
34
+ anyType: () => anyType,
35
+ bigintArrayType: () => bigintArrayType,
36
+ bigintRangeArrayType: () => bigintRangeArrayType,
37
+ bigintRangeType: () => bigintRangeType,
38
+ bigintType: () => bigintType,
39
+ booleanArrayType: () => booleanArrayType,
40
+ booleanType: () => booleanType,
41
+ dateArrayType: () => dateArrayType,
42
+ dateRangeArrayType: () => dateRangeArrayType,
43
+ dateRangeType: () => dateRangeType,
44
+ dateType: () => dateType,
45
+ nullType: () => nullType,
46
+ numberArrayType: () => numberArrayType,
47
+ numberRangeArrayType: () => numberRangeArrayType,
48
+ numberRangeType: () => numberRangeType,
49
+ numberType: () => numberType,
50
+ pgCircleArrayType: () => pgCircleArrayType,
51
+ pgCircleType: () => pgCircleType,
52
+ pgIntervalArrayType: () => pgIntervalArrayType,
53
+ pgIntervalType: () => pgIntervalType,
54
+ pgPointArrayType: () => pgPointArrayType,
55
+ pgPointType: () => pgPointType,
56
+ stringArrayType: () => stringArrayType,
57
+ stringRangeArrayType: () => stringRangeArrayType,
58
+ stringRangeType: () => stringRangeType,
59
+ stringType: () => stringType,
60
+ uint8ArrayArrayType: () => uint8ArrayArrayType,
61
+ uint8ArrayType: () => uint8ArrayType,
62
+ voidType: () => voidType
63
+ });
64
+ module.exports = __toCommonJS(types_exports);
65
+ var import_typescript = __toESM(require("typescript"));
66
+ var import_helpers = require("./helpers.cjs");
67
+ var nullType = import_typescript.default.factory.createLiteralTypeNode(import_typescript.default.factory.createNull());
68
+ var voidType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.VoidKeyword);
69
+ var anyType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.AnyKeyword);
70
+ var bigintType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.BigIntKeyword);
71
+ var booleanType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.BooleanKeyword);
72
+ var numberType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.NumberKeyword);
73
+ var stringType = import_typescript.default.factory.createKeywordTypeNode(import_typescript.default.SyntaxKind.StringKeyword);
74
+ var dateType = import_typescript.default.factory.createTypeReferenceNode("Date");
75
+ var uint8ArrayType = import_typescript.default.factory.createTypeReferenceNode("Uint8Array");
76
+ var anyArrayType = (0, import_helpers.makePostgresArrayType)(anyType);
77
+ var bigintArrayType = (0, import_helpers.makePostgresArrayType)(bigintType);
78
+ var booleanArrayType = (0, import_helpers.makePostgresArrayType)(booleanType);
79
+ var numberArrayType = (0, import_helpers.makePostgresArrayType)(numberType);
80
+ var stringArrayType = (0, import_helpers.makePostgresArrayType)(stringType);
81
+ var dateArrayType = (0, import_helpers.makePostgresArrayType)(dateType);
82
+ var uint8ArrayArrayType = (0, import_helpers.makePostgresArrayType)(uint8ArrayType);
83
+ var pgCircleType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGCircle");
84
+ var pgIntervalType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGInterval");
85
+ var pgPointType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGPoint");
86
+ var pgCircleArrayType = (0, import_helpers.makePostgresArrayType)(pgCircleType);
87
+ var pgIntervalArrayType = (0, import_helpers.makePostgresArrayType)(pgIntervalType);
88
+ var pgPointArrayType = (0, import_helpers.makePostgresArrayType)(pgPointType);
89
+ var bigintRangeType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGRange", bigintType);
90
+ var numberRangeType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGRange", numberType);
91
+ var stringRangeType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGRange", stringType);
92
+ var dateRangeType = (0, import_helpers.makeImportType)("@juit/pgproxy-types", "PGRange", dateType);
93
+ var bigintRangeArrayType = (0, import_helpers.makePostgresArrayType)(bigintRangeType);
94
+ var numberRangeArrayType = (0, import_helpers.makePostgresArrayType)(numberRangeType);
95
+ var stringRangeArrayType = (0, import_helpers.makePostgresArrayType)(stringRangeType);
96
+ var dateRangeArrayType = (0, import_helpers.makePostgresArrayType)(dateRangeType);
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ anyArrayType,
100
+ anyType,
101
+ bigintArrayType,
102
+ bigintRangeArrayType,
103
+ bigintRangeType,
104
+ bigintType,
105
+ booleanArrayType,
106
+ booleanType,
107
+ dateArrayType,
108
+ dateRangeArrayType,
109
+ dateRangeType,
110
+ dateType,
111
+ nullType,
112
+ numberArrayType,
113
+ numberRangeArrayType,
114
+ numberRangeType,
115
+ numberType,
116
+ pgCircleArrayType,
117
+ pgCircleType,
118
+ pgIntervalArrayType,
119
+ pgIntervalType,
120
+ pgPointArrayType,
121
+ pgPointType,
122
+ stringArrayType,
123
+ stringRangeArrayType,
124
+ stringRangeType,
125
+ stringType,
126
+ uint8ArrayArrayType,
127
+ uint8ArrayType,
128
+ voidType
129
+ });
130
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/types.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAe;AAEf,qBAAsD;AAG/C,IAAM,WAAW,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,QAAQ,WAAW,CAAC;AACzE,IAAM,WAAW,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,WAAW;AAG3E,IAAM,UAAU,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,UAAU;AACzE,IAAM,aAAa,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,aAAa;AAC/E,IAAM,cAAc,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,cAAc;AACjF,IAAM,aAAa,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,aAAa;AAC/E,IAAM,aAAa,kBAAAA,QAAG,QAAQ,sBAAsB,kBAAAA,QAAG,WAAW,aAAa;AAG/E,IAAM,WAAW,kBAAAA,QAAG,QAAQ,wBAAwB,MAAM;AAC1D,IAAM,iBAAiB,kBAAAA,QAAG,QAAQ,wBAAwB,YAAY;AAGtE,IAAM,mBAAe,sCAAsB,OAAO;AAClD,IAAM,sBAAkB,sCAAsB,UAAU;AACxD,IAAM,uBAAmB,sCAAsB,WAAW;AAC1D,IAAM,sBAAkB,sCAAsB,UAAU;AACxD,IAAM,sBAAkB,sCAAsB,UAAU;AAGxD,IAAM,oBAAgB,sCAAsB,QAAQ;AACpD,IAAM,0BAAsB,sCAAsB,cAAc;AAGhE,IAAM,mBAA4B,+BAAe,uBAAuB,UAAU;AAClF,IAAM,qBAA8B,+BAAe,uBAAuB,YAAY;AACtF,IAAM,kBAA2B,+BAAe,uBAAuB,SAAS;AAGhF,IAAM,wBAAoB,sCAAsB,YAAY;AAC5D,IAAM,0BAAsB,sCAAsB,cAAc;AAChE,IAAM,uBAAmB,sCAAsB,WAAW;AAG1D,IAAM,sBAAkB,+BAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,sBAAkB,+BAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,sBAAkB,+BAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,oBAAgB,+BAAe,uBAAuB,WAAW,QAAQ;AAG/E,IAAM,2BAAuB,sCAAsB,eAAe;AAClE,IAAM,2BAAuB,sCAAsB,eAAe;AAClE,IAAM,2BAAuB,sCAAsB,eAAe;AAClE,IAAM,yBAAqB,sCAAsB,aAAa;",
5
+ "names": ["ts"]
6
+ }
@@ -0,0 +1,31 @@
1
+ import ts from 'typescript';
2
+ export declare const nullType: ts.LiteralTypeNode;
3
+ export declare const voidType: ts.KeywordTypeNode<ts.SyntaxKind.VoidKeyword>;
4
+ export declare const anyType: ts.KeywordTypeNode<ts.SyntaxKind.AnyKeyword>;
5
+ export declare const bigintType: ts.KeywordTypeNode<ts.SyntaxKind.BigIntKeyword>;
6
+ export declare const booleanType: ts.KeywordTypeNode<ts.SyntaxKind.BooleanKeyword>;
7
+ export declare const numberType: ts.KeywordTypeNode<ts.SyntaxKind.NumberKeyword>;
8
+ export declare const stringType: ts.KeywordTypeNode<ts.SyntaxKind.StringKeyword>;
9
+ export declare const dateType: ts.TypeReferenceNode;
10
+ export declare const uint8ArrayType: ts.TypeReferenceNode;
11
+ export declare const anyArrayType: ts.ArrayTypeNode;
12
+ export declare const bigintArrayType: ts.ArrayTypeNode;
13
+ export declare const booleanArrayType: ts.ArrayTypeNode;
14
+ export declare const numberArrayType: ts.ArrayTypeNode;
15
+ export declare const stringArrayType: ts.ArrayTypeNode;
16
+ export declare const dateArrayType: ts.ArrayTypeNode;
17
+ export declare const uint8ArrayArrayType: ts.ArrayTypeNode;
18
+ export declare const pgCircleType: ts.TypeNode;
19
+ export declare const pgIntervalType: ts.TypeNode;
20
+ export declare const pgPointType: ts.TypeNode;
21
+ export declare const pgCircleArrayType: ts.ArrayTypeNode;
22
+ export declare const pgIntervalArrayType: ts.ArrayTypeNode;
23
+ export declare const pgPointArrayType: ts.ArrayTypeNode;
24
+ export declare const bigintRangeType: ts.ImportTypeNode;
25
+ export declare const numberRangeType: ts.ImportTypeNode;
26
+ export declare const stringRangeType: ts.ImportTypeNode;
27
+ export declare const dateRangeType: ts.ImportTypeNode;
28
+ export declare const bigintRangeArrayType: ts.ArrayTypeNode;
29
+ export declare const numberRangeArrayType: ts.ArrayTypeNode;
30
+ export declare const stringRangeArrayType: ts.ArrayTypeNode;
31
+ export declare const dateRangeArrayType: ts.ArrayTypeNode;
package/dist/types.mjs ADDED
@@ -0,0 +1,66 @@
1
+ // types.ts
2
+ import ts from "typescript";
3
+ import { makeImportType, makePostgresArrayType } from "./helpers.mjs";
4
+ var nullType = ts.factory.createLiteralTypeNode(ts.factory.createNull());
5
+ var voidType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.VoidKeyword);
6
+ var anyType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.AnyKeyword);
7
+ var bigintType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.BigIntKeyword);
8
+ var booleanType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.BooleanKeyword);
9
+ var numberType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword);
10
+ var stringType = ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
11
+ var dateType = ts.factory.createTypeReferenceNode("Date");
12
+ var uint8ArrayType = ts.factory.createTypeReferenceNode("Uint8Array");
13
+ var anyArrayType = makePostgresArrayType(anyType);
14
+ var bigintArrayType = makePostgresArrayType(bigintType);
15
+ var booleanArrayType = makePostgresArrayType(booleanType);
16
+ var numberArrayType = makePostgresArrayType(numberType);
17
+ var stringArrayType = makePostgresArrayType(stringType);
18
+ var dateArrayType = makePostgresArrayType(dateType);
19
+ var uint8ArrayArrayType = makePostgresArrayType(uint8ArrayType);
20
+ var pgCircleType = makeImportType("@juit/pgproxy-types", "PGCircle");
21
+ var pgIntervalType = makeImportType("@juit/pgproxy-types", "PGInterval");
22
+ var pgPointType = makeImportType("@juit/pgproxy-types", "PGPoint");
23
+ var pgCircleArrayType = makePostgresArrayType(pgCircleType);
24
+ var pgIntervalArrayType = makePostgresArrayType(pgIntervalType);
25
+ var pgPointArrayType = makePostgresArrayType(pgPointType);
26
+ var bigintRangeType = makeImportType("@juit/pgproxy-types", "PGRange", bigintType);
27
+ var numberRangeType = makeImportType("@juit/pgproxy-types", "PGRange", numberType);
28
+ var stringRangeType = makeImportType("@juit/pgproxy-types", "PGRange", stringType);
29
+ var dateRangeType = makeImportType("@juit/pgproxy-types", "PGRange", dateType);
30
+ var bigintRangeArrayType = makePostgresArrayType(bigintRangeType);
31
+ var numberRangeArrayType = makePostgresArrayType(numberRangeType);
32
+ var stringRangeArrayType = makePostgresArrayType(stringRangeType);
33
+ var dateRangeArrayType = makePostgresArrayType(dateRangeType);
34
+ export {
35
+ anyArrayType,
36
+ anyType,
37
+ bigintArrayType,
38
+ bigintRangeArrayType,
39
+ bigintRangeType,
40
+ bigintType,
41
+ booleanArrayType,
42
+ booleanType,
43
+ dateArrayType,
44
+ dateRangeArrayType,
45
+ dateRangeType,
46
+ dateType,
47
+ nullType,
48
+ numberArrayType,
49
+ numberRangeArrayType,
50
+ numberRangeType,
51
+ numberType,
52
+ pgCircleArrayType,
53
+ pgCircleType,
54
+ pgIntervalArrayType,
55
+ pgIntervalType,
56
+ pgPointArrayType,
57
+ pgPointType,
58
+ stringArrayType,
59
+ stringRangeArrayType,
60
+ stringRangeType,
61
+ stringType,
62
+ uint8ArrayArrayType,
63
+ uint8ArrayType,
64
+ voidType
65
+ };
66
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/types.ts"],
4
+ "mappings": ";AAAA,OAAO,QAAQ;AAEf,SAAS,gBAAgB,6BAA6B;AAG/C,IAAM,WAAW,GAAG,QAAQ,sBAAsB,GAAG,QAAQ,WAAW,CAAC;AACzE,IAAM,WAAW,GAAG,QAAQ,sBAAsB,GAAG,WAAW,WAAW;AAG3E,IAAM,UAAU,GAAG,QAAQ,sBAAsB,GAAG,WAAW,UAAU;AACzE,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,cAAc,GAAG,QAAQ,sBAAsB,GAAG,WAAW,cAAc;AACjF,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAC/E,IAAM,aAAa,GAAG,QAAQ,sBAAsB,GAAG,WAAW,aAAa;AAG/E,IAAM,WAAW,GAAG,QAAQ,wBAAwB,MAAM;AAC1D,IAAM,iBAAiB,GAAG,QAAQ,wBAAwB,YAAY;AAGtE,IAAM,eAAe,sBAAsB,OAAO;AAClD,IAAM,kBAAkB,sBAAsB,UAAU;AACxD,IAAM,mBAAmB,sBAAsB,WAAW;AAC1D,IAAM,kBAAkB,sBAAsB,UAAU;AACxD,IAAM,kBAAkB,sBAAsB,UAAU;AAGxD,IAAM,gBAAgB,sBAAsB,QAAQ;AACpD,IAAM,sBAAsB,sBAAsB,cAAc;AAGhE,IAAM,eAA4B,eAAe,uBAAuB,UAAU;AAClF,IAAM,iBAA8B,eAAe,uBAAuB,YAAY;AACtF,IAAM,cAA2B,eAAe,uBAAuB,SAAS;AAGhF,IAAM,oBAAoB,sBAAsB,YAAY;AAC5D,IAAM,sBAAsB,sBAAsB,cAAc;AAChE,IAAM,mBAAmB,sBAAsB,WAAW;AAG1D,IAAM,kBAAkB,eAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,kBAAkB,eAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,kBAAkB,eAAe,uBAAuB,WAAW,UAAU;AACnF,IAAM,gBAAgB,eAAe,uBAAuB,WAAW,QAAQ;AAG/E,IAAM,uBAAuB,sBAAsB,eAAe;AAClE,IAAM,uBAAuB,sBAAsB,eAAe;AAClE,IAAM,uBAAuB,sBAAsB,eAAe;AAClE,IAAM,qBAAqB,sBAAsB,aAAa;",
5
+ "names": []
6
+ }
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@juit/pgproxy-utils",
3
+ "version": "1.0.0",
4
+ "main": "./dist/index.cjs",
5
+ "module": "./dist/index.mjs",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "require": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.cjs"
12
+ },
13
+ "import": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.mjs"
16
+ }
17
+ }
18
+ },
19
+ "author": "Juit Developers <developers@juit.com>",
20
+ "license": "Apache-2.0",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+ssh://git@github.com/juitnow/juit-pgproxy.git"
24
+ },
25
+ "keywords": [
26
+ "database",
27
+ "pg",
28
+ "pool",
29
+ "postgres",
30
+ "proxy"
31
+ ],
32
+ "bugs": {
33
+ "url": "https://github.com/juitnow/juit-pgproxy/issues"
34
+ },
35
+ "homepage": "https://github.com/juitnow/juit-pgproxy#readme",
36
+ "directories": {
37
+ "test": "test"
38
+ },
39
+ "files": [
40
+ "*.md",
41
+ "dist/",
42
+ "src/"
43
+ ],
44
+ "dependencies": {
45
+ "@juit/pgproxy-client": "1.0.0",
46
+ "@juit/pgproxy-persister": "1.0.0",
47
+ "@juit/pgproxy-types": "1.0.0",
48
+ "@plugjs/plug": "^0.5.18"
49
+ }
50
+ }
@@ -0,0 +1,48 @@
1
+ import { Persister, escape } from '@juit/pgproxy-persister'
2
+ import { $ylw, log } from '@plugjs/plug'
3
+
4
+ const NAME_EXPR = /^[-\w]{4,}$/
5
+
6
+ /** Create a test database name from a prefix and some randomness */
7
+ export function testdb(prefix = 'test'): string {
8
+ if (! NAME_EXPR.test(prefix)) throw new Error(`Invalid database name prefix "${prefix}"`)
9
+ const random = String(Math.floor(Math.random() * 10000)).padStart(4, '0')
10
+ return `${prefix}-${new Date().toISOString().replace(/[^\d]/g, '')}-${random}`
11
+ }
12
+
13
+ /**
14
+ * Create a database with the specified name (or a test database).
15
+ *
16
+ * The default database name to use is the result of calling {@link testdb()}.
17
+ *
18
+ * The default URL to use when creating the database is `psql:///postgres`.
19
+ */
20
+ export async function createdb(
21
+ name = testdb(),
22
+ url: string | URL = 'psql:///postgres',
23
+ ): Promise<string> {
24
+ if (! NAME_EXPR.test(name)) throw new Error(`Invalid database name "${name}"`)
25
+ log.notice(`Creating database ${$ylw(name)}`)
26
+
27
+ const persister = new Persister(url)
28
+ await persister.query(`CREATE DATABASE ${escape(name)}`)
29
+ await persister.destroy()
30
+ return name
31
+ }
32
+
33
+ /**
34
+ * Drop the database with the specified name.
35
+ *
36
+ * The default URL to use when creating the database is `psql:///postgres`.
37
+ */
38
+ export async function dropdb(
39
+ name: string,
40
+ url: string | URL = 'psql:///postgres',
41
+ ): Promise<void> {
42
+ if (! NAME_EXPR.test(name)) throw new Error(`Invalid database name "${name}"`)
43
+ log.notice(`Dropping database ${$ylw(name)}`)
44
+
45
+ const persister = new Persister(url)
46
+ await persister.query(`DROP DATABASE IF EXISTS ${escape(name)}`)
47
+ await persister.destroy()
48
+ }