@antelopejs/interface-data-api 0.5.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.
Files changed (139) hide show
  1. package/README.md +26 -22
  2. package/dist/antelope.test.js +1 -5
  3. package/dist/antelope.test.js.map +1 -1
  4. package/dist/components.d.ts +57 -37
  5. package/dist/components.js +36 -68
  6. package/dist/components.js.map +1 -1
  7. package/dist/index.d.ts +44 -60
  8. package/dist/index.js +22 -10
  9. package/dist/index.js.map +1 -1
  10. package/dist/internal/computed.js +12 -4
  11. package/dist/internal/computed.js.map +1 -1
  12. package/dist/internal/controller-types.d.ts +19 -4
  13. package/dist/internal/default-filter.js +11 -1
  14. package/dist/internal/default-filter.js.map +1 -1
  15. package/dist/internal/deferred-joined-stream.js +40 -27
  16. package/dist/internal/deferred-joined-stream.js.map +1 -1
  17. package/dist/internal/extractors.d.ts +25 -0
  18. package/dist/internal/extractors.js +31 -0
  19. package/dist/internal/extractors.js.map +1 -0
  20. package/dist/internal/field-types.d.ts +22 -6
  21. package/dist/internal/filters.d.ts +3 -1
  22. package/dist/internal/filters.js +9 -2
  23. package/dist/internal/filters.js.map +1 -1
  24. package/dist/internal/foreign.js +1 -1
  25. package/dist/internal/foreign.js.map +1 -1
  26. package/dist/internal/guards.d.ts +20 -1
  27. package/dist/internal/guards.js +42 -0
  28. package/dist/internal/guards.js.map +1 -1
  29. package/dist/internal/joined.js +1 -1
  30. package/dist/internal/joined.js.map +1 -1
  31. package/dist/internal/list.d.ts +2 -2
  32. package/dist/internal/list.js +10 -6
  33. package/dist/internal/list.js.map +1 -1
  34. package/dist/internal/meta-records.d.ts +2 -0
  35. package/dist/internal/meta-records.js +10 -5
  36. package/dist/internal/meta-records.js.map +1 -1
  37. package/dist/internal/properties.d.ts +2 -2
  38. package/dist/internal/properties.js +6 -4
  39. package/dist/internal/properties.js.map +1 -1
  40. package/dist/internal/prototypes.d.ts +14 -0
  41. package/dist/internal/prototypes.js +38 -0
  42. package/dist/internal/prototypes.js.map +1 -0
  43. package/dist/internal/read-properties.d.ts +3 -0
  44. package/dist/internal/read-properties.js +29 -0
  45. package/dist/internal/read-properties.js.map +1 -0
  46. package/dist/internal/tables.d.ts +12 -2
  47. package/dist/internal/tables.js +11 -0
  48. package/dist/internal/tables.js.map +1 -1
  49. package/dist/internal/validation.d.ts +4 -3
  50. package/dist/internal/validation.js +18 -6
  51. package/dist/internal/validation.js.map +1 -1
  52. package/dist/metadata.d.ts +13 -13
  53. package/dist/metadata.js +29 -31
  54. package/dist/metadata.js.map +1 -1
  55. package/dist/tests/components/access_control.test.js +11 -3
  56. package/dist/tests/components/access_control.test.js.map +1 -1
  57. package/dist/tests/components/computed.test.js +14 -3
  58. package/dist/tests/components/computed.test.js.map +1 -1
  59. package/dist/tests/components/cross_instance.test.js +2 -2
  60. package/dist/tests/components/cross_instance.test.js.map +1 -1
  61. package/dist/tests/components/deferred_joined.test.js +1 -1
  62. package/dist/tests/components/deferred_joined.test.js.map +1 -1
  63. package/dist/tests/components/extract_generic.test.d.ts +1 -0
  64. package/dist/tests/components/extract_generic.test.js +64 -0
  65. package/dist/tests/components/extract_generic.test.js.map +1 -0
  66. package/dist/tests/components/filter_comparisons.test.d.ts +1 -0
  67. package/dist/tests/components/filter_comparisons.test.js +34 -0
  68. package/dist/tests/components/filter_comparisons.test.js.map +1 -0
  69. package/dist/tests/components/filter_list_route.test.d.ts +1 -0
  70. package/dist/tests/components/filter_list_route.test.js +182 -0
  71. package/dist/tests/components/filter_list_route.test.js.map +1 -0
  72. package/dist/tests/components/filter_options.test.js +3 -3
  73. package/dist/tests/components/filter_options.test.js.map +1 -1
  74. package/dist/tests/components/foreign_computed.test.js +15 -4
  75. package/dist/tests/components/foreign_computed.test.js.map +1 -1
  76. package/dist/tests/components/foreign_joined.test.js +16 -4
  77. package/dist/tests/components/foreign_joined.test.js.map +1 -1
  78. package/dist/tests/components/joined.test.js +26 -8
  79. package/dist/tests/components/joined.test.js.map +1 -1
  80. package/dist/tests/components/listable.test.js +31 -12
  81. package/dist/tests/components/listable.test.js.map +1 -1
  82. package/dist/tests/components/localized_sort.test.js +5 -1
  83. package/dist/tests/components/localized_sort.test.js.map +1 -1
  84. package/dist/tests/components/mandatory.test.js +1 -1
  85. package/dist/tests/components/mandatory.test.js.map +1 -1
  86. package/dist/tests/components/modifier_key.test.js +12 -4
  87. package/dist/tests/components/modifier_key.test.js.map +1 -1
  88. package/dist/tests/components/parse_body.test.js +17 -16
  89. package/dist/tests/components/parse_body.test.js.map +1 -1
  90. package/dist/tests/components/parsed_value.test.js +2 -2
  91. package/dist/tests/components/parsed_value.test.js.map +1 -1
  92. package/dist/tests/components/partial_edit.test.js +8 -3
  93. package/dist/tests/components/partial_edit.test.js.map +1 -1
  94. package/dist/tests/components/per_action_access.test.js +11 -3
  95. package/dist/tests/components/per_action_access.test.js.map +1 -1
  96. package/dist/tests/components/prototype_named_filter.test.d.ts +1 -0
  97. package/dist/tests/components/prototype_named_filter.test.js +87 -0
  98. package/dist/tests/components/prototype_named_filter.test.js.map +1 -0
  99. package/dist/tests/components/validator.test.js +1 -1
  100. package/dist/tests/components/validator.test.js.map +1 -1
  101. package/dist/tests/components/written_row.test.d.ts +1 -0
  102. package/dist/tests/components/written_row.test.js +99 -0
  103. package/dist/tests/components/written_row.test.js.map +1 -0
  104. package/dist/tests/helpers/other-instance.js +8 -4
  105. package/dist/tests/helpers/other-instance.js.map +1 -1
  106. package/dist/tests/index/field_decorator_target.test.d.ts +1 -0
  107. package/dist/tests/index/field_decorator_target.test.js +20 -0
  108. package/dist/tests/index/field_decorator_target.test.js.map +1 -0
  109. package/dist/tests/index/inheritance.test.js +6 -2
  110. package/dist/tests/index/inheritance.test.js.map +1 -1
  111. package/dist/tests/index/metadata_names.test.d.ts +1 -0
  112. package/dist/tests/index/metadata_names.test.js +91 -0
  113. package/dist/tests/index/metadata_names.test.js.map +1 -0
  114. package/dist/tests/index/routes.test.js +14 -5
  115. package/dist/tests/index/routes.test.js.map +1 -1
  116. package/dist/tests/integration.test.js +24 -11
  117. package/dist/tests/integration.test.js.map +1 -1
  118. package/dist/tests/internal/controller-fields.test.d.ts +1 -0
  119. package/dist/tests/internal/controller-fields.test.js +25 -0
  120. package/dist/tests/internal/controller-fields.test.js.map +1 -0
  121. package/dist/tests/internal/http.d.ts +21 -9
  122. package/dist/tests/internal/http.js +24 -3
  123. package/dist/tests/internal/http.js.map +1 -1
  124. package/dist/tests/internal/shop-schema.d.ts +28 -20
  125. package/dist/tests/utils.d.ts +5 -7
  126. package/dist/tests/utils.js.map +1 -1
  127. package/docs/1.introduction.md +38 -35
  128. package/docs/10.joined.md +51 -40
  129. package/docs/11.computed.md +91 -47
  130. package/docs/2.data-controllers.md +50 -42
  131. package/docs/3.routes.md +150 -133
  132. package/docs/4.access-rights.md +48 -44
  133. package/docs/5.validators.md +54 -45
  134. package/docs/6.listable.md +53 -49
  135. package/docs/7.foreign-keys.md +55 -48
  136. package/docs/8.filters.md +64 -57
  137. package/docs/9.modifiers.md +29 -25
  138. package/package.json +24 -14
  139. package/skills/data-api-interface/SKILL.md +9 -3
package/dist/index.d.ts CHANGED
@@ -1,10 +1,8 @@
1
1
  import { type Class, type ClassDecorator } from "@antelopejs/interface-core/decorators";
2
2
  import { type ControllerClass, type RequestContext } from "@antelopejs/interface-api";
3
3
  import { Parameters, Validation } from "./components";
4
- import { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type ExtractDefCallbacks, type FieldValues } from "./metadata";
5
- export { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type ExtractCallback, type ExtractDefCallbacks, GetDataControllerMeta, } from "./metadata";
6
- /** The controller a data route runs on: an instance of a class built by {@link DataController}. */
7
- export type DataControllerInstance = InstanceType<ControllerClass>;
4
+ import { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type DataControllerInstance, type ExtractDefCallbacks, type RowFields } from "./metadata";
5
+ export { type DataControllerCallback, type DataControllerCallbackWithOptions, type DataControllerDef, type DataControllerInstance, type ExtractCallback, type ExtractDefCallbacks, GetDataControllerMeta, } from "./metadata";
8
6
  declare abstract class TableHolder<C extends Class> {
9
7
  table: InstanceType<C>;
10
8
  }
@@ -12,10 +10,9 @@ export declare function DataController<C extends Class, P extends DataController
12
10
  export declare const RegisterDataController: () => ClassDecorator<ControllerClass>;
13
11
  export declare namespace DefaultRoutes {
14
12
  /** Receives the loaded, unlocked model before readable fields are selected. Throw to deny the read. */
15
- export type GetGuard = (this: DataControllerInstance, ctx: RequestContext, current: FieldValues, params: Parameters.GetParameters) => void | Promise<void>;
16
- function getRow(this: DataControllerInstance, reqCtx: RequestContext, params: Parameters.GetParameters, guard?: GetGuard): Promise<FieldValues>;
13
+ export type GetGuard = (this: DataControllerInstance, ctx: RequestContext, current: RowFields, params: Parameters.GetParameters) => void | Promise<void>;
17
14
  function listRows(this: DataControllerInstance, reqCtx: RequestContext, params: Parameters.ListParameters): Promise<{
18
- results: FieldValues[];
15
+ results: RowFields[];
19
16
  total: number;
20
17
  offset: number;
21
18
  limit: number;
@@ -23,13 +20,12 @@ export declare namespace DefaultRoutes {
23
20
  function newRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.NewParameters, body: Validation.WrittenBody): Promise<{
24
21
  _id: string;
25
22
  }>;
26
- function editRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.EditParameters, body: Validation.WrittenBody): Promise<FieldValues>;
23
+ function editRow(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.EditParameters, body: Validation.WrittenBody): Promise<RowFields>;
27
24
  function deleteRows(this: DataControllerInstance, _reqCtx: RequestContext, params: Parameters.DeleteParameters): Promise<number>;
28
- export const Get: {
29
- func: typeof getRow;
30
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
31
- method: string;
32
- };
25
+ export const Get: DataControllerCallback<Parameters.GetParameters, RowFields, [
26
+ RequestContext,
27
+ Parameters.GetParameters
28
+ ]>;
33
29
  /**
34
30
  * Creates a Get route with an awaited guard after loading and unlocking the
35
31
  * model, before response projection/transformation. Uses the same query and
@@ -37,58 +33,46 @@ export declare namespace DefaultRoutes {
37
33
  * The guard must treat the model as read-only; it includes non-readable fields
38
34
  * and the normal Get joined/computed/foreign data, not the response DTO.
39
35
  */
40
- export function WithGetGuard(guard: GetGuard): DataControllerCallback<Parameters.GetParameters>;
41
- export const List: {
42
- func: typeof listRows;
43
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
44
- method: string;
45
- };
36
+ export function WithGetGuard(guard: GetGuard): DataControllerCallback<Parameters.GetParameters, RowFields, [
37
+ RequestContext,
38
+ Parameters.GetParameters
39
+ ]>;
40
+ export const List: DataControllerCallback<Parameters.ListParameters, Awaited<ReturnType<typeof listRows>>, [
41
+ RequestContext,
42
+ Parameters.ListParameters
43
+ ]>;
46
44
  /**
47
45
  * Answers the created row with its `_id`, even when `get` does not read
48
46
  * `_id`: the caller needs it to name the row it created.
49
47
  */
50
- export const New: {
51
- func: typeof newRow;
52
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
53
- method: string;
54
- };
55
- export const Edit: {
56
- func: typeof editRow;
57
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
58
- method: string;
59
- };
60
- export const Delete: {
61
- func: typeof deleteRows;
62
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
63
- method: string;
64
- };
48
+ export const New: DataControllerCallback<Parameters.NewParameters, Awaited<ReturnType<typeof newRow>>, [
49
+ RequestContext,
50
+ Parameters.NewParameters,
51
+ Validation.WrittenBody
52
+ ]>;
53
+ export const Edit: DataControllerCallback<Parameters.EditParameters, Awaited<ReturnType<typeof editRow>>, [
54
+ RequestContext,
55
+ Parameters.EditParameters,
56
+ Validation.WrittenBody
57
+ ]>;
58
+ export const Delete: DataControllerCallback<Parameters.DeleteParameters, Awaited<ReturnType<typeof deleteRows>>, [
59
+ RequestContext,
60
+ Parameters.DeleteParameters
61
+ ]>;
65
62
  export const All: {
66
- readonly get: {
67
- func: typeof getRow;
68
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
69
- method: string;
70
- };
71
- readonly list: {
72
- func: typeof listRows;
73
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
74
- method: string;
75
- };
76
- readonly new: {
77
- func: typeof newRow;
78
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
79
- method: string;
80
- };
81
- readonly edit: {
82
- func: typeof editRow;
83
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
84
- method: string;
85
- };
86
- readonly delete: {
87
- func: typeof deleteRows;
88
- args: (import("@antelopejs/interface-core/decorators").PropertyDecorator & import("@antelopejs/interface-core/decorators").ParameterDecorator)[];
89
- method: string;
90
- };
63
+ readonly get: DataControllerCallback<Parameters.GetParameters, RowFields, [RequestContext, Parameters.GetParameters]>;
64
+ readonly list: DataControllerCallback<Parameters.ListParameters, {
65
+ results: RowFields[];
66
+ total: number;
67
+ offset: number;
68
+ limit: number;
69
+ }, [RequestContext, Parameters.ListParameters]>;
70
+ readonly new: DataControllerCallback<Parameters.NewParameters, {
71
+ _id: string;
72
+ }, [RequestContext, Parameters.NewParameters, Validation.WrittenBody]>;
73
+ readonly edit: DataControllerCallback<Parameters.EditParameters, RowFields, [RequestContext, Parameters.EditParameters, Validation.WrittenBody]>;
74
+ readonly delete: DataControllerCallback<Parameters.DeleteParameters, number, [RequestContext, Parameters.DeleteParameters]>;
91
75
  };
92
- export function WithOptions<O>(callback: DataControllerCallback<O> | DataControllerCallbackWithOptions<O>, options?: Partial<O>, endpoint?: string): DataControllerCallbackWithOptions<O>;
76
+ export function WithOptions<O, R, A extends unknown[]>(callback: DataControllerCallback<O, R, A> | DataControllerCallbackWithOptions<O, R, A>, options?: Partial<O>, endpoint?: string): DataControllerCallbackWithOptions<O, R, A>;
93
77
  export {};
94
78
  }
package/dist/index.js CHANGED
@@ -13,6 +13,8 @@ const common_1 = require("@antelopejs/interface-database-decorators/modifiers/co
13
13
  const interface_database_decorators_1 = require("@antelopejs/interface-database-decorators");
14
14
  const interface_api_1 = require("@antelopejs/interface-api");
15
15
  const components_1 = require("./components");
16
+ const guards_1 = require("./internal/guards");
17
+ const prototypes_1 = require("./internal/prototypes");
16
18
  const metadata_1 = require("./metadata");
17
19
  var metadata_2 = require("./metadata");
18
20
  Object.defineProperty(exports, "GetDataControllerMeta", { enumerable: true, get: function () { return metadata_2.GetDataControllerMeta; } });
@@ -37,27 +39,28 @@ function DataController(tableClass, def, base) {
37
39
  ? { endpoint: key, callback: val }
38
40
  : { endpoint: key, ...val };
39
41
  meta.addEndpoint(key, entry);
40
- c.prototype[key] = entry.callback.func;
42
+ Object.assign(c.prototype, { [key]: entry.callback.func });
41
43
  }
42
44
  // SAFETY: for every own key of def, the loop above installs the function ExtractCallback<P[key]> names (def[key].func, or def[key].callback.func for an entry with options) on c.prototype, which covers the members of ExtractDefCallbacks<P>; c extends base and declares table itself.
43
45
  return c;
44
46
  }
45
47
  const RegisterDataController = () => (target) => {
46
48
  const meta = (0, interface_core_1.GetMetadata)(target, metadata_1.DataAPIMeta);
49
+ const prototype = (0, prototypes_1.prototypeOf)(target);
47
50
  for (const [key, entry] of Object.entries(meta.endpoints)) {
48
51
  for (let i = 0; i < entry.callback.args.length; ++i) {
49
52
  const arg = entry.callback.args[i];
50
53
  if (Array.isArray(arg)) {
51
54
  for (const step of arg) {
52
- step(target.prototype, key, i);
55
+ step(prototype, key, i);
53
56
  }
54
57
  }
55
58
  else {
56
- arg(target.prototype, key, i);
59
+ arg(prototype, key, i);
57
60
  }
58
61
  }
59
- const meta = (0, interface_core_1.GetMetadata)(target, interface_api_1.ControllerMeta);
60
- const fullLocation = `${meta.location}/${entry.endpoint ?? key}`.replace(/\/+/g, "/");
62
+ const controllerMeta = (0, interface_core_1.GetMetadata)(target, interface_api_1.ControllerMeta);
63
+ const fullLocation = `${target.location}/${entry.endpoint ?? key}`.replace(/\/+/g, "/");
61
64
  (0, interface_api_1.RegisterRoute)({
62
65
  callback: (ctx) => {
63
66
  ctx.dataAPIEntry = entry;
@@ -66,15 +69,23 @@ const RegisterDataController = () => (target) => {
66
69
  method: entry.callback.method,
67
70
  mode: "prefix",
68
71
  parameters: [{ provider: (ctx) => ctx, modifiers: [] }],
69
- properties: meta.computed_props,
70
- proto: target.prototype,
72
+ properties: controllerMeta.computed_props,
73
+ controller: target,
71
74
  });
72
- (0, interface_api_1.Route)("handler", entry.callback.method, entry.endpoint)(target.prototype, key, {
75
+ (0, interface_api_1.Route)("handler", entry.callback.method, entry.endpoint)(prototype, key, {
73
76
  value: entry.callback.func,
74
77
  });
75
78
  }
76
79
  };
77
80
  exports.RegisterDataController = RegisterDataController;
81
+ /** The row a route writes, refused before the write when a field holds a value no database stores. */
82
+ function writtenRow(row) {
83
+ if ((0, guards_1.isWriteDocument)(row)) {
84
+ return row;
85
+ }
86
+ const [field] = Object.entries(row).find(([, value]) => !(0, guards_1.isWriteValue)(value)) ?? [];
87
+ throw new TypeError(`Field '${field}' holds a bigint, a symbol or a function, which no database stores`);
88
+ }
78
89
  var DefaultRoutes;
79
90
  (function (DefaultRoutes) {
80
91
  /**
@@ -125,6 +136,7 @@ var DefaultRoutes;
125
136
  const [dbResult, dbTotal] = await Promise.all([queryPaged, queryTotal]);
126
137
  const results = await Promise.all(dbResult.map((entry) => {
127
138
  const entryInstance = model.constructor.fromDatabase(entry);
139
+ (0, interface_api_util_1.assert)(entryInstance, 500, "The database answered an empty row.");
128
140
  components_1.Validation.Unlock(this, meta, entryInstance);
129
141
  return components_1.Query.ReadProperties(this, meta, entryInstance, "list");
130
142
  }));
@@ -147,7 +159,7 @@ var DefaultRoutes;
147
159
  components_1.Validation.Lock(this, meta, dbData);
148
160
  const model = components_1.Query.GetModel(this, meta);
149
161
  (0, common_1.triggerEvent)(dbData, "insert");
150
- const [id] = await model.table.insert(dbData);
162
+ const [id] = await model.table.insert(writtenRow(dbData));
151
163
  const created = await readRow(this, meta, { params: { id } });
152
164
  return { _id: id, ...created };
153
165
  }
@@ -164,7 +176,7 @@ var DefaultRoutes;
164
176
  const dbData = await components_1.Query.WriteProperties(this, meta, parsed, "edit", stored);
165
177
  components_1.Validation.Lock(this, meta, dbData);
166
178
  (0, common_1.triggerEvent)(dbData, "update");
167
- await model.table.get(params.id).update(dbData);
179
+ await model.table.get(params.id).update(writtenRow(dbData));
168
180
  return readRow(this, meta, {
169
181
  params: { id: params.id, index: params.index },
170
182
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ function buildComputedMappers(db, entries) {
14
14
  for (const [name, computed] of entries) {
15
15
  merged[name] = computed.expr(row, db);
16
16
  }
17
- return row.merge(merged);
17
+ return row.merge(merged).cast();
18
18
  };
19
19
  const defaulted = entries.filter(([, computed]) => computed.default !== undefined);
20
20
  if (defaulted.length === 0) {
@@ -25,7 +25,7 @@ function buildComputedMappers(db, entries) {
25
25
  for (const [name, computed] of defaulted) {
26
26
  merged[name] = row.key(name).default(computed.default);
27
27
  }
28
- return row.merge(merged);
28
+ return row.merge(merged).cast();
29
29
  };
30
30
  return [mergeExpressions, applyDefaults];
31
31
  }
@@ -36,8 +36,16 @@ function Computed(db, meta, query, only) {
36
36
  }
37
37
  const mappers = buildComputedMappers(db, entries);
38
38
  if ((0, interface_database_1.IsStream)(query)) {
39
- return mappers.reduce((stream, mapper) => stream.map(mapper), query);
39
+ let stream = query;
40
+ for (const mapper of mappers) {
41
+ stream = stream.map(mapper);
42
+ }
43
+ return stream;
44
+ }
45
+ let datum = query;
46
+ for (const mapper of mappers) {
47
+ datum = datum.do(mapper);
40
48
  }
41
- return mappers.reduce((datum, mapper) => datum.do(mapper), query);
49
+ return datum;
42
50
  }
43
51
  //# sourceMappingURL=computed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/internal/computed.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AA4EtC,4BAeC;AAzFD,uEAMwC;AASxC,SAAS,sBAAsB,CAC7B,IAAiB,EACjB,IAAkB;IAElB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CACxC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAmB,EAAE,CACjC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC,EAAE,CACT,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,EAAuB,EACvB,OAAwB;IAExB,MAAM,gBAAgB,GAAc,CAAC,GAAG,EAAE,EAAE;QAC1C,MAAM,MAAM,GAA0D,EAAE,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CACjD,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,aAAa,GAAc,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAoC,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAsBD,SAAgB,QAAQ,CACtB,EAAuB,EACvB,IAAiB,EACjB,KAA+B,EAC/B,IAAkB;IAElB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,IAAA,6BAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"computed.js","sourceRoot":"","sources":["../../src/internal/computed.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AA4EtC,4BAuBC;AAjGD,uEAMwC;AASxC,SAAS,sBAAsB,CAC7B,IAAiB,EACjB,IAAkB;IAElB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CACxC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAmB,EAAE,CACjC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC,CAAC,EAAE,CACT,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,EAAuB,EACvB,OAAwB;IAExB,MAAM,gBAAgB,GAAc,CAAC,GAAG,EAAE,EAAE;QAC1C,MAAM,MAAM,GAA0D,EAAE,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAe,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,CACjD,CAAC;IACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,aAAa,GAAc,CAAC,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAoC,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAe,CAAC;IAC/C,CAAC,CAAC;IACF,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAsBD,SAAgB,QAAQ,CACtB,EAAuB,EACvB,IAAiB,EACjB,KAA+B,EAC/B,IAAkB;IAElB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,IAAA,6BAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,14 +1,29 @@
1
1
  /** @internal @packageDocumentation */
2
+ import type { ControllerClass } from "@antelopejs/interface-api";
2
3
  import type { ParameterDecorator } from "@antelopejs/interface-core/decorators";
3
- export type DataControllerCallback<O = any> = {
4
+ /** The controller a data route runs on: an instance of a class built by `DataController`. */
5
+ export type DataControllerInstance = InstanceType<ControllerClass>;
6
+ /**
7
+ * One route of a data controller. Entry `i` of `args` injects parameter `i`
8
+ * of `func`, so `A` lists what `func` receives, one element per entry; the
9
+ * stock routes take the request context first and their parameters second.
10
+ * Without `A`, the route is one whose parameters are not known, as a
11
+ * {@link DataControllerDef} holds it: its `func` takes `O` second and anything
12
+ * else, unchecked.
13
+ *
14
+ * @typeParam O The options the route receives in its second parameter
15
+ * @typeParam R What `func` answers, resolved
16
+ * @typeParam A The parameters of `func`, one per entry of `args`
17
+ */
18
+ export type DataControllerCallback<O = any, R = unknown, A extends unknown[] = [ctx: any, opts: O, ...args: any[]]> = {
4
19
  args: (ParameterDecorator | ParameterDecorator[])[];
5
20
  method: string;
6
- func: (ctx: any, opts: O, ...args: any[]) => any;
21
+ func: (...args: A) => R | Promise<R>;
7
22
  };
8
- export type DataControllerCallbackWithOptions<O = any> = {
23
+ export type DataControllerCallbackWithOptions<O = any, R = unknown, A extends unknown[] = [ctx: any, opts: O, ...args: any[]]> = {
9
24
  endpoint?: string;
10
25
  options?: Partial<O>;
11
- callback: DataControllerCallback<O>;
26
+ callback: DataControllerCallback<O, R, A>;
12
27
  };
13
28
  export type ExtractCallback<T> = T extends DataControllerCallbackWithOptions ? T["callback"]["func"] : T extends DataControllerCallback ? T["func"] : never;
14
29
  export type DataControllerDef = {
@@ -2,6 +2,8 @@
2
2
  /** @internal @packageDocumentation */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.createDefaultFilter = createDefaultFilter;
5
+ const interface_api_util_1 = require("@antelopejs/interface-api-util");
6
+ const meta_records_1 = require("./meta-records");
5
7
  const DEFAULT_FILTER_OPERATORS = {
6
8
  eq: (proxy, value) => proxy.eq(value),
7
9
  ne: (proxy, value) => proxy.ne(value),
@@ -10,8 +12,16 @@ const DEFAULT_FILTER_OPERATORS = {
10
12
  lt: (proxy, value) => proxy.lt(value),
11
13
  le: (proxy, value) => proxy.le(value),
12
14
  };
15
+ /**
16
+ * Applies a comparison to the column.
17
+ *
18
+ * @throws HTTPResult 400 when `mode` is not one of the default filter's
19
+ * comparisons; a custom filter receives its mode unchecked
20
+ */
13
21
  function applyDefaultFilterMode(proxy, value, mode) {
14
- return DEFAULT_FILTER_OPERATORS[mode](proxy, value);
22
+ const operator = (0, meta_records_1.ownEntry)(DEFAULT_FILTER_OPERATORS, mode);
23
+ (0, interface_api_util_1.assert)(operator, 400, `Unknown filter comparison "${mode}": use one of ${Object.keys(DEFAULT_FILTER_OPERATORS).join(", ")}, or start a value that contains a colon with "eq:".`);
24
+ return operator(proxy, value);
15
25
  }
16
26
  function createDefaultFilter() {
17
27
  return (_context, proxy, _key, value, mode) => applyDefaultFilterMode(proxy, value, mode);
@@ -1 +1 @@
1
- {"version":3,"file":"default-filter.js","sourceRoot":"","sources":["../../src/internal/default-filter.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAoCtC,kDAGC;AApBD,MAAM,wBAAwB,GAA2B;IACvD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;CACtC,CAAC;AAEF,SAAS,sBAAsB,CAC7B,KAAyB,EACzB,KAAa,EACb,IAAoB;IAEpB,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC5C,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"default-filter.js","sourceRoot":"","sources":["../../src/internal/default-filter.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAkDtC,kDAGC;AAnDD,uEAAwD;AAQxD,iDAA0C;AAW1C,MAAM,wBAAwB,GAA2B;IACvD,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,KAA0B,EAC1B,KAAa,EACb,IAAoB;IAEpB,MAAM,QAAQ,GAAG,IAAA,uBAAQ,EAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAA,2BAAM,EACJ,QAAQ,EACR,GAAG,EACH,8BAA8B,IAAI,iBAAiB,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAC1J,CAAC;IACF,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC5C,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC"}
@@ -21,12 +21,10 @@ function materializeDeferredJoin(stream) {
21
21
  const { db, meta, names, raw } = stream.deferredJoin;
22
22
  return (0, joined_1.Joined)(db, meta, raw, names);
23
23
  }
24
- function pagedDeferredJoinOperation(name) {
24
+ function pagedDeferredJoinOperation() {
25
25
  return function (...args) {
26
26
  const { db, meta, names, raw } = this.deferredJoin;
27
- // SAFETY: pagedDeferredJoinOperation is registered only under the slice key of DEFERRED_JOIN_OPERATION_FACTORIES, so name is always "slice", which every Stream has; raw is the Stream given to wrapDeferredJoined.
28
- const paged = raw[name](...args);
29
- return (0, joined_1.Joined)(db, meta, paged, names);
27
+ return (0, joined_1.Joined)(db, meta, raw.slice(...args), names);
30
28
  };
31
29
  }
32
30
  /**
@@ -41,44 +39,59 @@ function nthDeferredJoinOperation() {
41
39
  return (0, joined_1.Joined)(db, meta, raw.slice(n, 1), names).nth(0);
42
40
  };
43
41
  }
44
- function rawDeferredJoinOperation(name) {
45
- return function (...args) {
46
- // SAFETY: rawDeferredJoinOperation is registered only under the changes key of DEFERRED_JOIN_OPERATION_FACTORIES, so name is always "changes", which every Stream has; raw is the Stream given to wrapDeferredJoined.
47
- return this.deferredJoin.raw[name](...args);
42
+ function rawDeferredJoinOperation() {
43
+ return function () {
44
+ return this.deferredJoin.raw.changes();
48
45
  };
49
46
  }
47
+ function aggregate(stream, name, field) {
48
+ switch (name) {
49
+ case "count":
50
+ return stream.count(field);
51
+ case "sum":
52
+ return stream.sum(field);
53
+ case "avg":
54
+ return stream.avg(field);
55
+ case "min":
56
+ return stream.min(field);
57
+ case "max":
58
+ return stream.max(field);
59
+ case "distinct":
60
+ return field === undefined ? stream.distinct() : stream.distinct(field);
61
+ }
62
+ }
50
63
  function fieldAggregateDeferredJoinOperation(name, bareCallOnRaw) {
51
64
  return function (field) {
52
65
  const { db, meta, names, raw } = this.deferredJoin;
53
66
  if (!field) {
54
67
  const bareTarget = bareCallOnRaw ? raw : materializeDeferredJoin(this);
55
- // SAFETY: fieldAggregateDeferredJoinOperation is registered only under count, sum, avg, min, max and distinct, all Stream methods, and bareTarget is a Stream (raw, or the Stream Joined returns for it).
56
- return bareTarget[name]();
68
+ return aggregate(bareTarget, name);
57
69
  }
58
70
  const target = names.has(field)
59
71
  ? (0, joined_1.Joined)(db, meta, raw, new Set([field]))
60
72
  : raw;
61
- // SAFETY: name is one of count, sum, avg, min, max and distinct, all Stream methods (see the factory table), and target is a Stream (raw, or the Stream Joined returns for it).
62
- return target[name](field);
73
+ return aggregate(target, name, field);
63
74
  };
64
75
  }
65
76
  function forwardingDeferredJoinOperation(name) {
66
77
  return function (...args) {
67
78
  // SAFETY: name comes from wireDeferredJoinedStream, which lists the own method names of Stream.prototype plus run, cursor and build, all present on any Stream, and Joined returns a Stream for the raw Stream it is given.
79
+ // oxlint-disable-next-line typescript/no-unsafe-return -- the method is looked up by a runtime name on a Stream, which TypeScript cannot relate to a signature; Reflect.apply and a typed lookup were tried and moved the finding to no-reflect-get, no-reflect-apply and no-unknown-returns
68
80
  return materializeDeferredJoin(this)[name](...args);
69
81
  };
70
82
  }
71
- const DEFERRED_JOIN_OPERATION_FACTORIES = {
72
- slice: pagedDeferredJoinOperation,
73
- nth: nthDeferredJoinOperation,
74
- changes: rawDeferredJoinOperation,
75
- count: (name) => fieldAggregateDeferredJoinOperation(name, true),
76
- sum: (name) => fieldAggregateDeferredJoinOperation(name, false),
77
- avg: (name) => fieldAggregateDeferredJoinOperation(name, false),
78
- min: (name) => fieldAggregateDeferredJoinOperation(name, false),
79
- max: (name) => fieldAggregateDeferredJoinOperation(name, false),
80
- distinct: (name) => fieldAggregateDeferredJoinOperation(name, false),
81
- };
83
+ /** The operation a {@link DeferredJoinedStream} installs for a stream method. */
84
+ const DEFERRED_JOIN_OPERATION_FACTORIES = new Map([
85
+ ["slice", pagedDeferredJoinOperation],
86
+ ["nth", nthDeferredJoinOperation],
87
+ ["changes", rawDeferredJoinOperation],
88
+ ["count", () => fieldAggregateDeferredJoinOperation("count", true)],
89
+ ["sum", () => fieldAggregateDeferredJoinOperation("sum", false)],
90
+ ["avg", () => fieldAggregateDeferredJoinOperation("avg", false)],
91
+ ["min", () => fieldAggregateDeferredJoinOperation("min", false)],
92
+ ["max", () => fieldAggregateDeferredJoinOperation("max", false)],
93
+ ["distinct", () => fieldAggregateDeferredJoinOperation("distinct", false)],
94
+ ]);
82
95
  const DEFERRED_JOIN_INHERITED_OPERATIONS = new Set(["constructor", "cast"]);
83
96
  function wireDeferredJoinedStream() {
84
97
  const operationNames = [
@@ -88,7 +101,7 @@ function wireDeferredJoinedStream() {
88
101
  "build",
89
102
  ].filter((name) => !DEFERRED_JOIN_INHERITED_OPERATIONS.has(name));
90
103
  for (const name of operationNames) {
91
- const factory = DEFERRED_JOIN_OPERATION_FACTORIES[name] ??
104
+ const factory = DEFERRED_JOIN_OPERATION_FACTORIES.get(name) ??
92
105
  forwardingDeferredJoinOperation;
93
106
  // SAFETY: name is a method name of Stream.prototype (or run, cursor, build), so the key is a writable data property on DeferredJoinedStream's prototype chain and assigning a function to it cannot throw; each installed operation takes the arguments of the Stream method it replaces.
94
107
  DeferredJoinedStream.prototype[name] = factory(name);
@@ -103,9 +116,9 @@ wireDeferredJoinedStream();
103
116
  * without the joined fields.
104
117
  */
105
118
  function wrapDeferredJoined(db, meta, names, raw) {
106
- const wrapped = Object.create(DeferredJoinedStream.prototype);
107
- // SAFETY: Object.create skips the StagedObject constructor that sets the protected stages field, so this assigns the same field, the stage list of raw, that the constructor would have set.
108
- wrapped.stages = raw.build();
119
+ const stages = raw.build();
120
+ const wrapped = new DeferredJoinedStream(stages[0]);
121
+ Object.assign(wrapped, { stages });
109
122
  wrapped.deferredJoin = { db, meta, names, raw };
110
123
  return wrapped;
111
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deferred-joined-stream.js","sourceRoot":"","sources":["../../src/internal/deferred-joined-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deferred-joined-stream.js","sourceRoot":"","sources":["../../src/internal/deferred-joined-stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** @internal @packageDocumentation */
2
+ import type { RequestContext } from "@antelopejs/interface-api";
3
+ import type { DataAPIMeta } from "../metadata";
4
+ /**
5
+ * Reads one field of a route's parameters from the request. `undefined` leaves
6
+ * the field out. `key` is the field's name.
7
+ */
8
+ export type ParameterExtractor<Value> = (reqCtx: RequestContext, meta: DataAPIMeta, key: string) => Value | undefined;
9
+ /** The extractors of a route's parameters, by field. */
10
+ export type ParameterExtractors<T> = {
11
+ [K in keyof T]?: ParameterExtractor<T[K]>;
12
+ };
13
+ export declare function fromSearch<Value>(convert: (text: string) => Value): ParameterExtractor<Value>;
14
+ /** Reads a field from the query string, under the field's name. */
15
+ export declare const FromSearch: {
16
+ number: ParameterExtractor<number>;
17
+ int: ParameterExtractor<number>;
18
+ bool: ParameterExtractor<boolean>;
19
+ string: ParameterExtractor<string>;
20
+ /** Every value of the field, none when the request sends none. */
21
+ numbers: ParameterExtractor<number[]>;
22
+ ints: ParameterExtractor<number[]>;
23
+ bools: ParameterExtractor<boolean[]>;
24
+ strings: ParameterExtractor<string[]>;
25
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /** @internal @packageDocumentation */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.FromSearch = void 0;
5
+ exports.fromSearch = fromSearch;
6
+ function fromSearch(convert) {
7
+ return (reqCtx, _meta, key) => {
8
+ const text = reqCtx.url.searchParams.get(key);
9
+ return text === null ? undefined : convert(text);
10
+ };
11
+ }
12
+ function allFromSearch(convert) {
13
+ return (reqCtx, _meta, key) => reqCtx.url.searchParams.getAll(key).map((text) => convert(text));
14
+ }
15
+ const toNumber = (text) => parseFloat(text);
16
+ const toInt = (text) => parseInt(text, 10);
17
+ const toBool = (text) => text !== "0";
18
+ const toText = (text) => text;
19
+ /** Reads a field from the query string, under the field's name. */
20
+ exports.FromSearch = {
21
+ number: fromSearch(toNumber),
22
+ int: fromSearch(toInt),
23
+ bool: fromSearch(toBool),
24
+ string: fromSearch(toText),
25
+ /** Every value of the field, none when the request sends none. */
26
+ numbers: allFromSearch(toNumber),
27
+ ints: allFromSearch(toInt),
28
+ bools: allFromSearch(toBool),
29
+ strings: allFromSearch(toText),
30
+ };
31
+ //# sourceMappingURL=extractors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../src/internal/extractors.ts"],"names":[],"mappings":";AAAA,sCAAsC;;;AAqBtC,gCAOC;AAPD,SAAgB,UAAU,CACxB,OAAgC;IAEhC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,OAAgC;IAEhC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAC5B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACpD,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC;AAC9C,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC;AAEtC,mEAAmE;AACtD,QAAA,UAAU,GAAG;IACxB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;IAC5B,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;IAC1B,kEAAkE;IAClE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC;IAChC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC;IAC1B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;CAC/B,CAAC"}