@antelopejs/interface-database 0.1.7 → 0.1.9
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 +0 -2
- package/dist/antelope.test.js +1 -1
- package/dist/datum.d.ts +1 -1
- package/dist/datum.js +2 -1
- package/dist/datum.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/query.d.ts +1 -0
- package/dist/query.js +3 -1
- package/dist/query.js.map +1 -1
- package/dist/staged-query/datum.d.ts +10 -0
- package/dist/staged-query/datum.js +16 -0
- package/dist/staged-query/datum.js.map +1 -1
- package/dist/staged-query/index.d.ts +4 -4
- package/dist/staged-query/index.js +5 -1
- package/dist/staged-query/index.js.map +1 -1
- package/dist/staged-query/kind.d.ts +2 -0
- package/dist/staged-query/kind.js +13 -0
- package/dist/staged-query/kind.js.map +1 -0
- package/dist/staged-query/query.d.ts +10 -0
- package/dist/staged-query/query.js +16 -0
- package/dist/staged-query/query.js.map +1 -1
- package/dist/staged-query/schema.d.ts +15 -0
- package/dist/staged-query/schema.js +5 -1
- package/dist/staged-query/schema.js.map +1 -1
- package/dist/staged-query/stream.d.ts +10 -0
- package/dist/staged-query/stream.js +16 -0
- package/dist/staged-query/stream.js.map +1 -1
- package/dist/staged-query/valueproxy.d.ts +10 -0
- package/dist/staged-query/valueproxy.js +16 -0
- package/dist/staged-query/valueproxy.js.map +1 -1
- package/dist/stream.d.ts +1 -1
- package/dist/stream.js +2 -1
- package/dist/stream.js.map +1 -1
- package/dist/tests/cross_instance.test.d.ts +1 -0
- package/dist/tests/cross_instance.test.js +80 -0
- package/dist/tests/cross_instance.test.js.map +1 -0
- package/dist/tests/helpers/other-instance.d.ts +13 -0
- package/dist/tests/helpers/other-instance.js +46 -0
- package/dist/tests/helpers/other-instance.js.map +1 -0
- package/docs/1.query_types/1.index.md +14 -0
- package/docs/2.operations/5.indexes.md +24 -0
- package/docs/3.results/3.index_changes.md +11 -0
- package/docs/3.results/5.database_changes.md +2 -0
- package/package.json +5 -4
- package/skills/database-interface/SKILL.md +6 -1
package/README.md
CHANGED
package/dist/antelope.test.js
CHANGED
package/dist/datum.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Datum } from "./staged-query/datum";
|
|
1
|
+
export { Datum, IsDatum } from "./staged-query/datum";
|
package/dist/datum.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Datum = void 0;
|
|
3
|
+
exports.IsDatum = exports.Datum = void 0;
|
|
4
4
|
var datum_1 = require("./staged-query/datum");
|
|
5
5
|
Object.defineProperty(exports, "Datum", { enumerable: true, get: function () { return datum_1.Datum; } });
|
|
6
|
+
Object.defineProperty(exports, "IsDatum", { enumerable: true, get: function () { return datum_1.IsDatum; } });
|
|
6
7
|
//# sourceMappingURL=datum.js.map
|
package/dist/datum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datum.js","sourceRoot":"","sources":["../src/datum.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"datum.js","sourceRoot":"","sources":["../src/datum.ts"],"names":[],"mappings":";;;AAAA,8CAAsD;AAA7C,8FAAA,KAAK,OAAA;AAAE,gGAAA,OAAO,OAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./atomic";
|
|
2
|
-
export { Datum } from "./datum";
|
|
3
|
-
export { Query } from "./query";
|
|
2
|
+
export { Datum, IsDatum } from "./datum";
|
|
3
|
+
export { IsQuery, Query } from "./query";
|
|
4
4
|
export { CROSS_INSTANCE, InstanceId, Schema, SchemaDefinition, SchemaInstance, } from "./schema";
|
|
5
5
|
export { Selection, SingleSelection, Table } from "./selection";
|
|
6
|
-
export { Stream } from "./stream";
|
|
7
|
-
export { ValueProxy, ValueProxyOrValue } from "./valueproxy";
|
|
6
|
+
export { IsStream, Stream } from "./stream";
|
|
7
|
+
export { IsValueProxy, ValueProxy, ValueProxyOrValue } from "./valueproxy";
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ValueProxy = exports.Stream = exports.Table = exports.SingleSelection = exports.Selection = exports.SchemaInstance = exports.Schema = exports.CROSS_INSTANCE = exports.Query = exports.Datum = void 0;
|
|
17
|
+
exports.ValueProxy = exports.IsValueProxy = exports.Stream = exports.IsStream = exports.Table = exports.SingleSelection = exports.Selection = exports.SchemaInstance = exports.Schema = exports.CROSS_INSTANCE = exports.Query = exports.IsQuery = exports.IsDatum = exports.Datum = void 0;
|
|
18
18
|
__exportStar(require("./atomic"), exports);
|
|
19
19
|
var datum_1 = require("./datum");
|
|
20
20
|
Object.defineProperty(exports, "Datum", { enumerable: true, get: function () { return datum_1.Datum; } });
|
|
21
|
+
Object.defineProperty(exports, "IsDatum", { enumerable: true, get: function () { return datum_1.IsDatum; } });
|
|
21
22
|
var query_1 = require("./query");
|
|
23
|
+
Object.defineProperty(exports, "IsQuery", { enumerable: true, get: function () { return query_1.IsQuery; } });
|
|
22
24
|
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
|
|
23
25
|
var schema_1 = require("./schema");
|
|
24
26
|
Object.defineProperty(exports, "CROSS_INSTANCE", { enumerable: true, get: function () { return schema_1.CROSS_INSTANCE; } });
|
|
@@ -29,7 +31,9 @@ Object.defineProperty(exports, "Selection", { enumerable: true, get: function ()
|
|
|
29
31
|
Object.defineProperty(exports, "SingleSelection", { enumerable: true, get: function () { return selection_1.SingleSelection; } });
|
|
30
32
|
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return selection_1.Table; } });
|
|
31
33
|
var stream_1 = require("./stream");
|
|
34
|
+
Object.defineProperty(exports, "IsStream", { enumerable: true, get: function () { return stream_1.IsStream; } });
|
|
32
35
|
Object.defineProperty(exports, "Stream", { enumerable: true, get: function () { return stream_1.Stream; } });
|
|
33
36
|
var valueproxy_1 = require("./valueproxy");
|
|
37
|
+
Object.defineProperty(exports, "IsValueProxy", { enumerable: true, get: function () { return valueproxy_1.IsValueProxy; } });
|
|
34
38
|
Object.defineProperty(exports, "ValueProxy", { enumerable: true, get: function () { return valueproxy_1.ValueProxy; } });
|
|
35
39
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,iCAAyC;AAAhC,8FAAA,KAAK,OAAA;AAAE,gGAAA,OAAO,OAAA;AACvB,iCAAyC;AAAhC,gGAAA,OAAO,OAAA;AAAE,8FAAA,KAAK,OAAA;AACvB,mCAMkB;AALhB,wGAAA,cAAc,OAAA;AAEd,gGAAA,MAAM,OAAA;AAEN,wGAAA,cAAc,OAAA;AAEhB,yCAAgE;AAAvD,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,kGAAA,KAAK,OAAA;AAC1C,mCAA4C;AAAnC,kGAAA,QAAQ,OAAA;AAAE,gGAAA,MAAM,OAAA;AACzB,2CAA2E;AAAlE,0GAAA,YAAY,OAAA;AAAE,wGAAA,UAAU,OAAA"}
|
package/dist/query.d.ts
CHANGED
package/dist/query.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Query = exports.CloseCursor = exports.ReadCursor = exports.RunQuery = void 0;
|
|
3
|
+
exports.IsQuery = exports.Query = exports.CloseCursor = exports.ReadCursor = exports.RunQuery = void 0;
|
|
4
4
|
const interface_core_1 = require("@antelopejs/interface-core");
|
|
5
5
|
const query_1 = require("./staged-query/query");
|
|
6
6
|
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
|
|
@@ -78,4 +78,6 @@ Object.defineProperties(query_1.Query.prototype, {
|
|
|
78
78
|
writable: true,
|
|
79
79
|
},
|
|
80
80
|
});
|
|
81
|
+
var query_2 = require("./staged-query/query");
|
|
82
|
+
Object.defineProperty(exports, "IsQuery", { enumerable: true, get: function () { return query_2.IsQuery; } });
|
|
81
83
|
//# sourceMappingURL=query.js.map
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,3 +53,13 @@ export declare class Datum<T> extends Query<T> {
|
|
|
53
53
|
*/
|
|
54
54
|
pluck(...fields: string[]): Datum<Partial<T>>;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Whether a value is a datum, built by any instance of this interface.
|
|
58
|
+
*
|
|
59
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
60
|
+
* another provider binding.
|
|
61
|
+
*
|
|
62
|
+
* @param value Value to test
|
|
63
|
+
* @returns True if the value is a datum
|
|
64
|
+
*/
|
|
65
|
+
export declare function IsDatum(value: unknown): value is Datum<unknown>;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Datum = void 0;
|
|
4
|
+
exports.IsDatum = IsDatum;
|
|
4
5
|
const query_1 = require("./query");
|
|
5
6
|
const valueproxy_1 = require("./valueproxy");
|
|
7
|
+
const kind_1 = require("./kind");
|
|
8
|
+
const DATUM_KIND = Symbol.for("@antelopejs/interface-database/Datum@1");
|
|
6
9
|
class Datum extends query_1.Query {
|
|
7
10
|
/**
|
|
8
11
|
* Changes the type of this datum.
|
|
@@ -67,4 +70,17 @@ class Datum extends query_1.Query {
|
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
exports.Datum = Datum;
|
|
73
|
+
(0, kind_1.MarkKind)(Datum.prototype, DATUM_KIND);
|
|
74
|
+
/**
|
|
75
|
+
* Whether a value is a datum, built by any instance of this interface.
|
|
76
|
+
*
|
|
77
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
78
|
+
* another provider binding.
|
|
79
|
+
*
|
|
80
|
+
* @param value Value to test
|
|
81
|
+
* @returns True if the value is a datum
|
|
82
|
+
*/
|
|
83
|
+
function IsDatum(value) {
|
|
84
|
+
return (0, kind_1.HasKind)(value, DATUM_KIND);
|
|
85
|
+
}
|
|
70
86
|
//# sourceMappingURL=datum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datum.js","sourceRoot":"","sources":["../../src/staged-query/datum.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"datum.js","sourceRoot":"","sources":["../../src/staged-query/datum.ts"],"names":[],"mappings":";;;AAqHA,0BAEC;AAvHD,mCAAgC;AAChC,6CAA0C;AAG1C,iCAA2C;AAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AAExE,MAAa,KAAS,SAAQ,aAAQ;IACpC;;;;;OAKG;IACI,IAAI;QACT,OAAO,IAA2B,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACI,GAAG,CAAgD,GAAM,EAAE,GAAO;QACvE,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAIC,CAAA,EACD,KAAK,EACL,SAAS,EACT,GAAG,EACH,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAI,GAAa;QAC7B,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAAuC,CAAA,EACvC,SAAS,EACT,SAAS,EACT,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,EAAE,CAAI,MAAiC;QAC5C,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAAqB,CAAA,EACrB,KAAK,EACL,SAAS,EACT,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA,uBAAa,CAAA,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CACX,KAAmB,EACnB,QAAY,EACZ,QAAiB;QAEjB,OAAO,IAAI,CAAC,KAAK,CACf,CAAA,KAA8D,CAAA,EAC9D,QAAQ,EACR,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtB,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,MAAgB;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,KAAiB,CAAA,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;CACF;AAhGD,sBAgGC;AAED,IAAA,eAAQ,EAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEtC;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,IAAA,cAAO,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from "./common";
|
|
2
2
|
export * from "./atomic";
|
|
3
|
-
export { Datum } from "./datum";
|
|
4
|
-
export { Query } from "./query";
|
|
3
|
+
export { Datum, IsDatum } from "./datum";
|
|
4
|
+
export { IsQuery, Query } from "./query";
|
|
5
5
|
export { CROSS_INSTANCE, Schema, SchemaInstance, type FieldType, type IndexDefinition, type InstanceId, type SchemaDefinition, type StringFieldType, type TableDefinition, } from "./schema";
|
|
6
6
|
export { Selection, SingleSelection, Table } from "./selection";
|
|
7
|
-
export { Stream } from "./stream";
|
|
8
|
-
export { ValueProxy, type ValueProxyOrValue } from "./valueproxy";
|
|
7
|
+
export { IsStream, Stream } from "./stream";
|
|
8
|
+
export { IsValueProxy, ValueProxy, type ValueProxyOrValue } from "./valueproxy";
|
|
@@ -14,12 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ValueProxy = exports.Stream = exports.Table = exports.SingleSelection = exports.Selection = exports.SchemaInstance = exports.Schema = exports.CROSS_INSTANCE = exports.Query = exports.Datum = void 0;
|
|
17
|
+
exports.ValueProxy = exports.IsValueProxy = exports.Stream = exports.IsStream = exports.Table = exports.SingleSelection = exports.Selection = exports.SchemaInstance = exports.Schema = exports.CROSS_INSTANCE = exports.Query = exports.IsQuery = exports.IsDatum = exports.Datum = void 0;
|
|
18
18
|
__exportStar(require("./common"), exports);
|
|
19
19
|
__exportStar(require("./atomic"), exports);
|
|
20
20
|
var datum_1 = require("./datum");
|
|
21
21
|
Object.defineProperty(exports, "Datum", { enumerable: true, get: function () { return datum_1.Datum; } });
|
|
22
|
+
Object.defineProperty(exports, "IsDatum", { enumerable: true, get: function () { return datum_1.IsDatum; } });
|
|
22
23
|
var query_1 = require("./query");
|
|
24
|
+
Object.defineProperty(exports, "IsQuery", { enumerable: true, get: function () { return query_1.IsQuery; } });
|
|
23
25
|
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
|
|
24
26
|
var schema_1 = require("./schema");
|
|
25
27
|
Object.defineProperty(exports, "CROSS_INSTANCE", { enumerable: true, get: function () { return schema_1.CROSS_INSTANCE; } });
|
|
@@ -30,7 +32,9 @@ Object.defineProperty(exports, "Selection", { enumerable: true, get: function ()
|
|
|
30
32
|
Object.defineProperty(exports, "SingleSelection", { enumerable: true, get: function () { return selection_1.SingleSelection; } });
|
|
31
33
|
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return selection_1.Table; } });
|
|
32
34
|
var stream_1 = require("./stream");
|
|
35
|
+
Object.defineProperty(exports, "IsStream", { enumerable: true, get: function () { return stream_1.IsStream; } });
|
|
33
36
|
Object.defineProperty(exports, "Stream", { enumerable: true, get: function () { return stream_1.Stream; } });
|
|
34
37
|
var valueproxy_1 = require("./valueproxy");
|
|
38
|
+
Object.defineProperty(exports, "IsValueProxy", { enumerable: true, get: function () { return valueproxy_1.IsValueProxy; } });
|
|
35
39
|
Object.defineProperty(exports, "ValueProxy", { enumerable: true, get: function () { return valueproxy_1.ValueProxy; } });
|
|
36
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/staged-query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/staged-query/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,2CAAyB;AACzB,iCAAyC;AAAhC,8FAAA,KAAK,OAAA;AAAE,gGAAA,OAAO,OAAA;AACvB,iCAAyC;AAAhC,gGAAA,OAAO,OAAA;AAAE,8FAAA,KAAK,OAAA;AACvB,mCAUkB;AAThB,wGAAA,cAAc,OAAA;AACd,gGAAA,MAAM,OAAA;AACN,wGAAA,cAAc,OAAA;AAQhB,yCAAgE;AAAvD,sGAAA,SAAS,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,kGAAA,KAAK,OAAA;AAC1C,mCAA4C;AAAnC,kGAAA,QAAQ,OAAA;AAAE,gGAAA,MAAM,OAAA;AACzB,2CAAgF;AAAvE,0GAAA,YAAY,OAAA;AAAE,wGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarkKind = MarkKind;
|
|
4
|
+
exports.HasKind = HasKind;
|
|
5
|
+
function MarkKind(target, kind) {
|
|
6
|
+
Object.defineProperty(target, kind, { value: true });
|
|
7
|
+
}
|
|
8
|
+
function HasKind(value, kind) {
|
|
9
|
+
return (typeof value === "object" &&
|
|
10
|
+
value !== null &&
|
|
11
|
+
value[kind] === true);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kind.js","sourceRoot":"","sources":["../../src/staged-query/kind.ts"],"names":[],"mappings":";;AAEA,4BAEC;AAED,0BAMC;AAVD,SAAgB,QAAQ,CAAC,MAAc,EAAE,IAAY;IACnD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,OAAO,CAAC,KAAc,EAAE,IAAY;IAClD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAoB,CAAC,IAAI,CAAC,KAAK,IAAI,CACrC,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import { StagedObject } from "./common";
|
|
2
2
|
export declare class Query<T> extends StagedObject {
|
|
3
3
|
}
|
|
4
|
+
/**
|
|
5
|
+
* Whether a value is a query, built by any instance of this interface.
|
|
6
|
+
*
|
|
7
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
8
|
+
* another provider binding.
|
|
9
|
+
*
|
|
10
|
+
* @param value Value to test
|
|
11
|
+
* @returns True if the value is a query
|
|
12
|
+
*/
|
|
13
|
+
export declare function IsQuery(value: unknown): value is Query<unknown>;
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Query = void 0;
|
|
4
|
+
exports.IsQuery = IsQuery;
|
|
4
5
|
const common_1 = require("./common");
|
|
6
|
+
const kind_1 = require("./kind");
|
|
7
|
+
const QUERY_KIND = Symbol.for("@antelopejs/interface-database/Query@1");
|
|
5
8
|
// oxlint-disable-next-line typescript/no-unused-vars -- The executable entry consumes T through declaration merging.
|
|
6
9
|
class Query extends common_1.StagedObject {
|
|
7
10
|
}
|
|
8
11
|
exports.Query = Query;
|
|
12
|
+
(0, kind_1.MarkKind)(Query.prototype, QUERY_KIND);
|
|
13
|
+
/**
|
|
14
|
+
* Whether a value is a query, built by any instance of this interface.
|
|
15
|
+
*
|
|
16
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
17
|
+
* another provider binding.
|
|
18
|
+
*
|
|
19
|
+
* @param value Value to test
|
|
20
|
+
* @returns True if the value is a query
|
|
21
|
+
*/
|
|
22
|
+
function IsQuery(value) {
|
|
23
|
+
return (0, kind_1.HasKind)(value, QUERY_KIND);
|
|
24
|
+
}
|
|
9
25
|
//# sourceMappingURL=query.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/staged-query/query.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/staged-query/query.ts"],"names":[],"mappings":";;;AAmBA,0BAEC;AArBD,qCAAwC;AACxC,iCAA2C;AAE3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;AAExE,qHAAqH;AACrH,MAAa,KAAS,SAAQ,qBAAY;CAAG;AAA7C,sBAA6C;AAE7C,IAAA,eAAQ,EAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEtC;;;;;;;;GAQG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,IAAA,cAAO,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -13,6 +13,17 @@ export interface IndexDefinition {
|
|
|
13
13
|
* Whether or not this is a multi index
|
|
14
14
|
*/
|
|
15
15
|
multi?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether this index must also serve queries that run across all instances
|
|
18
|
+
* ({@link CROSS_INSTANCE})
|
|
19
|
+
*
|
|
20
|
+
* When `true`, the driver also maintains an index usable by cross-instance
|
|
21
|
+
* queries. Defaults to `false`: the index is optimized for queries scoped to
|
|
22
|
+
* one instance, and cross-instance queries using it may be slow.
|
|
23
|
+
*
|
|
24
|
+
* This flag never changes query results, only performance.
|
|
25
|
+
*/
|
|
26
|
+
crossInstance?: boolean;
|
|
16
27
|
}
|
|
17
28
|
export type StringFieldType = string | Array<StringFieldType> | {
|
|
18
29
|
[subfield: string]: StringFieldType;
|
|
@@ -48,6 +59,10 @@ export interface SchemaDefinition {
|
|
|
48
59
|
}
|
|
49
60
|
/**
|
|
50
61
|
* Sentinel instance id meaning "operate across all instances of the schema".
|
|
62
|
+
*
|
|
63
|
+
* Secondary indexes are optimized for queries scoped to one instance; set
|
|
64
|
+
* {@link IndexDefinition.crossInstance} on the indexes that cross-instance
|
|
65
|
+
* queries rely on.
|
|
51
66
|
*/
|
|
52
67
|
export declare const CROSS_INSTANCE: unique symbol;
|
|
53
68
|
/**
|
|
@@ -6,8 +6,12 @@ const selection_1 = require("./selection");
|
|
|
6
6
|
const common_1 = require("./common");
|
|
7
7
|
/**
|
|
8
8
|
* Sentinel instance id meaning "operate across all instances of the schema".
|
|
9
|
+
*
|
|
10
|
+
* Secondary indexes are optimized for queries scoped to one instance; set
|
|
11
|
+
* {@link IndexDefinition.crossInstance} on the indexes that cross-instance
|
|
12
|
+
* queries rely on.
|
|
9
13
|
*/
|
|
10
|
-
exports.CROSS_INSTANCE = Symbol("antelopejs
|
|
14
|
+
exports.CROSS_INSTANCE = Symbol.for("@antelopejs/interface-database/CROSS_INSTANCE");
|
|
11
15
|
/**
|
|
12
16
|
* A schema determines the structure of a database
|
|
13
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/staged-query/schema.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,2CAAoC;AACpC,qCAAoD;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/staged-query/schema.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,2CAAoC;AACpC,qCAAoD;AAoEpD;;;;;;GAMG;AACU,QAAA,cAAc,GAAkB,MAAM,CAAC,GAAG,CACrD,+CAA+C,CAChD,CAAC;AAOF;;;;;GAKG;AACH,MAAa,MAGX,SAAQ,qBAAY;IAsBF;IACA;IAtBV,MAAM,CAAU,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE3E;;;;;OAKG;IACI,MAAM,CAAC,GAAG,CACf,EAAU;QAEV,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAsC,CAAC;IACtE,CAAC;IAED;;;;;OAKG;IACH,YACkB,EAAU,EACV,UAAsB;QAEtC,KAAK,CAAC,IAAA,mBAAU,EAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAHpB,OAAE,GAAF,EAAE,CAAQ;QACV,eAAU,GAAV,UAAU,CAAY;QAGtC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,QAAQ,CAAC,EAAe;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,cAAiB,CAAA,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,EAAW;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,aAAa,CAAA,EAAE,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,EAAW;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,aAAW,CAAA,EAAE,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;OAMG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,aAAe,CAAA,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;;AAtEH,wBAuEC;AAED;;GAEG;AACH,MAAa,cAAkB,SAAQ,qBAAY;IACjD;;;;;OAKG;IACI,KAAK,CAAqB,EAAM;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA,iBAAY,CAAA,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AAVD,wCAUC"}
|
|
@@ -183,3 +183,13 @@ export declare class Stream<T> extends Query<T[]> {
|
|
|
183
183
|
*/
|
|
184
184
|
changes(): Query<Changes<T>[]>;
|
|
185
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Whether a value is a stream, built by any instance of this interface.
|
|
188
|
+
*
|
|
189
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
190
|
+
* another provider binding.
|
|
191
|
+
*
|
|
192
|
+
* @param value Value to test
|
|
193
|
+
* @returns True if the value is a stream
|
|
194
|
+
*/
|
|
195
|
+
export declare function IsStream(value: unknown): value is Stream<unknown>;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Stream = void 0;
|
|
4
|
+
exports.IsStream = IsStream;
|
|
4
5
|
const datum_1 = require("./datum");
|
|
5
6
|
const query_1 = require("./query");
|
|
6
7
|
const valueproxy_1 = require("./valueproxy");
|
|
8
|
+
const kind_1 = require("./kind");
|
|
9
|
+
const STREAM_KIND = Symbol.for("@antelopejs/interface-database/Stream@1");
|
|
7
10
|
class Stream extends query_1.Query {
|
|
8
11
|
/**
|
|
9
12
|
* Changes the type of the value in this stream.
|
|
@@ -218,4 +221,17 @@ class Stream extends query_1.Query {
|
|
|
218
221
|
}
|
|
219
222
|
}
|
|
220
223
|
exports.Stream = Stream;
|
|
224
|
+
(0, kind_1.MarkKind)(Stream.prototype, STREAM_KIND);
|
|
225
|
+
/**
|
|
226
|
+
* Whether a value is a stream, built by any instance of this interface.
|
|
227
|
+
*
|
|
228
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
229
|
+
* another provider binding.
|
|
230
|
+
*
|
|
231
|
+
* @param value Value to test
|
|
232
|
+
* @returns True if the value is a stream
|
|
233
|
+
*/
|
|
234
|
+
function IsStream(value) {
|
|
235
|
+
return (0, kind_1.HasKind)(value, STREAM_KIND);
|
|
236
|
+
}
|
|
221
237
|
//# sourceMappingURL=stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/staged-query/stream.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/staged-query/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -413,3 +413,13 @@ export declare class ValueProxy<T> extends StagedObject {
|
|
|
413
413
|
*/
|
|
414
414
|
hasfields(this: Is<T, Record<any, any>, this>, ...fields: string[]): ValueProxy<boolean>;
|
|
415
415
|
}
|
|
416
|
+
/**
|
|
417
|
+
* Whether a value is a value proxy, built by any instance of this interface.
|
|
418
|
+
*
|
|
419
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
420
|
+
* another provider binding.
|
|
421
|
+
*
|
|
422
|
+
* @param value Value to test
|
|
423
|
+
* @returns True if the value is a value proxy
|
|
424
|
+
*/
|
|
425
|
+
export declare function IsValueProxy(value: unknown): value is ValueProxy<unknown>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ValueProxy = void 0;
|
|
4
|
+
exports.IsValueProxy = IsValueProxy;
|
|
4
5
|
const common_1 = require("./common");
|
|
6
|
+
const kind_1 = require("./kind");
|
|
7
|
+
const VALUEPROXY_KIND = Symbol.for("@antelopejs/interface-database/ValueProxy@1");
|
|
5
8
|
/**
|
|
6
9
|
* Proxy to an actual value in the database
|
|
7
10
|
*
|
|
@@ -559,4 +562,17 @@ class ValueProxy extends common_1.StagedObject {
|
|
|
559
562
|
}
|
|
560
563
|
}
|
|
561
564
|
exports.ValueProxy = ValueProxy;
|
|
565
|
+
(0, kind_1.MarkKind)(ValueProxy.prototype, VALUEPROXY_KIND);
|
|
566
|
+
/**
|
|
567
|
+
* Whether a value is a value proxy, built by any instance of this interface.
|
|
568
|
+
*
|
|
569
|
+
* Unlike `instanceof`, it also recognises objects built by the instance of
|
|
570
|
+
* another provider binding.
|
|
571
|
+
*
|
|
572
|
+
* @param value Value to test
|
|
573
|
+
* @returns True if the value is a value proxy
|
|
574
|
+
*/
|
|
575
|
+
function IsValueProxy(value) {
|
|
576
|
+
return (0, kind_1.HasKind)(value, VALUEPROXY_KIND);
|
|
577
|
+
}
|
|
562
578
|
//# sourceMappingURL=valueproxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueproxy.js","sourceRoot":"","sources":["../../src/staged-query/valueproxy.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"valueproxy.js","sourceRoot":"","sources":["../../src/staged-query/valueproxy.ts"],"names":[],"mappings":"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"}
|
package/dist/stream.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Stream } from "./staged-query/stream";
|
|
1
|
+
export { IsStream, Stream } from "./staged-query/stream";
|
package/dist/stream.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Stream = void 0;
|
|
3
|
+
exports.Stream = exports.IsStream = void 0;
|
|
4
4
|
var stream_1 = require("./staged-query/stream");
|
|
5
|
+
Object.defineProperty(exports, "IsStream", { enumerable: true, get: function () { return stream_1.IsStream; } });
|
|
5
6
|
Object.defineProperty(exports, "Stream", { enumerable: true, get: function () { return stream_1.Stream; } });
|
|
6
7
|
//# sourceMappingURL=stream.js.map
|
package/dist/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":";;;AAAA,gDAAyD;AAAhD,kGAAA,QAAQ,OAAA;AAAE,gGAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
40
|
+
const chai_1 = require("chai");
|
|
41
|
+
const Database = __importStar(require("../staged-query"));
|
|
42
|
+
const other_instance_1 = require("./helpers/other-instance");
|
|
43
|
+
const buildFolder = node_path_1.default.resolve(__dirname, "..");
|
|
44
|
+
const otherInstance = (0, other_instance_1.CreateOtherInstance)([buildFolder]);
|
|
45
|
+
const Other = otherInstance(node_path_1.default.join(buildFolder, "staged-query", "index.js"));
|
|
46
|
+
function OtherTable() {
|
|
47
|
+
return new Other.Schema("cross-instance-other", {
|
|
48
|
+
items: { fields: {}, indexes: {} },
|
|
49
|
+
})
|
|
50
|
+
.instance()
|
|
51
|
+
.table("items");
|
|
52
|
+
}
|
|
53
|
+
describe("Objects built by another interface instance", () => {
|
|
54
|
+
it("IsStream, IsDatum, IsQuery and IsValueProxy recognise them (data-api picks its query path with them)", PredicatesRecogniseOtherInstance);
|
|
55
|
+
it("are not instanceof this instance's classes (providers refuse sub-queries from another binding with it)", InstanceofStaysPerInstance);
|
|
56
|
+
it("share CROSS_INSTANCE with this instance (providers compare it with ===)", CrossInstanceIsShared);
|
|
57
|
+
});
|
|
58
|
+
function PredicatesRecogniseOtherInstance() {
|
|
59
|
+
const otherTable = OtherTable();
|
|
60
|
+
const otherDatum = otherTable.get("id");
|
|
61
|
+
const otherValue = Other.ValueProxy.constant(1);
|
|
62
|
+
(0, chai_1.expect)(Other.Stream).to.not.equal(Database.Stream);
|
|
63
|
+
(0, chai_1.expect)(Database.IsStream(otherTable)).to.equal(true);
|
|
64
|
+
(0, chai_1.expect)(Database.IsQuery(otherTable)).to.equal(true);
|
|
65
|
+
(0, chai_1.expect)(Database.IsDatum(otherTable)).to.equal(false);
|
|
66
|
+
(0, chai_1.expect)(Database.IsDatum(otherDatum)).to.equal(true);
|
|
67
|
+
(0, chai_1.expect)(Database.IsStream(otherDatum)).to.equal(false);
|
|
68
|
+
(0, chai_1.expect)(Database.IsValueProxy(otherValue)).to.equal(true);
|
|
69
|
+
(0, chai_1.expect)(Database.IsQuery(otherValue)).to.equal(false);
|
|
70
|
+
(0, chai_1.expect)(Database.IsStream({})).to.equal(false);
|
|
71
|
+
(0, chai_1.expect)(Database.IsStream(null)).to.equal(false);
|
|
72
|
+
}
|
|
73
|
+
function InstanceofStaysPerInstance() {
|
|
74
|
+
(0, chai_1.expect)(OtherTable() instanceof Database.Query).to.equal(false);
|
|
75
|
+
(0, chai_1.expect)(Other.ValueProxy.constant(1) instanceof Database.ValueProxy).to.equal(false);
|
|
76
|
+
}
|
|
77
|
+
function CrossInstanceIsShared() {
|
|
78
|
+
(0, chai_1.expect)(Other.CROSS_INSTANCE).to.equal(Database.CROSS_INSTANCE);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=cross_instance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross_instance.test.js","sourceRoot":"","sources":["../../src/tests/cross_instance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type ModuleRequire = (request: string) => unknown;
|
|
2
|
+
/**
|
|
3
|
+
* Evaluates built packages a second time, the way the core gives each
|
|
4
|
+
* provider binding its own copy of an interface: every file under `folders`
|
|
5
|
+
* is loaded again, with its own classes, symbols and registries, while
|
|
6
|
+
* anything else (interface-core, third-party dependencies) stays the copy
|
|
7
|
+
* already loaded.
|
|
8
|
+
*
|
|
9
|
+
* @param folders Build output folders to evaluate again
|
|
10
|
+
* @returns A `require` resolving into the second copy
|
|
11
|
+
*/
|
|
12
|
+
export declare function CreateOtherInstance(folders: string[]): ModuleRequire;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CreateOtherInstance = CreateOtherInstance;
|
|
7
|
+
const node_module_1 = __importDefault(require("node:module"));
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
const internals = node_module_1.default;
|
|
11
|
+
/**
|
|
12
|
+
* Evaluates built packages a second time, the way the core gives each
|
|
13
|
+
* provider binding its own copy of an interface: every file under `folders`
|
|
14
|
+
* is loaded again, with its own classes, symbols and registries, while
|
|
15
|
+
* anything else (interface-core, third-party dependencies) stays the copy
|
|
16
|
+
* already loaded.
|
|
17
|
+
*
|
|
18
|
+
* @param folders Build output folders to evaluate again
|
|
19
|
+
* @returns A `require` resolving into the second copy
|
|
20
|
+
*/
|
|
21
|
+
function CreateOtherInstance(folders) {
|
|
22
|
+
const owned = folders.map((folder) => (0, node_fs_1.realpathSync)(folder) + node_path_1.default.sep);
|
|
23
|
+
const modules = new Map();
|
|
24
|
+
const load = (filename, parent) => {
|
|
25
|
+
const cached = modules.get(filename);
|
|
26
|
+
if (cached) {
|
|
27
|
+
return cached.exports;
|
|
28
|
+
}
|
|
29
|
+
const loaded = new node_module_1.default(filename, parent);
|
|
30
|
+
loaded.filename = filename;
|
|
31
|
+
loaded.paths = internals._nodeModulePaths(node_path_1.default.dirname(filename));
|
|
32
|
+
loaded.require = ((request) => requireFrom(loaded, request));
|
|
33
|
+
modules.set(filename, loaded);
|
|
34
|
+
loaded.load(filename);
|
|
35
|
+
return loaded.exports;
|
|
36
|
+
};
|
|
37
|
+
const requireFrom = (parent, request) => {
|
|
38
|
+
const filename = internals._resolveFilename(request, parent);
|
|
39
|
+
const isOwned = owned.some((root) => filename.startsWith(root));
|
|
40
|
+
return isOwned
|
|
41
|
+
? load(filename, parent)
|
|
42
|
+
: node_module_1.default.prototype.require.call(parent, request);
|
|
43
|
+
};
|
|
44
|
+
return (request) => requireFrom(module, request);
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=other-instance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"other-instance.js","sourceRoot":"","sources":["../../../src/tests/helpers/other-instance.ts"],"names":[],"mappings":";;;;;AA2BA,kDA4BC;AAvDD,8DAAiC;AACjC,qCAAuC;AACvC,0DAA6B;AAa7B,MAAM,SAAS,GAAG,qBAAoC,CAAC;AAEvD;;;;;;;;;GASG;AACH,SAAgB,mBAAmB,CAAC,OAAiB;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,sBAAY,EAAC,MAAM,CAAC,GAAG,mBAAI,CAAC,GAAG,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAW,EAAE;QACzD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,qBAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,mBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CACpC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAsB,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAoC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,OAAe,EAAW,EAAE;QAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,OAAO,OAAO;YACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;YACxB,CAAC,CAAC,qBAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,OAAO,CAAC,OAAe,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -41,6 +41,20 @@ for await (const user of schema.instance().table("users")) {
|
|
|
41
41
|
}
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
## Recognize a Query Type
|
|
45
|
+
|
|
46
|
+
`IsQuery`, `IsDatum`, `IsStream` and `IsValueProxy` tell what kind of staged object a value is:
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
import { IsStream } from "@antelopejs/interface-database";
|
|
50
|
+
|
|
51
|
+
function describe(query: unknown) {
|
|
52
|
+
return IsStream(query) ? "a sequence of documents" : "a single value";
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Each provider binding of the interface has its own copy of these classes, so a query built by a module bound to another database is not an `instanceof` this module's `Stream`. The predicates recognize it whichever copy built it. Keep `instanceof` for checking that a query was built for this module's own binding.
|
|
57
|
+
|
|
44
58
|
## Available Query Types
|
|
45
59
|
|
|
46
60
|
- [**Table**](./2.table.md) - Represents a database table with insert, get, getAll, and between operations
|
|
@@ -27,6 +27,7 @@ const schema = new Schema("myapp", {
|
|
|
27
27
|
interface IndexDefinition {
|
|
28
28
|
fields?: string[]; // Fields for compound indexes (omit for single-field)
|
|
29
29
|
multi?: boolean; // Whether this is a multi-valued index
|
|
30
|
+
crossInstance?: boolean; // Also serve CROSS_INSTANCE queries efficiently
|
|
30
31
|
}
|
|
31
32
|
```
|
|
32
33
|
|
|
@@ -102,6 +103,29 @@ const schema = new Schema("content", {
|
|
|
102
103
|
});
|
|
103
104
|
```
|
|
104
105
|
|
|
106
|
+
## Cross-Instance Indexes
|
|
107
|
+
|
|
108
|
+
Indexes are optimized for queries scoped to one instance (`schema.instance(id)`). Queries run with `schema.instance(CROSS_INSTANCE)` can still use them, but may be slow. Set `crossInstance: true` on the indexes that cross-instance queries rely on, and the driver also maintains an index usable by those queries:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
const schema = new Schema("billing", {
|
|
112
|
+
invoices: {
|
|
113
|
+
fields: { status: "string" },
|
|
114
|
+
indexes: {
|
|
115
|
+
status: { crossInstance: true },
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// Efficient on every instance at once
|
|
121
|
+
await schema
|
|
122
|
+
.instance(CROSS_INSTANCE)
|
|
123
|
+
.table("invoices")
|
|
124
|
+
.getAll("unpaid", "status");
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The flag defaults to `false`. It never changes query results, only performance. Each flagged index costs extra storage and write overhead, so only set it where cross-instance queries use the index.
|
|
128
|
+
|
|
105
129
|
## Index Design Guidelines
|
|
106
130
|
|
|
107
131
|
- **Index fields used in `getAll()` and `between()` calls** for best performance.
|
|
@@ -8,6 +8,7 @@ In AQL, indexes are defined as part of the schema definition rather than created
|
|
|
8
8
|
interface IndexDefinition {
|
|
9
9
|
fields?: string[]; // Fields for compound indexes
|
|
10
10
|
multi?: boolean; // Multi-valued index
|
|
11
|
+
crossInstance?: boolean; // Also serve CROSS_INSTANCE queries efficiently
|
|
11
12
|
}
|
|
12
13
|
```
|
|
13
14
|
|
|
@@ -60,6 +61,16 @@ indexes: {
|
|
|
60
61
|
}
|
|
61
62
|
```
|
|
62
63
|
|
|
64
|
+
### Cross-Instance Indexes
|
|
65
|
+
|
|
66
|
+
Set `crossInstance: true` when queries run with `CROSS_INSTANCE` use the index. The driver then also maintains an index usable across all instances. Without it, the index is optimized for queries scoped to one instance and cross-instance queries using it may be slow. Results are never affected:
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
indexes: {
|
|
70
|
+
status: { crossInstance: true },
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
63
74
|
## Use Indexes in Queries
|
|
64
75
|
|
|
65
76
|
Once defined, indexes are available for `getAll()` and `between()` operations:
|
|
@@ -34,6 +34,8 @@ type InstanceId = string | typeof CROSS_INSTANCE;
|
|
|
34
34
|
|
|
35
35
|
`schema.instance(CROSS_INSTANCE)` returns a query stage that operates across every instance of the schema. Adapters skip the per-instance filter on read/update/delete and reject inserts.
|
|
36
36
|
|
|
37
|
+
Secondary indexes are optimized for queries scoped to one instance. Set `crossInstance: true` in the `IndexDefinition` of the indexes that cross-instance queries rely on (see [Index Management](../2.operations/5.indexes.md)).
|
|
38
|
+
|
|
37
39
|
## Create and Manage Instances
|
|
38
40
|
|
|
39
41
|
```typescript
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/interface-database",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "AntelopeJS interface for database-agnostic query operations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antelopejs",
|
|
@@ -110,8 +110,9 @@
|
|
|
110
110
|
"knip": "knip"
|
|
111
111
|
},
|
|
112
112
|
"devDependencies": {
|
|
113
|
-
"@antelopejs/
|
|
114
|
-
"@antelopejs/
|
|
113
|
+
"@antelopejs/core": "^1.13.4",
|
|
114
|
+
"@antelopejs/interface-core": ">=0.1.1 <1.0.0",
|
|
115
|
+
"@antelopejs/tooling-configs": "^0.0.6",
|
|
115
116
|
"@types/chai": "^4.3.20",
|
|
116
117
|
"@types/mocha": "^10.0.10",
|
|
117
118
|
"@types/node": "^22.19.15",
|
|
@@ -131,7 +132,7 @@
|
|
|
131
132
|
"typescript": "^5.9.3"
|
|
132
133
|
},
|
|
133
134
|
"peerDependencies": {
|
|
134
|
-
"@antelopejs/interface-core": ">=0.
|
|
135
|
+
"@antelopejs/interface-core": ">=0.1.1 <1.0.0"
|
|
135
136
|
},
|
|
136
137
|
"packageManager": "pnpm@10.6.5",
|
|
137
138
|
"antelopeJs": {
|
|
@@ -27,6 +27,10 @@ import {
|
|
|
27
27
|
ValueProxyOrValue,
|
|
28
28
|
InstanceId,
|
|
29
29
|
CROSS_INSTANCE,
|
|
30
|
+
IsQuery,
|
|
31
|
+
IsDatum,
|
|
32
|
+
IsStream,
|
|
33
|
+
IsValueProxy,
|
|
30
34
|
} from "@antelopejs/interface-database";
|
|
31
35
|
// Types only available via subpath (not re-exported at root):
|
|
32
36
|
import {
|
|
@@ -89,8 +93,9 @@ for await (const change of novels.changes()) {
|
|
|
89
93
|
- **Callbacks receive `ValueProxy`, not values.** Functions passed to `filter`, `map`, `do`, `update(fn)`, `join`, `group` are recorded, then replayed by the backend. Only `ValueProxy` methods (`key`, `eq`, `ne`, `gt/ge/lt/le`, `and/or/not`, `add/sub/mul/div`, string/date/array/object helpers, `ValueProxy.constant`) become part of the query — plain JS (`if`, `===`, `Math.*`, template strings) does not travel. Exception: `group`'s mapper receives a staged `Stream` (the group's documents) as its first parameter and a `ValueProxy` (the index value) second — staged `Stream` methods also travel.
|
|
90
94
|
- **Staged objects are immutable.** Each chained call returns a new object; a prefix like `novels.getAll(true, "available")` can be safely reused for several derived queries.
|
|
91
95
|
- A provider module must be loaded in the project or startup fails with unresolved interface dependencies; queries themselves need no defensive "is the DB ready" checks (calls queue until the provider attaches).
|
|
92
|
-
- `Schema` ids are persistent: changing an id leaves previous data inaccessible. `Schema.get(id)` retrieves a previously constructed schema. `instance()` with no argument is the default instance; pass `CROSS_INSTANCE` to query across all instances.
|
|
96
|
+
- `Schema` ids are persistent: changing an id leaves previous data inaccessible. `Schema.get(id)` retrieves a previously constructed schema. `instance()` with no argument is the default instance; pass `CROSS_INSTANCE` to query across all instances. Indexes are optimized for per-instance queries; set `crossInstance: true` on the indexes that `CROSS_INSTANCE` queries use (performance only, results are unchanged).
|
|
93
97
|
- Field types are string tokens (`"string"`, `"number"`, `"boolean"`, `"date"`, `"string[]"`, nested object literals) or a single io-ts codec at the field root — codecs are not mixed inside string-tree records.
|
|
98
|
+
- **Recognize query kinds with `IsStream`/`IsDatum`/`IsQuery`/`IsValueProxy`, not `instanceof`,** when the object may come from another module. Each provider binding has its own copy of the classes, so `instanceof` is false for a query built by a module bound to another database; the predicates are not. `CROSS_INSTANCE` is the same value in every copy.
|
|
94
99
|
- Range semantics: `Table.between(index, low, high)` and `ValueProxy.during(left, right)` exclude the upper bound.
|
|
95
100
|
- `insert` accepts one document or an array, with `{ conflict: "update" | "replace" }` as options; it resolves to the inserted ids.
|
|
96
101
|
- `cast<U>()` on `Datum`/`Stream`/`ValueProxy` only changes the TypeScript type — no runtime conversion.
|