@snowtop/ent 0.1.0-alpha8 → 0.1.0-alpha80
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/action/action.d.ts +27 -25
- package/action/executor.d.ts +3 -3
- package/action/executor.js +2 -2
- package/action/experimental_action.d.ts +29 -22
- package/action/experimental_action.js +29 -6
- package/action/orchestrator.d.ts +37 -16
- package/action/orchestrator.js +184 -54
- package/action/privacy.d.ts +2 -2
- package/core/base.d.ts +38 -22
- package/core/clause.d.ts +65 -7
- package/core/clause.js +261 -54
- package/core/config.d.ts +8 -0
- package/core/context.d.ts +5 -3
- package/core/context.js +7 -2
- package/core/convert.d.ts +1 -1
- package/core/db.d.ts +1 -2
- package/core/db.js +1 -1
- package/core/ent.d.ts +76 -24
- package/core/ent.js +459 -143
- package/core/loaders/assoc_count_loader.d.ts +2 -2
- package/core/loaders/assoc_count_loader.js +6 -1
- package/core/loaders/assoc_edge_loader.d.ts +2 -2
- package/core/loaders/loader.js +5 -5
- package/core/loaders/object_loader.d.ts +4 -3
- package/core/loaders/object_loader.js +22 -5
- package/core/loaders/query_loader.d.ts +2 -2
- package/core/loaders/raw_count_loader.d.ts +2 -2
- package/core/logger.d.ts +1 -1
- package/core/logger.js +1 -0
- package/core/privacy.d.ts +26 -25
- package/core/privacy.js +21 -25
- package/core/query/assoc_query.d.ts +6 -6
- package/core/query/custom_query.d.ts +5 -5
- package/core/query/query.d.ts +1 -1
- package/core/query/shared_assoc_test.d.ts +1 -1
- package/core/query/shared_assoc_test.js +17 -5
- package/core/query/shared_test.d.ts +3 -0
- package/core/query/shared_test.js +95 -17
- package/core/viewer.d.ts +3 -3
- package/core/viewer.js +1 -1
- package/graphql/builtins/connection.js +3 -3
- package/graphql/builtins/edge.js +2 -2
- package/graphql/builtins/node.js +1 -1
- package/graphql/graphql.js +8 -2
- package/graphql/query/connection_type.js +6 -6
- package/graphql/query/edge_connection.d.ts +9 -9
- package/graphql/query/page_info.d.ts +1 -1
- package/graphql/query/page_info.js +4 -4
- package/graphql/query/shared_assoc_test.js +2 -2
- package/graphql/scalars/time.d.ts +1 -1
- package/index.d.ts +10 -5
- package/index.js +13 -6
- package/package.json +2 -2
- package/parse_schema/parse.d.ts +14 -2
- package/parse_schema/parse.js +40 -2
- package/schema/base_schema.d.ts +1 -1
- package/schema/base_schema.js +3 -0
- package/schema/field.d.ts +36 -7
- package/schema/field.js +70 -2
- package/schema/index.d.ts +2 -2
- package/schema/json_field.d.ts +13 -1
- package/schema/json_field.js +28 -1
- package/schema/schema.d.ts +61 -10
- package/schema/schema.js +18 -4
- package/schema/struct_field.d.ts +11 -1
- package/schema/struct_field.js +43 -4
- package/scripts/custom_graphql.js +5 -1
- package/scripts/{transform_schema.d.ts → migrate_v0.1.d.ts} +0 -0
- package/scripts/migrate_v0.1.js +36 -0
- package/scripts/read_schema.js +25 -2
- package/testutils/builder.d.ts +31 -21
- package/testutils/builder.js +82 -29
- package/testutils/db/fixture.d.ts +10 -0
- package/testutils/db/fixture.js +26 -0
- package/testutils/db/{test_db.d.ts → temp_db.d.ts} +15 -3
- package/testutils/db/{test_db.js → temp_db.js} +63 -15
- package/testutils/db/value.d.ts +6 -0
- package/testutils/db/value.js +251 -0
- package/testutils/db_time_zone.d.ts +4 -0
- package/testutils/db_time_zone.js +41 -0
- package/testutils/ent-graphql-tests/index.js +19 -12
- package/testutils/fake_data/fake_contact.d.ts +3 -3
- package/testutils/fake_data/fake_contact.js +9 -6
- package/testutils/fake_data/fake_event.d.ts +3 -3
- package/testutils/fake_data/fake_event.js +8 -5
- package/testutils/fake_data/fake_user.d.ts +4 -4
- package/testutils/fake_data/fake_user.js +16 -13
- package/testutils/fake_data/test_helpers.d.ts +2 -2
- package/testutils/fake_data/test_helpers.js +5 -5
- package/testutils/fake_data/user_query.d.ts +2 -2
- package/testutils/fake_log.d.ts +3 -3
- package/testutils/parse_sql.d.ts +6 -0
- package/testutils/parse_sql.js +16 -2
- package/testutils/test_edge_global_schema.d.ts +15 -0
- package/testutils/test_edge_global_schema.js +58 -0
- package/testutils/write.d.ts +2 -2
- package/testutils/write.js +29 -7
- package/tsc/ast.d.ts +44 -0
- package/tsc/ast.js +267 -0
- package/tsc/compilerOptions.d.ts +6 -0
- package/tsc/compilerOptions.js +40 -1
- package/tsc/move_generated.d.ts +1 -0
- package/tsc/move_generated.js +160 -0
- package/tsc/transform.d.ts +21 -0
- package/tsc/transform.js +167 -0
- package/tsc/transform_action.d.ts +22 -0
- package/tsc/transform_action.js +179 -0
- package/tsc/transform_ent.d.ts +17 -0
- package/tsc/transform_ent.js +59 -0
- package/tsc/transform_schema.d.ts +27 -0
- package/tsc/transform_schema.js +379 -0
- package/scripts/transform_schema.js +0 -437
package/core/db.js
CHANGED
|
@@ -148,7 +148,7 @@ class DB {
|
|
|
148
148
|
async getNewClient() {
|
|
149
149
|
return this.q.newClient();
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
getSQLiteClient() {
|
|
152
152
|
if (this.db.dialect == Dialect.Postgres) {
|
|
153
153
|
throw new Error(`can't call getSQLiteClient when dialect is postgres`);
|
|
154
154
|
}
|
package/core/ent.d.ts
CHANGED
|
@@ -1,28 +1,63 @@
|
|
|
1
1
|
import { Queryer, SyncQueryer } from "./db";
|
|
2
|
-
import { Viewer, Ent, ID, LoadRowsOptions, LoadRowOptions, Data, DataOptions, QueryableDataOptions, EditRowOptions, LoadEntOptions, LoadCustomEntOptions, EdgeQueryableDataOptions, Context,
|
|
2
|
+
import { Viewer, Ent, ID, LoadRowsOptions, LoadRowOptions, Data, DataOptions, QueryableDataOptions, EditRowOptions, LoadEntOptions, LoadCustomEntOptions, EdgeQueryableDataOptions, Context, CreateRowOptions, QueryDataOptions, SelectCustomDataOptions } from "./base";
|
|
3
3
|
import { Executor } from "../action/action";
|
|
4
4
|
import * as clause from "./clause";
|
|
5
5
|
import { Builder } from "../action";
|
|
6
6
|
import DataLoader from "dataloader";
|
|
7
|
-
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export declare function
|
|
17
|
-
|
|
7
|
+
import { GlobalSchema } from "../schema/";
|
|
8
|
+
export declare function getEntKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): string;
|
|
9
|
+
export declare function loadEnt<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
|
|
10
|
+
export declare function loadEntViaKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, key: any, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
|
|
11
|
+
export declare function loadEntX<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt>;
|
|
12
|
+
export declare function loadEntXViaKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, key: any, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt>;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated use loadCustomEnts
|
|
15
|
+
*/
|
|
16
|
+
export declare function loadEntFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, clause: clause.Clause): Promise<TEnt | null>;
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use loadCustomEnts
|
|
19
|
+
*/
|
|
20
|
+
export declare function loadEntXFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, clause: clause.Clause): Promise<TEnt>;
|
|
21
|
+
export declare function loadEnts<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, ...ids: ID[]): Promise<Map<ID, TEnt>>;
|
|
22
|
+
export declare function loadEntsList<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, ...ids: ID[]): Promise<TEnt[]>;
|
|
23
|
+
/**
|
|
24
|
+
* @deperecated use loadCustomEnts
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadEntsFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, clause: clause.Clause, options: LoadEntOptions<TEnt, TViewer>): Promise<Map<ID, TEnt>>;
|
|
27
|
+
export declare function loadCustomEnts<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadCustomEntOptions<TEnt, TViewer>, query: CustomQuery): Promise<TEnt[]>;
|
|
28
|
+
interface parameterizedQueryOptions {
|
|
18
29
|
query: string;
|
|
19
30
|
values?: any[];
|
|
20
31
|
logValues?: any[];
|
|
21
32
|
}
|
|
22
|
-
export declare type CustomQuery = string |
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
export declare type CustomQuery = string | parameterizedQueryOptions | clause.Clause | QueryDataOptions;
|
|
34
|
+
/**
|
|
35
|
+
* Note that if there's default read transformations (e.g. soft delete) and a clause is passed in
|
|
36
|
+
* either as Clause or QueryDataOptions without {disableTransformations: true}, the default transformation
|
|
37
|
+
* (e.g. soft delete) is applied.
|
|
38
|
+
*
|
|
39
|
+
* Passing a full SQL string or Paramterized SQL string doesn't apply it and the given string is sent to the
|
|
40
|
+
* database as written.
|
|
41
|
+
*
|
|
42
|
+
* e.g.
|
|
43
|
+
* Foo.loadCustom(opts, 'SELECT * FROM foo') // doesn't change the query
|
|
44
|
+
* Foo.loadCustom(opts, { query: 'SELECT * FROM foo WHERE id = ?', values: [1]}) // doesn't change the query
|
|
45
|
+
* Foo.loadCustom(opts, query.Eq('time', Date.now())) // changes the query
|
|
46
|
+
* Foo.loadCustom(opts, {
|
|
47
|
+
* clause: query.LessEq('time', Date.now()),
|
|
48
|
+
* limit: 100,
|
|
49
|
+
* orderby: 'time',
|
|
50
|
+
* }) // changes the query
|
|
51
|
+
* Foo.loadCustom(opts, {
|
|
52
|
+
* clause: query.LessEq('time', Date.now()),
|
|
53
|
+
* limit: 100,
|
|
54
|
+
* orderby: 'time',
|
|
55
|
+
* disableTransformations: false
|
|
56
|
+
* }) // doesn't change the query
|
|
57
|
+
*/
|
|
58
|
+
export declare function loadCustomData(options: SelectCustomDataOptions, query: CustomQuery, context: Context | undefined): Promise<Data[]>;
|
|
59
|
+
export declare function loadDerivedEnt<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, data: Data, loader: new (viewer: TViewer, data: Data) => TEnt): Promise<TEnt | null>;
|
|
60
|
+
export declare function loadDerivedEntX<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, data: Data, loader: new (viewer: TViewer, data: Data) => TEnt): Promise<TEnt>;
|
|
26
61
|
export declare function loadRowX(options: LoadRowOptions): Promise<Data>;
|
|
27
62
|
export declare function loadRow(options: LoadRowOptions): Promise<Data | null>;
|
|
28
63
|
export declare function performRawQuery(query: string, values: any[], logValues?: any[]): Promise<Data[]>;
|
|
@@ -52,6 +87,13 @@ export interface EditNodeOptions<T extends Ent> extends EditRowOptions {
|
|
|
52
87
|
fieldsToResolve: string[];
|
|
53
88
|
loadEntOptions: LoadEntOptions<T>;
|
|
54
89
|
placeholderID?: ID;
|
|
90
|
+
key: string;
|
|
91
|
+
}
|
|
92
|
+
export declare class RawQueryOperation implements DataOperation {
|
|
93
|
+
private queries;
|
|
94
|
+
constructor(queries: (string | parameterizedQueryOptions)[]);
|
|
95
|
+
performWrite(queryer: Queryer, context?: Context): Promise<void>;
|
|
96
|
+
performWriteSync(queryer: SyncQueryer, context?: Context): void;
|
|
55
97
|
}
|
|
56
98
|
export declare class EditNodeOperation<T extends Ent> implements DataOperation {
|
|
57
99
|
options: EditNodeOptions<T>;
|
|
@@ -67,7 +109,11 @@ export declare class EditNodeOperation<T extends Ent> implements DataOperation {
|
|
|
67
109
|
returnedRow(): Data | null;
|
|
68
110
|
createdEnt(viewer: Viewer): T | null;
|
|
69
111
|
}
|
|
112
|
+
export declare function setGlobalSchema(val: GlobalSchema): void;
|
|
113
|
+
export declare function clearGlobalSchema(): void;
|
|
114
|
+
export declare function __hasGlobalSchema(): boolean;
|
|
70
115
|
export declare class EdgeOperation implements DataOperation {
|
|
116
|
+
private builder;
|
|
71
117
|
edgeInput: AssocEdgeInput;
|
|
72
118
|
private options;
|
|
73
119
|
private edgeData;
|
|
@@ -96,9 +142,9 @@ export declare class EdgeOperation implements DataOperation {
|
|
|
96
142
|
export declare function buildInsertQuery(options: CreateRowOptions, suffix?: string): [string, string[], string[]];
|
|
97
143
|
export declare function createRow(queryer: Queryer, options: CreateRowOptions, suffix: string): Promise<Data | null>;
|
|
98
144
|
export declare function createRowSync(queryer: SyncQueryer, options: CreateRowOptions, suffix: string): Data | null;
|
|
99
|
-
export declare function buildUpdateQuery(options: EditRowOptions,
|
|
100
|
-
export declare function editRow(queryer: Queryer, options: EditRowOptions,
|
|
101
|
-
export declare function editRowSync(queryer: SyncQueryer, options: EditRowOptions,
|
|
145
|
+
export declare function buildUpdateQuery(options: EditRowOptions, suffix?: string): [string, any[], any[]];
|
|
146
|
+
export declare function editRow(queryer: Queryer, options: EditRowOptions, suffix?: string): Promise<Data | null>;
|
|
147
|
+
export declare function editRowSync(queryer: SyncQueryer, options: EditRowOptions, suffix?: string): Data | null;
|
|
102
148
|
export declare function deleteRows(queryer: Queryer, options: DataOptions, cls: clause.Clause): Promise<void>;
|
|
103
149
|
export declare function deleteRowsSync(queryer: SyncQueryer, options: DataOptions, cls: clause.Clause): void;
|
|
104
150
|
export declare class DeleteNodeOperation implements DataOperation {
|
|
@@ -116,7 +162,9 @@ export declare class AssocEdge {
|
|
|
116
162
|
id2Type: string;
|
|
117
163
|
time: Date;
|
|
118
164
|
data?: string | null;
|
|
165
|
+
private rawData;
|
|
119
166
|
constructor(data: Data);
|
|
167
|
+
__getRawData(): Data;
|
|
120
168
|
getCursor(): string;
|
|
121
169
|
}
|
|
122
170
|
interface cursorOptions {
|
|
@@ -145,7 +193,7 @@ export declare class AssocEdgeData {
|
|
|
145
193
|
edgeTable: string;
|
|
146
194
|
constructor(data: Data);
|
|
147
195
|
}
|
|
148
|
-
export declare const assocEdgeLoader: DataLoader<
|
|
196
|
+
export declare const assocEdgeLoader: DataLoader<ID, Data | null, ID>;
|
|
149
197
|
export declare function loadEdgeData(edgeType: string): Promise<AssocEdgeData | null>;
|
|
150
198
|
export declare function loadEdgeDatas(...edgeTypes: string[]): Promise<Map<string, AssocEdgeData>>;
|
|
151
199
|
export interface AssocEdgeConstructor<T extends AssocEdge> {
|
|
@@ -156,6 +204,7 @@ interface loadEdgesOptions {
|
|
|
156
204
|
edgeType: string;
|
|
157
205
|
context?: Context;
|
|
158
206
|
queryOptions?: EdgeQueryableDataOptions;
|
|
207
|
+
disableTransformations?: boolean;
|
|
159
208
|
}
|
|
160
209
|
interface loadCustomEdgesOptions<T extends AssocEdge> extends loadEdgesOptions {
|
|
161
210
|
ctr: AssocEdgeConstructor<T>;
|
|
@@ -163,17 +212,20 @@ interface loadCustomEdgesOptions<T extends AssocEdge> extends loadEdgesOptions {
|
|
|
163
212
|
export declare const DefaultLimit = 1000;
|
|
164
213
|
export declare function defaultEdgeQueryOptions(id1: ID, edgeType: string): EdgeQueryableDataOptions;
|
|
165
214
|
export declare function loadEdges(options: loadEdgesOptions): Promise<AssocEdge[]>;
|
|
215
|
+
export declare function getEdgeClauseAndFields(cls: clause.Clause, options: loadEdgesOptions): {
|
|
216
|
+
cls: clause.Clause;
|
|
217
|
+
fields: string[];
|
|
218
|
+
};
|
|
166
219
|
export declare function loadCustomEdges<T extends AssocEdge>(options: loadCustomEdgesOptions<T>): Promise<T[]>;
|
|
167
220
|
export declare function loadUniqueEdge(options: loadEdgesOptions): Promise<AssocEdge | null>;
|
|
168
|
-
export declare function loadUniqueNode<
|
|
221
|
+
export declare function loadUniqueNode<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id1: ID, edgeType: string, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
|
|
169
222
|
export declare function loadRawEdgeCountX(options: loadEdgesOptions): Promise<number>;
|
|
170
223
|
interface loadEdgeForIDOptions<T extends AssocEdge> extends loadCustomEdgesOptions<T> {
|
|
171
224
|
id2: ID;
|
|
172
225
|
}
|
|
173
226
|
export declare function loadEdgeForID2<T extends AssocEdge>(options: loadEdgeForIDOptions<T>): Promise<T | undefined>;
|
|
174
227
|
export declare function loadNodesByEdge<T extends Ent>(viewer: Viewer, id1: ID, edgeType: string, options: LoadEntOptions<T>): Promise<T[]>;
|
|
175
|
-
export declare function applyPrivacyPolicyForRow<
|
|
176
|
-
export declare function
|
|
177
|
-
export declare function applyPrivacyPolicyForRows<T extends Ent>(viewer: Viewer, rows: Data[], options: LoadEntOptions<T>): Promise<Map<ID, T>>;
|
|
228
|
+
export declare function applyPrivacyPolicyForRow<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, row: Data | null): Promise<TEnt | null>;
|
|
229
|
+
export declare function applyPrivacyPolicyForRows<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, rows: Data[], options: LoadEntOptions<TEnt, TViewer>): Promise<Map<ID, TEnt>>;
|
|
178
230
|
export declare function getEdgeTypeInGroup<T extends string>(viewer: Viewer, id1: ID, id2: ID, m: Map<T, string>): Promise<[T, AssocEdge] | undefined>;
|
|
179
231
|
export {};
|