pqb 0.7.2 → 0.7.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pqb",
3
- "version": "0.7.2",
3
+ "version": "0.7.3",
4
4
  "description": "Postgres query builder",
5
5
  "homepage": "https://orchid-orm.netlify.app/guide/query-builder.html",
6
6
  "repository": {
@@ -142,6 +142,7 @@ describe('column base', () => {
142
142
  adapter,
143
143
  columnTypes: {
144
144
  ...columnTypes,
145
+ text: (min = 0, max = Infinity) => columnTypes.text(min, max),
145
146
  numberTimestamp: () => numberTimestamp,
146
147
  dateTimestamp: () => dateTimestamp,
147
148
  },
@@ -291,7 +292,7 @@ describe('column base', () => {
291
292
  describe('timestamp().asDate()', () => {
292
293
  it('should parse and encode timestamp as a number', async () => {
293
294
  columnTypes
294
- .text()
295
+ .text(0, 100)
295
296
  .encode((input: number) => input)
296
297
  .parse((text) => parseInt(text))
297
298
  .as(columnTypes.integer());
@@ -98,6 +98,8 @@ export const getColumnTypes = <
98
98
  return fn(types);
99
99
  };
100
100
 
101
+ const text = (min: number, max: number) => new TextColumn().min(min).max(max);
102
+
101
103
  export const columnTypes = {
102
104
  smallint: () => new SmallIntColumn(),
103
105
  integer: () => new IntegerColumn(),
@@ -126,8 +128,8 @@ export const columnTypes = {
126
128
  new VarCharColumn(limit),
127
129
  char: <Limit extends number | undefined = undefined>(limit?: Limit) =>
128
130
  new CharColumn(limit),
129
- text: () => new TextColumn(),
130
- string: () => new TextColumn(),
131
+ text,
132
+ string: text,
131
133
  bytea: () => new ByteaColumn(),
132
134
  date: () => new DateColumn(),
133
135
  timestamp: <Precision extends number | undefined = undefined>(
package/src/db.test.ts CHANGED
@@ -100,7 +100,7 @@ describe('db', () => {
100
100
 
101
101
  expect(() =>
102
102
  db('table', (t) => ({
103
- name: t.text(),
103
+ name: t.text(0, 100),
104
104
  })),
105
105
  ).toThrow(`Table table has no primary key`);
106
106
  });
@@ -110,7 +110,7 @@ describe('db', () => {
110
110
 
111
111
  expect(() =>
112
112
  db('table', (t) => ({
113
- name: t.text(),
113
+ name: t.text(0, 100),
114
114
  })),
115
115
  ).toThrow(`Table table has no primary key`);
116
116
  });
@@ -131,7 +131,7 @@ describe('db', () => {
131
131
  });
132
132
 
133
133
  db('table', (t) => ({
134
- name: t.text(),
134
+ name: t.text(0, 100),
135
135
  }));
136
136
 
137
137
  expect(logger.warn).toBeCalledWith('Table table has no primary key');
@@ -147,7 +147,7 @@ describe('db', () => {
147
147
  });
148
148
 
149
149
  db('table', (t) => ({
150
- name: t.text(),
150
+ name: t.text(0, 100),
151
151
  }));
152
152
 
153
153
  expect(logger.warn).not.toBeCalled();
@@ -306,7 +306,7 @@ describe('json methods', () => {
306
306
  const q = User.all();
307
307
 
308
308
  const query = q.jsonPathQuery(
309
- columnTypes.text(),
309
+ columnTypes.text(0, 100),
310
310
  'data',
311
311
  '$.name',
312
312
  'name',
@@ -332,7 +332,7 @@ describe('json methods', () => {
332
332
  const q = User.all();
333
333
 
334
334
  const query = q.jsonPathQuery(
335
- columnTypes.text(),
335
+ columnTypes.text(0, 100),
336
336
  'data',
337
337
  '$.name',
338
338
  'name',
@@ -357,7 +357,7 @@ describe('json methods', () => {
357
357
  const q = User.all();
358
358
 
359
359
  const query = q.jsonPathQuery(
360
- columnTypes.array(columnTypes.text()),
360
+ columnTypes.array(columnTypes.text(0, 100)),
361
361
  q.jsonSet('data', ['tags'], ['tag']),
362
362
  '$.tags',
363
363
  'tags',
@@ -49,9 +49,15 @@ describe('query log', () => {
49
49
  const logger = {
50
50
  log: jest.fn(),
51
51
  error: jest.fn(),
52
+ warn: noop,
52
53
  };
53
54
 
54
- const db = createDb({ adapter, columnTypes, log: true, logger });
55
+ const db = createDb({
56
+ adapter,
57
+ columnTypes,
58
+ log: true,
59
+ logger,
60
+ });
55
61
 
56
62
  await db('user').where({ name: 'name' });
57
63
 
@@ -72,6 +78,7 @@ describe('query log', () => {
72
78
  const logger = {
73
79
  log: jest.fn(),
74
80
  error: jest.fn(),
81
+ warn: noop,
75
82
  };
76
83
 
77
84
  const db = createDb({
@@ -96,6 +103,7 @@ describe('query log', () => {
96
103
  const logger = {
97
104
  log: jest.fn(),
98
105
  error: jest.fn(),
106
+ warn: noop,
99
107
  };
100
108
 
101
109
  const db = createDb({ adapter, columnTypes, log: true, logger });
@@ -121,6 +129,7 @@ describe('query log', () => {
121
129
  const logger = {
122
130
  log: jest.fn(),
123
131
  error: jest.fn(),
132
+ warn: noop,
124
133
  };
125
134
 
126
135
  const db = createDb({
@@ -147,6 +156,7 @@ describe('query log', () => {
147
156
  const logger = {
148
157
  log: jest.fn(),
149
158
  error: jest.fn(),
159
+ warn: noop,
150
160
  };
151
161
 
152
162
  const db = createDb({
@@ -175,6 +185,7 @@ describe('query log', () => {
175
185
  const logger = {
176
186
  log: jest.fn(),
177
187
  error: jest.fn(),
188
+ warn: noop,
178
189
  };
179
190
 
180
191
  const db = createDb({
@@ -24,6 +24,7 @@ export const db = createDb({
24
24
  adapter,
25
25
  columnTypes: {
26
26
  ...columnTypes,
27
+ text: (min = 0, max = Infinity) => columnTypes.text(min, max),
27
28
  timestamp() {
28
29
  return columnTypes.timestamp().parse((input) => new Date(input));
29
30
  },