@prairielearn/postgres 1.6.0 → 1.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/pool.test.js CHANGED
@@ -5,6 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const chai_1 = __importDefault(require("chai"));
7
7
  const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
8
+ const node_stream_1 = require("node:stream");
9
+ const promises_1 = require("node:stream/promises");
8
10
  const zod_1 = require("zod");
9
11
  const default_pool_1 = require("./default-pool");
10
12
  const test_utils_1 = require("./test-utils");
@@ -13,22 +15,88 @@ const { assert } = chai_1.default;
13
15
  const postgresTestUtils = (0, test_utils_1.makePostgresTestUtils)({
14
16
  database: 'prairielearn_postgres',
15
17
  });
18
+ const WorkspaceSchema = zod_1.z.object({
19
+ id: zod_1.z.string(),
20
+ created_at: zod_1.z.date(),
21
+ });
16
22
  describe('@prairielearn/postgres', function () {
17
23
  before(async () => {
18
24
  await postgresTestUtils.createDatabase();
19
- await (0, default_pool_1.queryAsync)('CREATE TABLE workspaces (id BIGSERIAL PRIMARY KEY, state TEXT);', {});
20
- await (0, default_pool_1.queryAsync)("INSERT INTO workspaces (id, state) VALUES (1,'uninitialized');", {});
21
- await (0, default_pool_1.queryAsync)("INSERT INTO workspaces (id, state) VALUES (2, 'stopped');", {});
22
- await (0, default_pool_1.queryAsync)("INSERT INTO workspaces (id, state) VALUES (3, 'launching');", {});
23
- await (0, default_pool_1.queryAsync)("INSERT INTO workspaces (id, state) VALUES (4, 'running');", {});
25
+ await (0, default_pool_1.queryAsync)('CREATE TABLE workspaces (id BIGSERIAL PRIMARY KEY, created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP);', {});
26
+ await (0, default_pool_1.queryAsync)('INSERT INTO workspaces (id) SELECT s FROM generate_series(1, 100) AS s', {});
24
27
  });
25
28
  after(async () => {
26
29
  await postgresTestUtils.dropDatabase();
27
30
  });
31
+ describe('queryRows', () => {
32
+ it('handles single column', async () => {
33
+ const rows = await (0, default_pool_1.queryRows)('SELECT id FROM workspaces WHERE id <= 10;', zod_1.z.string());
34
+ assert.lengthOf(rows, 10);
35
+ assert.equal(rows[0], '1');
36
+ });
37
+ it('handles multiple columns', async () => {
38
+ const rows = await (0, default_pool_1.queryRows)('SELECT * FROM workspaces WHERE id <= 10;', WorkspaceSchema);
39
+ assert.lengthOf(rows, 10);
40
+ assert.equal(rows[0].id, '1');
41
+ assert.isNotNull(rows[0].created_at);
42
+ });
43
+ it('handles parameters', async () => {
44
+ const rows = await (0, default_pool_1.queryRows)('SELECT * FROM workspaces WHERE id <= $1;', [10], WorkspaceSchema);
45
+ assert.lengthOf(rows, 10);
46
+ });
47
+ });
48
+ describe('queryRow', () => {
49
+ it('handles single column', async () => {
50
+ const row = await (0, default_pool_1.queryRow)('SELECT id FROM workspaces WHERE id = 1;', zod_1.z.string());
51
+ assert.equal(row, '1');
52
+ });
53
+ it('handles multiple columns', async () => {
54
+ const row = await (0, default_pool_1.queryRow)('SELECT * FROM workspaces WHERE id = 1;', WorkspaceSchema);
55
+ assert.equal(row.id, '1');
56
+ assert.isNotNull(row.created_at);
57
+ });
58
+ it('handles parameters', async () => {
59
+ const row = await (0, default_pool_1.queryRow)('SELECT * FROM workspaces WHERE id = $1;', [1], WorkspaceSchema);
60
+ assert.equal(row.id, '1');
61
+ });
62
+ it('rejects results with zero rows', async () => {
63
+ const rows = (0, default_pool_1.queryRow)('SELECT * FROM workspaces WHERE id = -1;', WorkspaceSchema);
64
+ await assert.isRejected(rows, 'Incorrect rowCount: 0');
65
+ });
66
+ it('rejects results with multiple rows', async () => {
67
+ const rows = (0, default_pool_1.queryRow)('SELECT * FROM workspaces', WorkspaceSchema);
68
+ await assert.isRejected(rows, 'Incorrect rowCount: 100');
69
+ });
70
+ });
71
+ describe('queryOptionalRow', () => {
72
+ it('handles single column', async () => {
73
+ const row = await (0, default_pool_1.queryRow)('SELECT id FROM workspaces WHERE id = 1;', zod_1.z.string());
74
+ assert.equal(row, '1');
75
+ });
76
+ it('handles multiple columns', async () => {
77
+ const row = await (0, default_pool_1.queryOptionalRow)('SELECT * FROM workspaces WHERE id = 1;', WorkspaceSchema);
78
+ assert.isNotNull(row);
79
+ assert.equal(row?.id, '1');
80
+ assert.isNotNull(row?.created_at);
81
+ });
82
+ it('handles parameters', async () => {
83
+ const row = await (0, default_pool_1.queryOptionalRow)('SELECT * FROM workspaces WHERE id = $1;', [1], WorkspaceSchema);
84
+ assert.isNotNull(row);
85
+ assert.equal(row?.id, '1');
86
+ });
87
+ it('handles missing result', async () => {
88
+ const row = await (0, default_pool_1.queryOptionalRow)('SELECT * FROM workspaces WHERE id = -1;', WorkspaceSchema);
89
+ assert.isNull(row);
90
+ });
91
+ it('rejects with multiple rows', async () => {
92
+ const rows = (0, default_pool_1.queryOptionalRow)('SELECT * FROM workspaces', WorkspaceSchema);
93
+ await assert.isRejected(rows, 'Incorrect rowCount: 100');
94
+ });
95
+ });
28
96
  describe('queryCursor', () => {
29
97
  it('returns zero rows', async () => {
30
- const cursor = await (0, default_pool_1.queryCursor)('SELECT * FROM workspaces WHERE id = 5;', {});
31
- let rowBatches = [];
98
+ const cursor = await (0, default_pool_1.queryCursor)('SELECT * FROM workspaces WHERE id = 10000;', {});
99
+ const rowBatches = [];
32
100
  for await (const rows of cursor.iterate(10)) {
33
101
  rowBatches.push(rows);
34
102
  }
@@ -45,13 +113,13 @@ describe('@prairielearn/postgres', function () {
45
113
  assert.lengthOf(rowBatches[1], 1);
46
114
  });
47
115
  it('returns all rows at once', async () => {
48
- const cursor = (0, default_pool_1.queryCursor)('SELECT * FROM workspaces;', {});
116
+ const cursor = (0, default_pool_1.queryCursor)('SELECT * FROM workspaces WHERE id <= 10;', {});
49
117
  const rowBatches = [];
50
118
  for await (const rows of (await cursor).iterate(10)) {
51
119
  rowBatches.push(rows);
52
120
  }
53
121
  assert.lengthOf(rowBatches, 1);
54
- assert.lengthOf(rowBatches[0], 4);
122
+ assert.lengthOf(rowBatches[0], 10);
55
123
  });
56
124
  it('handles errors', async () => {
57
125
  const cursor = await (0, default_pool_1.queryCursor)('NOT VALID SQL', { foo: 'bar' });
@@ -73,64 +141,81 @@ describe('@prairielearn/postgres', function () {
73
141
  });
74
142
  });
75
143
  describe('queryValidatedCursor', () => {
76
- it('validates with provided schema', async () => {
77
- const WorkspaceSchema = zod_1.z.object({
78
- id: zod_1.z.string(),
79
- });
80
- const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces ORDER BY id ASC;', {}, WorkspaceSchema);
81
- const allRows = [];
82
- for await (const rows of cursor.iterate(10)) {
83
- allRows.push(...rows);
84
- }
85
- assert.lengthOf(allRows, 4);
86
- const workspace = allRows[0];
87
- assert.equal(workspace.id, '1');
88
- assert.isUndefined(workspace.state);
89
- });
90
- it('throws error when validation fails', async () => {
91
- const BadWorkspaceSchema = zod_1.z.object({
92
- badProperty: zod_1.z.string(),
93
- });
94
- const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces ORDER BY id ASC;', {}, BadWorkspaceSchema);
95
- async function readAllRows() {
144
+ const WorkspaceSchema = zod_1.z.object({
145
+ id: zod_1.z.string(),
146
+ });
147
+ const BadWorkspaceSchema = zod_1.z.object({
148
+ badProperty: zod_1.z.string(),
149
+ });
150
+ describe('iterator', () => {
151
+ it('validates with provided schema', async () => {
152
+ const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces WHERE id <= 10 ORDER BY id ASC;', {}, WorkspaceSchema);
96
153
  const allRows = [];
97
154
  for await (const rows of cursor.iterate(10)) {
98
155
  allRows.push(...rows);
99
156
  }
100
- return allRows;
101
- }
102
- const maybeError = await readAllRows().catch((err) => err);
103
- assert.instanceOf(maybeError, zod_1.ZodError);
104
- assert.lengthOf(maybeError.errors, 4);
105
- });
106
- it('returns a stream', async () => {
107
- const WorkspaceSchema = zod_1.z.object({
108
- id: zod_1.z.string(),
157
+ assert.lengthOf(allRows, 10);
158
+ const workspace = allRows[0];
159
+ assert.equal(workspace.id, '1');
160
+ assert.isUndefined(workspace.state);
109
161
  });
110
- const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces ORDER BY id ASC;', {}, WorkspaceSchema);
111
- const stream = cursor.stream(1);
112
- const allRows = [];
113
- for await (const row of stream) {
114
- allRows.push(row);
115
- }
116
- assert.lengthOf(allRows, 4);
117
- });
118
- it('emits an error when validation fails', async () => {
119
- const BadWorkspaceSchema = zod_1.z.object({
120
- badProperty: zod_1.z.string(),
162
+ it('throws error when validation fails', async () => {
163
+ const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces WHERE id <= 10 ORDER BY id ASC;', {}, BadWorkspaceSchema);
164
+ async function readAllRows() {
165
+ const allRows = [];
166
+ for await (const rows of cursor.iterate(10)) {
167
+ allRows.push(...rows);
168
+ }
169
+ return allRows;
170
+ }
171
+ const maybeError = await readAllRows().catch((err) => err);
172
+ assert.instanceOf(maybeError, zod_1.ZodError);
173
+ assert.lengthOf(maybeError.errors, 10);
121
174
  });
122
- const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces ORDER BY id ASC;', {}, BadWorkspaceSchema);
123
- const stream = cursor.stream(1);
124
- async function readAllRows() {
175
+ });
176
+ describe('stream', () => {
177
+ it('validates with provided schema', async () => {
178
+ const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces WHERE id <= 10 ORDER BY id ASC;', {}, WorkspaceSchema);
179
+ const stream = cursor.stream(1);
125
180
  const allRows = [];
126
181
  for await (const row of stream) {
127
182
  allRows.push(row);
128
183
  }
129
- return allRows;
130
- }
131
- const maybeError = await readAllRows().catch((err) => err);
132
- assert.instanceOf(maybeError, zod_1.ZodError);
133
- assert.lengthOf(maybeError.errors, 1);
184
+ assert.lengthOf(allRows, 10);
185
+ });
186
+ it('emits an error when validation fails', async () => {
187
+ const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces ORDER BY id ASC;', {}, BadWorkspaceSchema);
188
+ const stream = cursor.stream(1);
189
+ async function readAllRows() {
190
+ const allRows = [];
191
+ for await (const row of stream) {
192
+ allRows.push(row);
193
+ }
194
+ return allRows;
195
+ }
196
+ const maybeError = await readAllRows().catch((err) => err);
197
+ assert.instanceOf(maybeError, zod_1.ZodError);
198
+ assert.lengthOf(maybeError.errors, 1);
199
+ });
200
+ it('closes the cursor when the stream is closed', async () => {
201
+ const cursor = await (0, default_pool_1.queryValidatedCursor)('SELECT * FROM workspaces;', {}, WorkspaceSchema);
202
+ const stream = cursor.stream(1);
203
+ const rows = [];
204
+ const ac = new AbortController();
205
+ const writable = new node_stream_1.Writable({
206
+ objectMode: true,
207
+ write: function (chunk, _encoding, callback) {
208
+ rows.push(chunk);
209
+ // After receiving the first row, abort the stream. This lets us test
210
+ // that the underlying cursor is closed. If it is *not* closed, this
211
+ // `after` hook will fail with a timeout.
212
+ ac.abort();
213
+ callback();
214
+ },
215
+ });
216
+ await assert.isRejected((0, promises_1.pipeline)(stream, writable, { signal: ac.signal }));
217
+ assert.lengthOf(rows, 1);
218
+ });
134
219
  });
135
220
  });
136
221
  });
@@ -1 +1 @@
1
- {"version":3,"file":"pool.test.js","sourceRoot":"","sources":["../src/pool.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pool.test.js","sourceRoot":"","sources":["../src/pool.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,29 +1,34 @@
1
1
  {
2
2
  "name": "@prairielearn/postgres",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "main": "./dist/index.js",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/PrairieLearn/PrairieLearn.git",
8
+ "directory": "packages/postgres"
9
+ },
5
10
  "scripts": {
6
11
  "build": "tsc",
7
12
  "dev": "tsc --watch --preserveWatchOutput",
8
13
  "test": "mocha --no-config --require ts-node/register src/*.test.ts"
9
14
  },
10
15
  "devDependencies": {
11
- "@prairielearn/tsconfig": "*",
16
+ "@prairielearn/tsconfig": "^0.0.0",
12
17
  "@types/mocha": "^10.0.1",
13
18
  "@types/multipipe": "^3.0.1",
14
- "@types/node": "^18.14.2",
19
+ "@types/node": "^18.16.3",
15
20
  "mocha": "^10.2.0",
16
21
  "ts-node": "^10.9.1",
17
- "typescript": "^4.9.4"
22
+ "typescript": "^5.0.4"
18
23
  },
19
24
  "dependencies": {
20
25
  "@types/debug": "^4.1.7",
21
- "@types/lodash": "^4.14.191",
26
+ "@types/lodash": "^4.14.194",
22
27
  "@types/pg-cursor": "^2.7.0",
23
28
  "multipipe": "^4.0.0",
24
29
  "pg": "^8.10.0",
25
30
  "pg-cursor": "^2.9.0",
26
31
  "pg-pool": "^3.6.0",
27
- "zod": "^3.20.6"
32
+ "zod": "^3.21.4"
28
33
  }
29
34
  }
@@ -62,6 +62,9 @@ export const queryValidatedSingleColumnZeroOrOneRow =
62
62
  export const callValidatedRows = defaultPool.callValidatedRows.bind(defaultPool);
63
63
  export const callValidatedOneRow = defaultPool.callValidatedOneRow.bind(defaultPool);
64
64
  export const callValidatedZeroOrOneRow = defaultPool.callValidatedZeroOrOneRow.bind(defaultPool);
65
+ export const queryRows = defaultPool.queryRows.bind(defaultPool);
66
+ export const queryRow = defaultPool.queryRow.bind(defaultPool);
67
+ export const queryOptionalRow = defaultPool.queryOptionalRow.bind(defaultPool);
65
68
  export const queryCursorWithClient = defaultPool.queryCursorWithClient.bind(defaultPool);
66
69
  export const queryCursor = defaultPool.queryCursor.bind(defaultPool);
67
70
  export const queryValidatedCursor = defaultPool.queryValidatedCursor.bind(defaultPool);
package/src/loader.ts CHANGED
@@ -11,7 +11,7 @@ export function loadSql(filename: string): SqlFile {
11
11
  const blockRE = /^ *-- *BLOCK +([^ ]+) *$/;
12
12
  let blockName: string | null = null;
13
13
  lines.forEach((line) => {
14
- var result = blockRE.exec(line);
14
+ const result = blockRE.exec(line);
15
15
  if (result) {
16
16
  blockName = result[1];
17
17
  if (sql[blockName]) throw new Error(`${filename}: duplicate BLOCK name: ${blockName}`);