@antelopejs/interface-data-api 0.4.0 → 0.6.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/README.md +26 -22
- package/dist/antelope.test.js +1 -5
- package/dist/antelope.test.js.map +1 -1
- package/dist/components.d.ts +67 -39
- package/dist/components.js +106 -685
- package/dist/components.js.map +1 -1
- package/dist/index.d.ts +57 -68
- package/dist/index.js +114 -100
- package/dist/index.js.map +1 -1
- package/dist/internal/computed.d.ts +6 -0
- package/dist/internal/computed.js +51 -0
- package/dist/internal/computed.js.map +1 -0
- package/dist/internal/controller-types.d.ts +34 -0
- package/dist/internal/controller-types.js +4 -0
- package/dist/internal/controller-types.js.map +1 -0
- package/dist/internal/default-filter.d.ts +4 -0
- package/dist/internal/default-filter.js +29 -0
- package/dist/internal/default-filter.js.map +1 -0
- package/dist/internal/deferred-joined-stream.d.ts +11 -0
- package/dist/internal/deferred-joined-stream.js +125 -0
- package/dist/internal/deferred-joined-stream.js.map +1 -0
- package/dist/internal/extractors.d.ts +25 -0
- package/dist/internal/extractors.js +31 -0
- package/dist/internal/extractors.js.map +1 -0
- package/dist/internal/field-types.d.ts +199 -0
- package/dist/internal/field-types.js +4 -0
- package/dist/internal/field-types.js.map +1 -0
- package/dist/internal/filters.d.ts +6 -0
- package/dist/internal/filters.js +22 -0
- package/dist/internal/filters.js.map +1 -0
- package/dist/internal/foreign.d.ts +6 -0
- package/dist/internal/foreign.js +116 -0
- package/dist/internal/foreign.js.map +1 -0
- package/dist/internal/guards.d.ts +39 -0
- package/dist/internal/guards.js +116 -0
- package/dist/internal/guards.js.map +1 -0
- package/dist/internal/joined.d.ts +28 -0
- package/dist/internal/joined.js +127 -0
- package/dist/internal/joined.js.map +1 -0
- package/dist/internal/list.d.ts +16 -0
- package/dist/internal/list.js +182 -0
- package/dist/internal/list.js.map +1 -0
- package/dist/internal/meta-records.d.ts +19 -0
- package/dist/internal/meta-records.js +78 -0
- package/dist/internal/meta-records.js.map +1 -0
- package/dist/internal/properties.d.ts +4 -0
- package/dist/internal/properties.js +45 -0
- package/dist/internal/properties.js.map +1 -0
- package/dist/internal/prototypes.d.ts +14 -0
- package/dist/internal/prototypes.js +38 -0
- package/dist/internal/prototypes.js.map +1 -0
- package/dist/internal/read-properties.d.ts +3 -0
- package/dist/internal/read-properties.js +29 -0
- package/dist/internal/read-properties.js.map +1 -0
- package/dist/internal/table-reference.d.ts +11 -0
- package/dist/internal/table-reference.js +46 -0
- package/dist/internal/table-reference.js.map +1 -0
- package/dist/internal/tables.d.ts +28 -0
- package/dist/internal/tables.js +48 -0
- package/dist/internal/tables.js.map +1 -0
- package/dist/internal/validation.d.ts +12 -0
- package/dist/internal/validation.js +100 -0
- package/dist/internal/validation.js.map +1 -0
- package/dist/metadata.d.ts +27 -228
- package/dist/metadata.js +84 -213
- package/dist/metadata.js.map +1 -1
- package/dist/tests/components/access_control.test.js +28 -20
- package/dist/tests/components/access_control.test.js.map +1 -1
- package/dist/tests/components/computed.test.js +36 -27
- package/dist/tests/components/computed.test.js.map +1 -1
- package/dist/tests/components/cross_instance.test.js +8 -6
- package/dist/tests/components/cross_instance.test.js.map +1 -1
- package/dist/tests/components/deferred_joined.test.js +57 -54
- package/dist/tests/components/deferred_joined.test.js.map +1 -1
- package/dist/tests/components/extract_generic.test.d.ts +1 -0
- package/dist/tests/components/extract_generic.test.js +64 -0
- package/dist/tests/components/extract_generic.test.js.map +1 -0
- package/dist/tests/components/filter_comparisons.test.d.ts +1 -0
- package/dist/tests/components/filter_comparisons.test.js +34 -0
- package/dist/tests/components/filter_comparisons.test.js.map +1 -0
- package/dist/tests/components/filter_list_route.test.d.ts +1 -0
- package/dist/tests/components/filter_list_route.test.js +182 -0
- package/dist/tests/components/filter_list_route.test.js.map +1 -0
- package/dist/tests/components/filter_options.test.js +11 -10
- package/dist/tests/components/filter_options.test.js.map +1 -1
- package/dist/tests/components/foreign_computed.test.js +23 -14
- package/dist/tests/components/foreign_computed.test.js.map +1 -1
- package/dist/tests/components/foreign_joined.test.js +31 -27
- package/dist/tests/components/foreign_joined.test.js.map +1 -1
- package/dist/tests/components/joined.test.js +59 -45
- package/dist/tests/components/joined.test.js.map +1 -1
- package/dist/tests/components/listable.test.js +78 -58
- package/dist/tests/components/listable.test.js.map +1 -1
- package/dist/tests/components/localized_sort.test.js +14 -11
- package/dist/tests/components/localized_sort.test.js.map +1 -1
- package/dist/tests/components/mandatory.test.js +25 -25
- package/dist/tests/components/mandatory.test.js.map +1 -1
- package/dist/tests/components/modifier_key.test.js +27 -18
- package/dist/tests/components/modifier_key.test.js.map +1 -1
- package/dist/tests/components/parse_body.test.d.ts +1 -0
- package/dist/tests/components/parse_body.test.js +76 -0
- package/dist/tests/components/parse_body.test.js.map +1 -0
- package/dist/tests/components/parsed_value.test.js +23 -21
- package/dist/tests/components/parsed_value.test.js.map +1 -1
- package/dist/tests/components/partial_edit.test.js +38 -32
- package/dist/tests/components/partial_edit.test.js.map +1 -1
- package/dist/tests/components/per_action_access.test.js +20 -12
- package/dist/tests/components/per_action_access.test.js.map +1 -1
- package/dist/tests/components/prototype_named_filter.test.d.ts +1 -0
- package/dist/tests/components/prototype_named_filter.test.js +87 -0
- package/dist/tests/components/prototype_named_filter.test.js.map +1 -0
- package/dist/tests/components/validator.test.js +45 -37
- package/dist/tests/components/validator.test.js.map +1 -1
- package/dist/tests/components/written_row.test.d.ts +1 -0
- package/dist/tests/components/written_row.test.js +99 -0
- package/dist/tests/components/written_row.test.js.map +1 -0
- package/dist/tests/helpers/other-instance.d.ts +11 -1
- package/dist/tests/helpers/other-instance.js +35 -9
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/index/field_decorator_target.test.d.ts +1 -0
- package/dist/tests/index/field_decorator_target.test.js +20 -0
- package/dist/tests/index/field_decorator_target.test.js.map +1 -0
- package/dist/tests/index/get_guard.test.js +6 -6
- package/dist/tests/index/get_guard.test.js.map +1 -1
- package/dist/tests/index/inheritance.test.js +14 -9
- package/dist/tests/index/inheritance.test.js.map +1 -1
- package/dist/tests/index/metadata_names.test.d.ts +1 -0
- package/dist/tests/index/metadata_names.test.js +91 -0
- package/dist/tests/index/metadata_names.test.js.map +1 -0
- package/dist/tests/index/routes.test.js +49 -44
- package/dist/tests/index/routes.test.js.map +1 -1
- package/dist/tests/integration.test.d.ts +1 -1
- package/dist/tests/integration.test.js +66 -729
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/internal/controller-fields.test.d.ts +1 -0
- package/dist/tests/internal/controller-fields.test.js +25 -0
- package/dist/tests/internal/controller-fields.test.js.map +1 -0
- package/dist/tests/internal/http.d.ts +35 -0
- package/dist/tests/internal/http.js +56 -0
- package/dist/tests/internal/http.js.map +1 -0
- package/dist/tests/internal/shop-api.d.ts +1 -0
- package/dist/tests/internal/shop-api.js +331 -0
- package/dist/tests/internal/shop-api.js.map +1 -0
- package/dist/tests/internal/shop-schema.d.ts +162 -0
- package/dist/tests/internal/shop-schema.js +387 -0
- package/dist/tests/internal/shop-schema.js.map +1 -0
- package/dist/tests/utils.d.ts +8 -10
- package/dist/tests/utils.js +1 -3
- package/dist/tests/utils.js.map +1 -1
- package/dist/tests/utils.test.js +10 -11
- package/dist/tests/utils.test.js.map +1 -1
- package/docs/1.introduction.md +38 -35
- package/docs/10.joined.md +51 -40
- package/docs/11.computed.md +91 -47
- package/docs/2.data-controllers.md +50 -42
- package/docs/3.routes.md +156 -134
- package/docs/4.access-rights.md +48 -44
- package/docs/5.validators.md +65 -47
- package/docs/6.listable.md +53 -49
- package/docs/7.foreign-keys.md +55 -48
- package/docs/8.filters.md +65 -54
- package/docs/9.modifiers.md +29 -25
- package/package.json +34 -13
- package/skills/data-api-interface/SKILL.md +13 -3
- package/skills/data-api-interface/cases.json +99 -0
package/dist/metadata.d.ts
CHANGED
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
import type { RequestContext } from "@antelopejs/interface-api";
|
|
2
1
|
import type { ContainerModifier } from "@antelopejs/interface-database-decorators/modifiers/common";
|
|
3
|
-
import type { Query, SchemaInstance, ValueProxy, ValueProxyOrValue } from "@antelopejs/interface-database";
|
|
4
2
|
import { type Table } from "@antelopejs/interface-database-decorators";
|
|
5
|
-
import { type Class
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
export type DataControllerCallbackWithOptions<O = any> = {
|
|
12
|
-
endpoint?: string;
|
|
13
|
-
options?: Partial<O>;
|
|
14
|
-
callback: DataControllerCallback<O>;
|
|
15
|
-
};
|
|
16
|
-
export type ExtractCallback<T> = T extends DataControllerCallbackWithOptions ? T["callback"]["func"] : T extends DataControllerCallback ? T["func"] : never;
|
|
17
|
-
export type DataControllerDef = {
|
|
18
|
-
[name: string]: DataControllerCallback | DataControllerCallbackWithOptions;
|
|
19
|
-
};
|
|
20
|
-
export type ExtractDefCallbacks<T extends {}> = {
|
|
21
|
-
[K in keyof T]: ExtractCallback<T[K]>;
|
|
22
|
-
};
|
|
3
|
+
import { type Class } from "@antelopejs/interface-core/decorators";
|
|
4
|
+
import type { DataControllerCallbackWithOptions, DataControllerInstance } from "./internal/controller-types";
|
|
5
|
+
import type { FieldValidator, FieldData, ComputedExpression, ComputedOptions, FilterFunction, ForeignOptions, ReadableAccessFields, WritableAccessFields } from "./internal/field-types";
|
|
6
|
+
export { FilterValuesOf } from "./internal/filters";
|
|
7
|
+
export type { DataControllerCallback, DataControllerCallbackWithOptions, DataControllerInstance, ExtractCallback, DataControllerDef, ExtractDefCallbacks, } from "./internal/controller-types";
|
|
8
|
+
export type { ForeignJoinedRef, FieldParseSuccess, FieldParseFailure, FieldParseResult, FieldValidationResult, FieldValue, FieldValues, RowFields, ForeignOptions, FieldValidator, FieldData, ComputedExpression, ComputedOptions, ComputedFieldData, FilterValue, FieldFilter, FilterFunction, ReadableAccessFields, WritableAccessFields, } from "./internal/field-types";
|
|
23
9
|
/**
|
|
24
10
|
* Field access mode enum.
|
|
25
11
|
*/
|
|
@@ -28,126 +14,6 @@ export declare enum AccessMode {
|
|
|
28
14
|
WriteOnly = 2,
|
|
29
15
|
ReadWrite = 3
|
|
30
16
|
}
|
|
31
|
-
/**
|
|
32
|
-
* A `@Joined` field declared on the target of a relation, captured so the
|
|
33
|
-
* foreign lookup can re-materialize it (joined fields are not physical columns,
|
|
34
|
-
* so a plain pluck of the target table would return them empty).
|
|
35
|
-
*/
|
|
36
|
-
export interface ForeignJoinedRef {
|
|
37
|
-
name: string;
|
|
38
|
-
table: string;
|
|
39
|
-
tableClass?: Class<Table>;
|
|
40
|
-
localKey: string;
|
|
41
|
-
remoteField: string;
|
|
42
|
-
remoteIndex: string;
|
|
43
|
-
schemaName?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* DataAPI Metadata field information.
|
|
47
|
-
*/
|
|
48
|
-
/** Parse outcome accepting the field value, carrying the value to write. */
|
|
49
|
-
export interface FieldParseSuccess {
|
|
50
|
-
success: true;
|
|
51
|
-
data: unknown;
|
|
52
|
-
}
|
|
53
|
-
/** Parse outcome rejecting the field value. */
|
|
54
|
-
export interface FieldParseFailure {
|
|
55
|
-
success: false;
|
|
56
|
-
}
|
|
57
|
-
/** Parse outcome of a field value, shaped like the result of zod's `safeParse`. */
|
|
58
|
-
export type FieldParseResult = FieldParseSuccess | FieldParseFailure;
|
|
59
|
-
/**
|
|
60
|
-
* Outcome of a field validator: `true`/`false` accepts or rejects the raw
|
|
61
|
-
* value, which is then written as received; a {@link FieldParseResult}
|
|
62
|
-
* accepts or rejects it, and on success its `data` is written instead of the
|
|
63
|
-
* raw value.
|
|
64
|
-
*/
|
|
65
|
-
export type FieldValidationResult = boolean | FieldParseResult;
|
|
66
|
-
/** Field value validator, see {@link FieldValidationResult}. */
|
|
67
|
-
export type FieldValidator = (value: unknown) => FieldValidationResult | Promise<FieldValidationResult>;
|
|
68
|
-
export interface FieldData {
|
|
69
|
-
/**
|
|
70
|
-
* Field name in-database.
|
|
71
|
-
*/
|
|
72
|
-
dbName?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Field access mode.
|
|
75
|
-
*
|
|
76
|
-
* @see {@link AccessMode}
|
|
77
|
-
*/
|
|
78
|
-
mode?: AccessMode;
|
|
79
|
-
/**
|
|
80
|
-
* Field access mode overrides per DataAPI action.
|
|
81
|
-
*/
|
|
82
|
-
modeOverrides?: Record<string, AccessMode>;
|
|
83
|
-
/**
|
|
84
|
-
* DB Fields that should be selected for this field.
|
|
85
|
-
*/
|
|
86
|
-
listable?: Record<string, string[]>;
|
|
87
|
-
/**
|
|
88
|
-
* Set of api methods for which the field must be set.
|
|
89
|
-
*/
|
|
90
|
-
mandatory?: Set<string>;
|
|
91
|
-
/**
|
|
92
|
-
* Whether the DataAPI can be sorted using this field.
|
|
93
|
-
*/
|
|
94
|
-
sortable?: {
|
|
95
|
-
indexed?: boolean;
|
|
96
|
-
};
|
|
97
|
-
/**
|
|
98
|
-
* Foreign key reference.
|
|
99
|
-
*
|
|
100
|
-
* `schemaName` is set when the target lives in another schema than the
|
|
101
|
-
* controller's table; runtime resolves the foreign lookup against that
|
|
102
|
-
* schema's default instance instead of the source instance.
|
|
103
|
-
*/
|
|
104
|
-
foreign?: [
|
|
105
|
-
table: string,
|
|
106
|
-
tableClass?: Class<Table>,
|
|
107
|
-
index?: string,
|
|
108
|
-
multi?: true,
|
|
109
|
-
pluck?: string[],
|
|
110
|
-
schemaName?: string,
|
|
111
|
-
targetJoined?: ForeignJoinedRef[]
|
|
112
|
-
];
|
|
113
|
-
/**
|
|
114
|
-
* Joined-from-other-table reference.
|
|
115
|
-
*
|
|
116
|
-
* Imports a single scalar field from another table at query time and
|
|
117
|
-
* flattens it into the row, enabling sort/search/filter natively in DB.
|
|
118
|
-
*
|
|
119
|
-
* `schemaName` is set when the target lives in another schema than the
|
|
120
|
-
* controller's table; runtime resolves the join against that schema's
|
|
121
|
-
* default instance instead of the source instance.
|
|
122
|
-
*/
|
|
123
|
-
joined?: {
|
|
124
|
-
table: string;
|
|
125
|
-
tableClass?: Class<Table>;
|
|
126
|
-
localKey: string;
|
|
127
|
-
remoteField: string;
|
|
128
|
-
remoteIndex: string;
|
|
129
|
-
schemaName?: string;
|
|
130
|
-
};
|
|
131
|
-
/**
|
|
132
|
-
* In-database computed value.
|
|
133
|
-
*
|
|
134
|
-
* The expression is merged into each row at query time, enabling sort,
|
|
135
|
-
* filter, and pagination natively in DB.
|
|
136
|
-
*/
|
|
137
|
-
computed?: ComputedFieldData;
|
|
138
|
-
/**
|
|
139
|
-
* Value validator callback.
|
|
140
|
-
*/
|
|
141
|
-
validator?: FieldValidator;
|
|
142
|
-
/**
|
|
143
|
-
* Field property descriptor.
|
|
144
|
-
*/
|
|
145
|
-
desc?: PropertyDescriptor;
|
|
146
|
-
/**
|
|
147
|
-
* Whether or not an `eq` filter with this field name can use an indexed lookup.
|
|
148
|
-
*/
|
|
149
|
-
indexable?: boolean;
|
|
150
|
-
}
|
|
151
17
|
/**
|
|
152
18
|
* The access a field has in one data API action (`get`, `list`, `new`,
|
|
153
19
|
* `edit`…): its {@link FieldData.modeOverrides} entry for that action, else
|
|
@@ -155,103 +21,35 @@ export interface FieldData {
|
|
|
155
21
|
* field's own mode.
|
|
156
22
|
*/
|
|
157
23
|
export declare function GetEffectiveMode(field: Pick<FieldData, "mode" | "modeOverrides">, action?: string): AccessMode | undefined;
|
|
158
|
-
/**
|
|
159
|
-
* In-database computed field expression.
|
|
160
|
-
*
|
|
161
|
-
* Receives the row proxy and the schema instance of the controller's table.
|
|
162
|
-
* May return a row-local expression (built from `row`) or a per-row subquery
|
|
163
|
-
* (ex: an aggregate over another table).
|
|
164
|
-
*/
|
|
165
|
-
export type ComputedExpression = (row: ValueProxy<Record<string, any>>, db: SchemaInstance<any>) => ValueProxyOrValue<unknown> | Query<unknown>;
|
|
166
|
-
/**
|
|
167
|
-
* Computed field options.
|
|
168
|
-
*/
|
|
169
|
-
export interface ComputedOptions {
|
|
170
|
-
/**
|
|
171
|
-
* Fallback merged over the computed value when the expression yields null
|
|
172
|
-
* (ex: `0` for an aggregate count over an empty set).
|
|
173
|
-
*/
|
|
174
|
-
default?: unknown;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* Computed field information.
|
|
178
|
-
*/
|
|
179
|
-
export interface ComputedFieldData extends ComputedOptions {
|
|
180
|
-
expr: ComputedExpression;
|
|
181
|
-
}
|
|
182
|
-
type Comparison = "eq" | "ne" | "gt" | "ge" | "lt" | "le";
|
|
183
|
-
export type FilterValue = [value: string, mode: Comparison];
|
|
184
|
-
/**
|
|
185
|
-
* The filters of one field in a list request: one {@link FilterValue}, or
|
|
186
|
-
* several a row must all pass (`?filter_age=ge:18&filter_age=lt:65`).
|
|
187
|
-
*/
|
|
188
|
-
export type FieldFilter = FilterValue | FilterValue[];
|
|
189
|
-
/** The filters of one field as a list, whether it holds one or several. */
|
|
190
|
-
export declare function FilterValuesOf(filter: FieldFilter): FilterValue[];
|
|
191
|
-
/**
|
|
192
|
-
* Filter callback.
|
|
193
|
-
*/
|
|
194
|
-
export type FilterFunction<T extends Record<string, any>, U extends Record<string, any> = Record<string, any>> = (context: RequestContext & {
|
|
195
|
-
this: T;
|
|
196
|
-
}, proxy: ValueProxy<any>, key: string, value: FilterValue[0], mode: FilterValue[1], row: ValueProxy<U>) => ValueProxyOrValue<boolean>;
|
|
197
|
-
export interface ReadableAccessFields {
|
|
198
|
-
getters: [string, FieldData][];
|
|
199
|
-
props: [string, FieldData][];
|
|
200
|
-
}
|
|
201
|
-
export interface WritableAccessFields {
|
|
202
|
-
setters: [string, FieldData][];
|
|
203
|
-
props: [string, FieldData][];
|
|
204
|
-
}
|
|
205
24
|
/**
|
|
206
25
|
* Metadata Class containing the DataAPI information.
|
|
207
26
|
*/
|
|
208
27
|
export declare class DataAPIMeta {
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Key symbol.
|
|
212
|
-
*/
|
|
28
|
+
/** Key symbol. */
|
|
213
29
|
static key: symbol;
|
|
214
|
-
readonly filters: Record<string, FilterFunction<any>>;
|
|
215
|
-
/**
|
|
216
|
-
* Fields information.
|
|
217
|
-
*/
|
|
30
|
+
readonly filters: Record<string, FilterFunction<any, any>>;
|
|
31
|
+
/** Fields information. */
|
|
218
32
|
readonly fields: Record<string, FieldData>;
|
|
219
|
-
/**
|
|
220
|
-
* Fields to pluck in listing endpoints.
|
|
221
|
-
*/
|
|
33
|
+
/** Fields to pluck in listing endpoints. */
|
|
222
34
|
readonly pluck: Record<string, Set<string>>;
|
|
223
|
-
/**
|
|
224
|
-
* Key of the DataAPI class containing a database table instance.
|
|
225
|
-
*/
|
|
35
|
+
/** Key of the DataAPI class containing a database table instance. */
|
|
226
36
|
modelKey?: string;
|
|
227
|
-
/**
|
|
228
|
-
* Keys of the DataAPI class containing database modifier keys.
|
|
229
|
-
*/
|
|
37
|
+
/** Keys of the DataAPI class containing database modifier keys. */
|
|
230
38
|
modifierKeys: Map<typeof ContainerModifier<any>, string>;
|
|
231
|
-
/**
|
|
232
|
-
* Schema name where the table is registered.
|
|
233
|
-
*/
|
|
39
|
+
/** Schema name where the table is registered. */
|
|
234
40
|
schemaName: string;
|
|
235
|
-
/**
|
|
236
|
-
* Database Schema class.
|
|
237
|
-
*/
|
|
41
|
+
/** Database Schema class. */
|
|
238
42
|
tableClass: Class;
|
|
239
|
-
/**
|
|
240
|
-
* Database Schema table name.
|
|
241
|
-
*/
|
|
43
|
+
/** Database Schema table name. */
|
|
242
44
|
tableName: string;
|
|
243
|
-
/**
|
|
244
|
-
* Readable fields.
|
|
245
|
-
*/
|
|
45
|
+
/** Readable fields. */
|
|
246
46
|
readonly readable: Record<string, ReadableAccessFields>;
|
|
247
|
-
/**
|
|
248
|
-
* Writeable fields.
|
|
249
|
-
*/
|
|
47
|
+
/** Writeable fields. */
|
|
250
48
|
readonly writable: Record<string, WritableAccessFields>;
|
|
251
|
-
/**
|
|
252
|
-
* Registered DataAPI endpoints.
|
|
253
|
-
*/
|
|
49
|
+
/** Registered DataAPI endpoints. */
|
|
254
50
|
readonly endpoints: Record<string, DataControllerCallbackWithOptions>;
|
|
51
|
+
/** The controller class. */
|
|
52
|
+
readonly target: Class<object>;
|
|
255
53
|
constructor(target: Class);
|
|
256
54
|
inherit(parent: DataAPIMeta): void;
|
|
257
55
|
private field;
|
|
@@ -285,7 +83,6 @@ export declare class DataAPIMeta {
|
|
|
285
83
|
* @param name Field name
|
|
286
84
|
* @param active Sortable
|
|
287
85
|
* @param noIndex Ignore database indexes
|
|
288
|
-
* @returns
|
|
289
86
|
*/
|
|
290
87
|
setSortable(name: string, active: boolean, noIndex?: boolean): this;
|
|
291
88
|
/**
|
|
@@ -325,8 +122,11 @@ export declare class DataAPIMeta {
|
|
|
325
122
|
* @param table Other table
|
|
326
123
|
* @param index Other table index
|
|
327
124
|
* @param multi Index is a multi index
|
|
125
|
+
* @param targetMeta Metadata of the target's data controller. Its `@Joined`
|
|
126
|
+
* fields that `pluck` names, or all of them when `pluck` is unset, are
|
|
127
|
+
* resolved on the relation unless it is `multi`.
|
|
328
128
|
*/
|
|
329
|
-
setForeign(name: string, table: string | Class<Table>, index
|
|
129
|
+
setForeign(name: string, table: string | Class<Table>, ...[index, multi, pluck, schema, targetMeta]: ForeignOptions): this;
|
|
330
130
|
/**
|
|
331
131
|
* Set the validation function of a field.
|
|
332
132
|
*
|
|
@@ -348,7 +148,7 @@ export declare class DataAPIMeta {
|
|
|
348
148
|
* @param func Filter callback
|
|
349
149
|
* @param index
|
|
350
150
|
*/
|
|
351
|
-
setFilter(name: string, func: FilterFunction<
|
|
151
|
+
setFilter(name: string, func: FilterFunction<any, any>, useIndex?: boolean): this;
|
|
352
152
|
/**
|
|
353
153
|
* Sets the key containing the database table instance.
|
|
354
154
|
*
|
|
@@ -463,7 +263,7 @@ export declare const Validator: (validator: FieldValidator) => import("@antelope
|
|
|
463
263
|
* to true for the default filter and false for custom filters. An indexed
|
|
464
264
|
* equality lookup uses the raw string and bypasses the callback.
|
|
465
265
|
*/
|
|
466
|
-
export declare
|
|
266
|
+
export declare function Filter<T extends Record<string, any>>(func?: FilterFunction<T, T>, useIndex?: boolean): import("@antelopejs/interface-core/decorators").PropertyDecorator;
|
|
467
267
|
/**
|
|
468
268
|
* Sets which field will contain the reference to the database model instance.
|
|
469
269
|
*/
|
|
@@ -474,5 +274,4 @@ export declare const ModelReference: () => import("@antelopejs/interface-core/de
|
|
|
474
274
|
* @param modifierClass Modifier
|
|
475
275
|
*/
|
|
476
276
|
export declare const ModifierKey: (modifierClass: typeof ContainerModifier<any>) => import("@antelopejs/interface-core/decorators").PropertyDecorator;
|
|
477
|
-
export declare function GetDataControllerMeta(thisObj:
|
|
478
|
-
export {};
|
|
277
|
+
export declare function GetDataControllerMeta(thisObj: DataControllerInstance): DataAPIMeta;
|