velocious 1.0.111 → 1.0.113
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/bin/velocious.js +0 -0
- package/dist/src/database/query/index.d.ts +41 -115
- package/dist/src/database/query/index.d.ts.map +1 -1
- package/dist/src/database/query/index.js +26 -205
- package/dist/src/database/query/join-object.d.ts.map +1 -1
- package/dist/src/database/query/join-object.js +7 -2
- package/dist/src/database/query/model-class-query.d.ts +98 -0
- package/dist/src/database/query/model-class-query.d.ts.map +1 -0
- package/dist/src/database/query/model-class-query.js +249 -0
- package/dist/src/database/query-parser/select-parser.d.ts.map +1 -1
- package/dist/src/database/query-parser/select-parser.js +3 -1
- package/dist/src/database/record/index.d.ts +33 -46
- package/dist/src/database/record/index.d.ts.map +1 -1
- package/dist/src/database/record/index.js +25 -38
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/dist/src/environment-handlers/node/cli/commands/generate/base-models.js +11 -4
- package/package.json +2 -2
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { incorporate } from "incorporator";
|
|
3
|
+
import * as inflection from "inflection";
|
|
4
|
+
import { Logger } from "../../logger.js";
|
|
5
|
+
import Preloader from "./preloader.js";
|
|
6
|
+
import DatabaseQuery from "./index.js";
|
|
7
|
+
import RecordNotFoundError from "../record/record-not-found-error.js";
|
|
8
|
+
import SelectBase from "./select-base.js";
|
|
9
|
+
import SelectPlain from "./select-plain.js";
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {{[key: string]: boolean | NestedPreloadRecord }} NestedPreloadRecord
|
|
12
|
+
* @typedef {string | string[] | import("./select-base.js").default | import("./select-base.js").default[]} SelectArgumentType
|
|
13
|
+
* @typedef {object | string} WhereArgumentType
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* @template {typeof import("../record/index.js").default} MC
|
|
17
|
+
* @typedef {InstanceType<MC>} ModelOf
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* @template {typeof import("../record/index.js").default} MC
|
|
21
|
+
* @typedef {import("./index.js").QueryArgsType & object} ModelClassQueryArgsType
|
|
22
|
+
* @property {MC} modelClass
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* A generic query over some model type.
|
|
26
|
+
* @template {typeof import("../record/index.js").default} MC
|
|
27
|
+
*/
|
|
28
|
+
export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery {
|
|
29
|
+
/**
|
|
30
|
+
* @param {ModelClassQueryArgsType<MC>} args
|
|
31
|
+
*/
|
|
32
|
+
constructor(args) {
|
|
33
|
+
const { modelClass } = args;
|
|
34
|
+
if (!modelClass)
|
|
35
|
+
throw new Error(`No modelClass given in ${Object.keys(args).join(", ")}`);
|
|
36
|
+
super(args);
|
|
37
|
+
this.logger = new Logger(this);
|
|
38
|
+
this.modelClass = modelClass;
|
|
39
|
+
}
|
|
40
|
+
/** @returns {this} */
|
|
41
|
+
clone() {
|
|
42
|
+
// @ts-expect-error
|
|
43
|
+
const newQuery = /** @type {new (args: ModelClassQueryArgsType<MC>) => this} */ (new VelociousDatabaseQueryModelClassQuery({
|
|
44
|
+
driver: this.driver,
|
|
45
|
+
froms: [...this._froms],
|
|
46
|
+
handler: this.handler.clone(),
|
|
47
|
+
groups: [...this._groups],
|
|
48
|
+
joins: [...this._joins],
|
|
49
|
+
limit: this._limit,
|
|
50
|
+
modelClass: this.modelClass,
|
|
51
|
+
offset: this._offset,
|
|
52
|
+
orders: [...this._orders],
|
|
53
|
+
page: this._page,
|
|
54
|
+
perPage: this._perPage,
|
|
55
|
+
preload: { ...this._preload },
|
|
56
|
+
selects: [...this._selects],
|
|
57
|
+
wheres: [...this._wheres]
|
|
58
|
+
}));
|
|
59
|
+
// @ts-expect-error
|
|
60
|
+
return newQuery;
|
|
61
|
+
}
|
|
62
|
+
/** @returns {Promise<number>} */
|
|
63
|
+
async count() {
|
|
64
|
+
// Generate count SQL
|
|
65
|
+
let sql = `COUNT(${this.driver.quoteTable(this.getModelClass().tableName())}.${this.driver.quoteColumn(this.getModelClass().primaryKey())})`;
|
|
66
|
+
if (this.driver.getType() == "pgsql")
|
|
67
|
+
sql += "::int";
|
|
68
|
+
sql += " AS count";
|
|
69
|
+
// Clone query and execute count
|
|
70
|
+
const countQuery = this.clone();
|
|
71
|
+
countQuery._selects = [];
|
|
72
|
+
countQuery.select(sql);
|
|
73
|
+
const results = /** @type {{ count: number }[]} */ (await countQuery._executeQuery());
|
|
74
|
+
// The query isn't grouped and a single result has been given
|
|
75
|
+
if (results.length == 1) {
|
|
76
|
+
return results[0].count;
|
|
77
|
+
}
|
|
78
|
+
// The query may be grouped and a lot of different counts a given
|
|
79
|
+
let countResult = 0;
|
|
80
|
+
for (const result of results) {
|
|
81
|
+
if (!("count" in result)) {
|
|
82
|
+
throw new Error("Invalid count result");
|
|
83
|
+
}
|
|
84
|
+
countResult += result.count;
|
|
85
|
+
}
|
|
86
|
+
return countResult;
|
|
87
|
+
}
|
|
88
|
+
/** @returns {MC} */
|
|
89
|
+
getModelClass() {
|
|
90
|
+
if (!this.modelClass)
|
|
91
|
+
throw new Error("modelClass not set");
|
|
92
|
+
return this.modelClass;
|
|
93
|
+
}
|
|
94
|
+
/** @returns {Promise<void>} */
|
|
95
|
+
async destroyAll() {
|
|
96
|
+
const records = await this.toArray();
|
|
97
|
+
for (const record of records) {
|
|
98
|
+
await record.destroy();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @param {number|string} recordId
|
|
103
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
104
|
+
*/
|
|
105
|
+
async find(recordId) {
|
|
106
|
+
/** @type {{[key: string]: number | string}} */
|
|
107
|
+
const conditions = {};
|
|
108
|
+
conditions[this.getModelClass().primaryKey()] = recordId;
|
|
109
|
+
const newQuery = /** @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone());
|
|
110
|
+
newQuery.where(conditions);
|
|
111
|
+
const record = (await newQuery.first());
|
|
112
|
+
if (!record) {
|
|
113
|
+
throw new RecordNotFoundError(`Couldn't find ${this.getModelClass().name} with '${this.getModelClass().primaryKey()}'=${recordId}`);
|
|
114
|
+
}
|
|
115
|
+
return record;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @param {{[key: string]: any}} conditions
|
|
119
|
+
* @returns {Promise<InstanceType<MC> | null>}
|
|
120
|
+
*/
|
|
121
|
+
async findBy(conditions) {
|
|
122
|
+
/** @type {{[key: string]: number | string}} */
|
|
123
|
+
const newConditions = {};
|
|
124
|
+
for (const key in conditions) {
|
|
125
|
+
const keyUnderscore = inflection.underscore(key);
|
|
126
|
+
newConditions[keyUnderscore] = conditions[key];
|
|
127
|
+
}
|
|
128
|
+
const newQuery = /** @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone());
|
|
129
|
+
newQuery.where(newConditions);
|
|
130
|
+
return await newQuery.first();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @param {{[key: string]: any}} conditions
|
|
134
|
+
* @param {function() : void} callback
|
|
135
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
136
|
+
*/
|
|
137
|
+
async findOrCreateBy(conditions, callback) {
|
|
138
|
+
const record = await this.findOrInitializeBy(conditions, callback);
|
|
139
|
+
if (record.isNewRecord()) {
|
|
140
|
+
await record.save();
|
|
141
|
+
}
|
|
142
|
+
return record;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @param {{[key: string]: any}} conditions
|
|
146
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
147
|
+
*/
|
|
148
|
+
async findByOrFail(conditions) {
|
|
149
|
+
/** @type {{[key: string]: number | string}} */
|
|
150
|
+
const newConditions = {};
|
|
151
|
+
for (const key in conditions) {
|
|
152
|
+
const keyUnderscore = inflection.underscore(key);
|
|
153
|
+
newConditions[keyUnderscore] = conditions[key];
|
|
154
|
+
}
|
|
155
|
+
const newQuery = /** @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone());
|
|
156
|
+
newQuery.where(newConditions);
|
|
157
|
+
const model = await newQuery.first();
|
|
158
|
+
if (!model) {
|
|
159
|
+
throw new Error("Record not found");
|
|
160
|
+
}
|
|
161
|
+
return model;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* @param {object} conditions
|
|
165
|
+
* @param {function(import("../record/index.js").default) : void} callback
|
|
166
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
167
|
+
*/
|
|
168
|
+
async findOrInitializeBy(conditions, callback) {
|
|
169
|
+
const record = await this.findBy(conditions);
|
|
170
|
+
if (record)
|
|
171
|
+
return record;
|
|
172
|
+
const ModelClass = this.getModelClass();
|
|
173
|
+
const newRecord = /** @type {InstanceType<MC>} */ (new ModelClass(conditions));
|
|
174
|
+
if (callback) {
|
|
175
|
+
callback(newRecord);
|
|
176
|
+
}
|
|
177
|
+
return newRecord;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
181
|
+
*/
|
|
182
|
+
async first() {
|
|
183
|
+
const newQuery = this.clone().limit(1).reorder(`${this.driver.quoteTable(this.getModelClass().tableName())}.${this.driver.quoteColumn(this.getModelClass().orderableColumn())}`);
|
|
184
|
+
const results = await newQuery.toArray();
|
|
185
|
+
return results[0];
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* @returns {Promise<InstanceType<MC>>}
|
|
189
|
+
*/
|
|
190
|
+
async last() {
|
|
191
|
+
const primaryKey = this.getModelClass().primaryKey();
|
|
192
|
+
const tableName = this.getModelClass().tableName();
|
|
193
|
+
const results = await this.clone().reorder(`${this.driver.quoteTable(tableName)}.${this.driver.quoteColumn(primaryKey)} DESC`).limit(1).toArray();
|
|
194
|
+
return results[0];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @param {NestedPreloadRecord} data
|
|
198
|
+
* @returns {this}
|
|
199
|
+
*/
|
|
200
|
+
preload(data) {
|
|
201
|
+
incorporate(this._preload, data);
|
|
202
|
+
return this;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* @param {SelectArgumentType} select
|
|
206
|
+
* @returns {this}
|
|
207
|
+
*/
|
|
208
|
+
select(select) {
|
|
209
|
+
if (Array.isArray(select)) {
|
|
210
|
+
for (const selectInArray of select) {
|
|
211
|
+
this.select(selectInArray);
|
|
212
|
+
}
|
|
213
|
+
return this;
|
|
214
|
+
}
|
|
215
|
+
if (typeof select == "string") {
|
|
216
|
+
this._selects.push(new SelectPlain(select));
|
|
217
|
+
}
|
|
218
|
+
else if (select instanceof SelectBase) {
|
|
219
|
+
this._selects.push(select);
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
throw new Error(`Invalid select type: ${typeof select}`);
|
|
223
|
+
}
|
|
224
|
+
return this;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Converts query results to array of model instances
|
|
228
|
+
* @returns {Promise<Array<InstanceType<MC>>>}
|
|
229
|
+
*/
|
|
230
|
+
async toArray() {
|
|
231
|
+
const models = [];
|
|
232
|
+
const results = await this.results();
|
|
233
|
+
for (const result of results) {
|
|
234
|
+
const ModelClass = this.getModelClass();
|
|
235
|
+
const model = /** @type {InstanceType<MC>} */ (new ModelClass());
|
|
236
|
+
model.loadExistingRecord(result);
|
|
237
|
+
models.push(model);
|
|
238
|
+
}
|
|
239
|
+
if (Object.keys(this._preload).length > 0 && models.length > 0) {
|
|
240
|
+
const preloader = new Preloader({
|
|
241
|
+
modelClass: this.modelClass,
|
|
242
|
+
models,
|
|
243
|
+
preload: this._preload
|
|
244
|
+
});
|
|
245
|
+
await preloader.run();
|
|
246
|
+
}
|
|
247
|
+
return models;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-parser.d.ts","sourceRoot":"","sources":["../../../../src/database/query-parser/select-parser.js"],"names":[],"mappings":"AAIA;IACE;;;;OAIG;IACH,4CAHG;QAAsB,MAAM,EAApB,OAAO;QACmC,KAAK,EAA/C,OAAO,mBAAmB,EAAE,OAAO;KAC7C,EAMA;IAFC,gBAAoB;IACpB,2CAAkB;IAGpB,
|
|
1
|
+
{"version":3,"file":"select-parser.d.ts","sourceRoot":"","sources":["../../../../src/database/query-parser/select-parser.js"],"names":[],"mappings":"AAIA;IACE;;;;OAIG;IACH,4CAHG;QAAsB,MAAM,EAApB,OAAO;QACmC,KAAK,EAA/C,OAAO,mBAAmB,EAAE,OAAO;KAC7C,EAMA;IAFC,gBAAoB;IACpB,2CAAkB;IAGpB,gBA2CC;CACF"}
|
|
@@ -37,7 +37,9 @@ export default class VelociousDatabaseQueryParserSelectParser {
|
|
|
37
37
|
count++;
|
|
38
38
|
}
|
|
39
39
|
if (query.getSelects().length == 0) {
|
|
40
|
-
|
|
40
|
+
// @ts-expect-error
|
|
41
|
+
if (query.constructor.name == "VelociousDatabaseQueryModelClassQuery" && query.modelClass) {
|
|
42
|
+
// @ts-expect-error
|
|
41
43
|
sql += `${query.modelClass.connection().quoteTable(query.modelClass.tableName())}.*`;
|
|
42
44
|
}
|
|
43
45
|
else {
|
|
@@ -10,16 +10,13 @@ export class ValidationError extends Error {
|
|
|
10
10
|
getModel(): VelociousDatabaseRecord;
|
|
11
11
|
/**
|
|
12
12
|
* @param {VelociousDatabaseRecord} model
|
|
13
|
+
* @returns {void}
|
|
13
14
|
*/
|
|
14
15
|
setModel(model: VelociousDatabaseRecord): void;
|
|
15
16
|
_model: VelociousDatabaseRecord;
|
|
16
|
-
/**
|
|
17
|
-
* @returns {Record<string, ValidationErrorObjectType[]>}
|
|
18
|
-
*/
|
|
17
|
+
/** @returns {Record<string, ValidationErrorObjectType[]>} */
|
|
19
18
|
getValidationErrors(): Record<string, ValidationErrorObjectType[]>;
|
|
20
|
-
/**
|
|
21
|
-
* @param {Record<string, ValidationErrorObjectType[]>} validationErrors
|
|
22
|
-
*/
|
|
19
|
+
/** @param {Record<string, ValidationErrorObjectType[]>} validationErrors */
|
|
23
20
|
setValidationErrors(validationErrors: Record<string, ValidationErrorObjectType[]>): void;
|
|
24
21
|
_validationErrors: Record<string, ValidationErrorObjectType[]>;
|
|
25
22
|
}
|
|
@@ -207,17 +204,17 @@ declare class VelociousDatabaseRecord {
|
|
|
207
204
|
*/
|
|
208
205
|
static validates(attributeName: string, validators: Record<string, boolean | Record<string, any>>): Promise<void>;
|
|
209
206
|
/**
|
|
210
|
-
* @returns {
|
|
207
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
211
208
|
*/
|
|
212
|
-
static _newQuery():
|
|
209
|
+
static _newQuery(): ModelClassQuery<typeof this>;
|
|
213
210
|
/**
|
|
214
211
|
* @returns {string}
|
|
215
212
|
*/
|
|
216
213
|
static orderableColumn(): string;
|
|
217
214
|
/**
|
|
218
|
-
* @returns {
|
|
215
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
219
216
|
*/
|
|
220
|
-
static all():
|
|
217
|
+
static all(): ModelClassQuery<typeof this>;
|
|
221
218
|
/**
|
|
222
219
|
* @returns {Promise<number>}
|
|
223
220
|
*/
|
|
@@ -244,62 +241,62 @@ declare class VelociousDatabaseRecord {
|
|
|
244
241
|
}): Promise<InstanceType<typeof this>>;
|
|
245
242
|
/**
|
|
246
243
|
* @param {{[key: string]: any}} conditions
|
|
247
|
-
* @param {function() : void} callback
|
|
244
|
+
* @param {function() : void} [callback]
|
|
248
245
|
* @returns {Promise<InstanceType<typeof this>>}
|
|
249
246
|
*/
|
|
250
247
|
static findOrCreateBy(conditions: {
|
|
251
248
|
[key: string]: any;
|
|
252
|
-
}, callback
|
|
249
|
+
}, callback?: () => void): Promise<InstanceType<typeof this>>;
|
|
253
250
|
/**
|
|
254
251
|
* @param {object} conditions
|
|
255
|
-
* @param {function(import("../record/index.js").default) : void} callback
|
|
252
|
+
* @param {function(import("../record/index.js").default) : void} [callback]
|
|
256
253
|
* @returns {Promise<InstanceType<typeof this>>}
|
|
257
254
|
*/
|
|
258
|
-
static findOrInitializeBy(conditions: object, callback
|
|
255
|
+
static findOrInitializeBy(conditions: object, callback?: (arg0: import("../record/index.js").default) => void): Promise<InstanceType<typeof this>>;
|
|
259
256
|
/**
|
|
260
257
|
* @returns {Promise<InstanceType<typeof this>>}
|
|
261
258
|
*/
|
|
262
259
|
static first(): Promise<InstanceType<typeof this>>;
|
|
263
260
|
/**
|
|
264
261
|
* @param {string|{[key: string]: any}} join
|
|
265
|
-
* @returns {
|
|
262
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
266
263
|
*/
|
|
267
264
|
static joins(join: string | {
|
|
268
265
|
[key: string]: any;
|
|
269
|
-
}):
|
|
266
|
+
}): ModelClassQuery<typeof this>;
|
|
270
267
|
/**
|
|
271
268
|
* @returns {Promise<InstanceType<typeof this>>}
|
|
272
269
|
*/
|
|
273
270
|
static last(): Promise<InstanceType<typeof this>>;
|
|
274
271
|
/**
|
|
275
272
|
* @param {number} value
|
|
276
|
-
* @returns {
|
|
273
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
277
274
|
*/
|
|
278
|
-
static limit(value: number):
|
|
275
|
+
static limit(value: number): ModelClassQuery<typeof this>;
|
|
279
276
|
/**
|
|
280
277
|
* @param {string | number} order
|
|
281
|
-
* @returns {
|
|
278
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
282
279
|
*/
|
|
283
|
-
static order(order: string | number):
|
|
280
|
+
static order(order: string | number): ModelClassQuery<typeof this>;
|
|
284
281
|
/**
|
|
285
282
|
* @param {import("../query/index.js").NestedPreloadRecord} preload
|
|
286
|
-
* @returns {
|
|
283
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
287
284
|
*/
|
|
288
|
-
static preload(preload: import("../query/index.js").NestedPreloadRecord):
|
|
285
|
+
static preload(preload: import("../query/index.js").NestedPreloadRecord): ModelClassQuery<typeof this>;
|
|
289
286
|
/**
|
|
290
287
|
* @param {import("../query/index.js").SelectArgumentType} select
|
|
291
|
-
* @returns {
|
|
288
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
292
289
|
*/
|
|
293
|
-
static select(select: import("../query/index.js").SelectArgumentType):
|
|
290
|
+
static select(select: import("../query/index.js").SelectArgumentType): ModelClassQuery<typeof this>;
|
|
294
291
|
/**
|
|
295
292
|
* @returns {Promise<VelociousDatabaseRecord[]>}
|
|
296
293
|
*/
|
|
297
294
|
static toArray(): Promise<VelociousDatabaseRecord[]>;
|
|
298
295
|
/**
|
|
299
296
|
* @param {import("../query/index.js").WhereArgumentType} where
|
|
300
|
-
* @returns {
|
|
297
|
+
* @returns {ModelClassQuery<typeof this>}
|
|
301
298
|
*/
|
|
302
|
-
static where(where: import("../query/index.js").WhereArgumentType):
|
|
299
|
+
static where(where: import("../query/index.js").WhereArgumentType): ModelClassQuery<typeof this>;
|
|
303
300
|
/**
|
|
304
301
|
* @param {Record<string, any>} changes
|
|
305
302
|
*/
|
|
@@ -440,25 +437,15 @@ declare class VelociousDatabaseRecord {
|
|
|
440
437
|
*/
|
|
441
438
|
readColumn(attributeName: string): any;
|
|
442
439
|
_belongsToChanges(): Record<string, any>;
|
|
443
|
-
/**
|
|
444
|
-
* @returns {Promise<void>}
|
|
445
|
-
*/
|
|
440
|
+
/** @returns {Promise<void>} */
|
|
446
441
|
_createNewRecord(): Promise<void>;
|
|
447
|
-
/**
|
|
448
|
-
* @returns {Promise<void>}
|
|
449
|
-
*/
|
|
442
|
+
/** @returns {Promise<void>} */
|
|
450
443
|
_updateRecordWithChanges(): Promise<void>;
|
|
451
|
-
/**
|
|
452
|
-
* @returns {number|string}
|
|
453
|
-
*/
|
|
444
|
+
/** @returns {number|string} */
|
|
454
445
|
id(): number | string;
|
|
455
|
-
/**
|
|
456
|
-
* @returns {boolean}
|
|
457
|
-
*/
|
|
446
|
+
/** @returns {boolean} */
|
|
458
447
|
isPersisted(): boolean;
|
|
459
|
-
/**
|
|
460
|
-
* @returns {boolean}
|
|
461
|
-
*/
|
|
448
|
+
/** @returns {boolean} */
|
|
462
449
|
isNewRecord(): boolean;
|
|
463
450
|
/**
|
|
464
451
|
* @param {boolean} newIsNewRecord
|
|
@@ -466,17 +453,17 @@ declare class VelociousDatabaseRecord {
|
|
|
466
453
|
*/
|
|
467
454
|
setIsNewRecord(newIsNewRecord: boolean): void;
|
|
468
455
|
/**
|
|
456
|
+
* @template {typeof VelociousDatabaseRecord} MC
|
|
469
457
|
* @param {string | number} id
|
|
458
|
+
* @returns {Promise<void>}
|
|
470
459
|
*/
|
|
471
|
-
_reloadWithId(id: string | number): Promise<void>;
|
|
460
|
+
_reloadWithId<MC extends typeof VelociousDatabaseRecord>(id: string | number): Promise<void>;
|
|
472
461
|
/**
|
|
473
462
|
* @returns {Promise<void>}
|
|
474
463
|
*/
|
|
475
464
|
reload(): Promise<void>;
|
|
476
465
|
_runValidations(): Promise<void>;
|
|
477
|
-
/**
|
|
478
|
-
* @returns {string[]}
|
|
479
|
-
*/
|
|
466
|
+
/** @returns {string[]} */
|
|
480
467
|
fullErrorMessages(): string[];
|
|
481
468
|
/**
|
|
482
469
|
* Assigns the attributes to the record and saves it.
|
|
@@ -491,5 +478,5 @@ declare class TranslationBase extends VelociousDatabaseRecord {
|
|
|
491
478
|
*/
|
|
492
479
|
locale(): string;
|
|
493
480
|
}
|
|
494
|
-
import
|
|
481
|
+
import ModelClassQuery from "../query/model-class-query.js";
|
|
495
482
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":";wCAGa;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC;AAkB5C;IACE;;OAEG;IACH,YAFa,uBAAuB,CAMnC;IAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/record/index.js"],"names":[],"mappings":"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"}
|