rads-db 3.0.2 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +15 -9
- package/dist/index.d.ts +6 -2
- package/dist/index.mjs +15 -9
- package/drivers/azureCosmos.cjs +1 -1
- package/drivers/azureCosmos.mjs +1 -1
- package/features/cache.cjs +1 -3
- package/features/cache.mjs +1 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1017,7 +1017,7 @@ function generateMethods(schema, validators, options) {
|
|
|
1017
1017
|
typeName: key,
|
|
1018
1018
|
handle: schema[key].handle
|
|
1019
1019
|
};
|
|
1020
|
-
const driverInstance = getDriverInstance(schema, key, opts
|
|
1020
|
+
const driverInstance = getDriverInstance(schema, key, getDriverConstructor(opts, schema, key), drivers);
|
|
1021
1021
|
db[handle] = getRadsDbMethods(key, computedContext, driverInstance);
|
|
1022
1022
|
}
|
|
1023
1023
|
for (const f of opts.features) {
|
|
@@ -1026,18 +1026,13 @@ function generateMethods(schema, validators, options) {
|
|
|
1026
1026
|
}
|
|
1027
1027
|
return db;
|
|
1028
1028
|
}
|
|
1029
|
-
function getDriverInstance(schema, key,
|
|
1029
|
+
function getDriverInstance(schema, key, driverConstructor, driverInstances) {
|
|
1030
1030
|
if (!driverInstances[key]) {
|
|
1031
|
-
driverInstances[key] = getDriverInstanceInner(schema, key,
|
|
1031
|
+
driverInstances[key] = getDriverInstanceInner(schema, key, driverConstructor);
|
|
1032
1032
|
}
|
|
1033
1033
|
return driverInstances[key];
|
|
1034
1034
|
}
|
|
1035
|
-
function getDriverInstanceInner(schema, key,
|
|
1036
|
-
const driverName = schema[key].decorators.entity.driver || "default";
|
|
1037
|
-
const driverConstructor = drivers[driverName];
|
|
1038
|
-
if (!driverConstructor) {
|
|
1039
|
-
throw new Error(`Missing driver "${driverName}" for entity "${key}"`);
|
|
1040
|
-
}
|
|
1035
|
+
function getDriverInstanceInner(schema, key, driverConstructor) {
|
|
1041
1036
|
const driverInstance = driverConstructor(schema, key);
|
|
1042
1037
|
addDryRunSupport(driverInstance, key);
|
|
1043
1038
|
async function getAll(args, ctx) {
|
|
@@ -1142,6 +1137,17 @@ function normalizeOptions(options) {
|
|
|
1142
1137
|
driver = { default: driver };
|
|
1143
1138
|
return { computed: {}, features: [], ...options, driver };
|
|
1144
1139
|
}
|
|
1140
|
+
function getDriverConstructor(options, schema, key) {
|
|
1141
|
+
let driverName = "default";
|
|
1142
|
+
if (!options.noCustomDrivers) {
|
|
1143
|
+
driverName = schema[key].decorators.entity.driver || driverName;
|
|
1144
|
+
}
|
|
1145
|
+
const driverConstructor = options.driver[driverName];
|
|
1146
|
+
if (!driverConstructor) {
|
|
1147
|
+
throw new Error(`Missing driver "${driverName}" for entity "${key}"`);
|
|
1148
|
+
}
|
|
1149
|
+
return driverConstructor;
|
|
1150
|
+
}
|
|
1145
1151
|
|
|
1146
1152
|
const restApi = (options) => (schema, entity) => {
|
|
1147
1153
|
const opts = {
|
package/dist/index.d.ts
CHANGED
|
@@ -86,6 +86,7 @@ interface EntityMethods<E, EN extends keyof EntityMeta, W> {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
type MaybePromise<T> = Promise<T> | T;
|
|
89
|
+
type RequiredFields<T, K extends keyof T> = T & Required<Pick<T, K>>;
|
|
89
90
|
type ValidateFieldDecoratorArgs<T> = T extends string ? ValidateStringDecoratorArgs : T extends number ? ValidateNumberDecoratorArgs : ValidateAnyDecoratorArgs;
|
|
90
91
|
interface ValidateEntityDecoratorArgs {
|
|
91
92
|
}
|
|
@@ -182,6 +183,9 @@ interface CreateRadsDbArgs {
|
|
|
182
183
|
context?: Record<string, any> & Omit<RadsRequestContext, 'dryRun' | 'silent'>;
|
|
183
184
|
features?: RadsFeature[];
|
|
184
185
|
}
|
|
186
|
+
type CreateRadsDbArgsNormalized = RequiredFields<CreateRadsDbArgs, 'computed' | 'features'> & {
|
|
187
|
+
driver: CreateRadsArgsDrivers;
|
|
188
|
+
};
|
|
185
189
|
type CreateRadsDbClientArgs = Omit<CreateRadsDbArgs, 'noComputed' | 'noCustomDrivers' | 'driver'> & {
|
|
186
190
|
driver?: RestDriverOptions;
|
|
187
191
|
};
|
|
@@ -359,7 +363,7 @@ declare function field(meta?: FieldDecoratorArgs): (a: any, b?: ClassFieldDecora
|
|
|
359
363
|
declare function precomputed(meta?: ComputedDecoratorArgs): (a: any, b?: ClassFieldDecoratorContext | ClassDecoratorContext) => void;
|
|
360
364
|
declare function computed(meta?: ComputedDecoratorArgs): (a: any, b?: ClassFieldDecoratorContext | ClassDecoratorContext) => void;
|
|
361
365
|
|
|
362
|
-
declare function getDriverInstance(schema: Schema, key: string,
|
|
366
|
+
declare function getDriverInstance(schema: Schema, key: string, driverConstructor: DriverConstructor, driverInstances: Record<string, Driver>): Driver;
|
|
363
367
|
|
|
364
368
|
/**
|
|
365
369
|
* Creates instance of rads db - object that provides access to all entities.
|
|
@@ -373,4 +377,4 @@ declare function createRadsDb(args?: CreateRadsDbArgs): RadsDb;
|
|
|
373
377
|
*/
|
|
374
378
|
declare function createRadsDbClient(args?: CreateRadsDbClientArgs): RadsDb;
|
|
375
379
|
|
|
376
|
-
export { Change, ComputedContext, ComputedContextGlobal, ComputedDecoratorArgs, CreateRadsArgsDrivers, CreateRadsDbArgs, CreateRadsDbClientArgs, DeepPartial, Driver, DriverConstructor, EntityDecoratorArgs, EntityMethods, FieldDecoratorArgs, FieldDefinition, FileSystemNode, FileUploadArgs, FileUploadDriver, GenerateClientNormalizedOptions, GenerateClientOptions, GetAggArgs, GetAggArgsAgg, GetAggArgsAny, GetAggResponse, GetArgs, GetArgsAny, GetArgsInclude, GetManyArgs, GetManyArgsAny, GetManyResponse, GetResponse, GetResponseInclude, GetResponseIncludeSelect, GetResponseNoInclude, GetRestRoutesArgs, GetRestRoutesOptions, GetRestRoutesResponse, MinimalDriver, PutArgs, PutEffect, RadsFeature, RadsRequestContext, RadsUiSlotDefinition, RadsUiSlotName, RadsVitePluginOptions, Relation, RestDriverOptions, RestFileUploadDriverOptions, Schema, SchemaValidators, TypeDefinition, UiDecoratorArgs, UiFieldDecoratorArgs, ValidateEntityDecoratorArgs, ValidateFieldDecoratorArgs, ValidateStringDecoratorArgs, VerifyManyArgs, VerifyManyArgsAny, VerifyManyResponse, computed, createRadsDb, createRadsDbClient, entity, field, getDriverInstance, precomputed, ui, validate };
|
|
380
|
+
export { Change, ComputedContext, ComputedContextGlobal, ComputedDecoratorArgs, CreateRadsArgsDrivers, CreateRadsDbArgs, CreateRadsDbArgsNormalized, CreateRadsDbClientArgs, DeepPartial, Driver, DriverConstructor, EntityDecoratorArgs, EntityMethods, FieldDecoratorArgs, FieldDefinition, FileSystemNode, FileUploadArgs, FileUploadDriver, GenerateClientNormalizedOptions, GenerateClientOptions, GetAggArgs, GetAggArgsAgg, GetAggArgsAny, GetAggResponse, GetArgs, GetArgsAny, GetArgsInclude, GetManyArgs, GetManyArgsAny, GetManyResponse, GetResponse, GetResponseInclude, GetResponseIncludeSelect, GetResponseNoInclude, GetRestRoutesArgs, GetRestRoutesOptions, GetRestRoutesResponse, MinimalDriver, PutArgs, PutEffect, RadsFeature, RadsRequestContext, RadsUiSlotDefinition, RadsUiSlotName, RadsVitePluginOptions, Relation, RequiredFields, RestDriverOptions, RestFileUploadDriverOptions, Schema, SchemaValidators, TypeDefinition, UiDecoratorArgs, UiFieldDecoratorArgs, ValidateEntityDecoratorArgs, ValidateFieldDecoratorArgs, ValidateStringDecoratorArgs, VerifyManyArgs, VerifyManyArgsAny, VerifyManyResponse, computed, createRadsDb, createRadsDbClient, entity, field, getDriverInstance, precomputed, ui, validate };
|
package/dist/index.mjs
CHANGED
|
@@ -1009,7 +1009,7 @@ function generateMethods(schema, validators, options) {
|
|
|
1009
1009
|
typeName: key,
|
|
1010
1010
|
handle: schema[key].handle
|
|
1011
1011
|
};
|
|
1012
|
-
const driverInstance = getDriverInstance(schema, key, opts
|
|
1012
|
+
const driverInstance = getDriverInstance(schema, key, getDriverConstructor(opts, schema, key), drivers);
|
|
1013
1013
|
db[handle] = getRadsDbMethods(key, computedContext, driverInstance);
|
|
1014
1014
|
}
|
|
1015
1015
|
for (const f of opts.features) {
|
|
@@ -1018,18 +1018,13 @@ function generateMethods(schema, validators, options) {
|
|
|
1018
1018
|
}
|
|
1019
1019
|
return db;
|
|
1020
1020
|
}
|
|
1021
|
-
function getDriverInstance(schema, key,
|
|
1021
|
+
function getDriverInstance(schema, key, driverConstructor, driverInstances) {
|
|
1022
1022
|
if (!driverInstances[key]) {
|
|
1023
|
-
driverInstances[key] = getDriverInstanceInner(schema, key,
|
|
1023
|
+
driverInstances[key] = getDriverInstanceInner(schema, key, driverConstructor);
|
|
1024
1024
|
}
|
|
1025
1025
|
return driverInstances[key];
|
|
1026
1026
|
}
|
|
1027
|
-
function getDriverInstanceInner(schema, key,
|
|
1028
|
-
const driverName = schema[key].decorators.entity.driver || "default";
|
|
1029
|
-
const driverConstructor = drivers[driverName];
|
|
1030
|
-
if (!driverConstructor) {
|
|
1031
|
-
throw new Error(`Missing driver "${driverName}" for entity "${key}"`);
|
|
1032
|
-
}
|
|
1027
|
+
function getDriverInstanceInner(schema, key, driverConstructor) {
|
|
1033
1028
|
const driverInstance = driverConstructor(schema, key);
|
|
1034
1029
|
addDryRunSupport(driverInstance, key);
|
|
1035
1030
|
async function getAll(args, ctx) {
|
|
@@ -1134,6 +1129,17 @@ function normalizeOptions(options) {
|
|
|
1134
1129
|
driver = { default: driver };
|
|
1135
1130
|
return { computed: {}, features: [], ...options, driver };
|
|
1136
1131
|
}
|
|
1132
|
+
function getDriverConstructor(options, schema, key) {
|
|
1133
|
+
let driverName = "default";
|
|
1134
|
+
if (!options.noCustomDrivers) {
|
|
1135
|
+
driverName = schema[key].decorators.entity.driver || driverName;
|
|
1136
|
+
}
|
|
1137
|
+
const driverConstructor = options.driver[driverName];
|
|
1138
|
+
if (!driverConstructor) {
|
|
1139
|
+
throw new Error(`Missing driver "${driverName}" for entity "${key}"`);
|
|
1140
|
+
}
|
|
1141
|
+
return driverConstructor;
|
|
1142
|
+
}
|
|
1137
1143
|
|
|
1138
1144
|
const restApi = (options) => (schema, entity) => {
|
|
1139
1145
|
const opts = {
|
package/drivers/azureCosmos.cjs
CHANGED
|
@@ -501,7 +501,7 @@ async function createDatabaseIfNotExists(options, client) {
|
|
|
501
501
|
await client.databases.createIfNotExists({
|
|
502
502
|
id: options.databaseName
|
|
503
503
|
});
|
|
504
|
-
await client.database(options.databaseName).containers.
|
|
504
|
+
await client.database(options.databaseName).containers.createIfNotExists({
|
|
505
505
|
id: options.containerName,
|
|
506
506
|
partitionKey: "/_partition"
|
|
507
507
|
});
|
package/drivers/azureCosmos.mjs
CHANGED
|
@@ -322,7 +322,7 @@ function getWhereNameOperatorPair(whereKey) {
|
|
|
322
322
|
async function createDatabaseIfNotExists(options, client) {
|
|
323
323
|
try {
|
|
324
324
|
await client.databases.createIfNotExists({ id: options.databaseName });
|
|
325
|
-
await client.database(options.databaseName).containers.
|
|
325
|
+
await client.database(options.databaseName).containers.createIfNotExists({ id: options.containerName, partitionKey: "/_partition" });
|
|
326
326
|
} catch (e) {
|
|
327
327
|
console.error("Error initializing CosmosDb: ", e);
|
|
328
328
|
}
|
package/features/cache.cjs
CHANGED
|
@@ -56,9 +56,7 @@ var _default = options => {
|
|
|
56
56
|
handle: cacheEntityName,
|
|
57
57
|
handlePlural: `${cacheEntityName}s`
|
|
58
58
|
};
|
|
59
|
-
cacheDrivers[handle] = (0, _radsDb.getDriverInstance)(schema, cacheEntityName,
|
|
60
|
-
default: normalizedOptions[typeName].driver
|
|
61
|
-
}, drivers);
|
|
59
|
+
cacheDrivers[handle] = (0, _radsDb.getDriverInstance)(schema, cacheEntityName, normalizedOptions[typeName].driver, drivers);
|
|
62
60
|
cacheStatus[handle] = {
|
|
63
61
|
preloadStatus: normalizedOptions[typeName].preload ? "neverLoaded" : void 0
|
|
64
62
|
};
|
package/features/cache.mjs
CHANGED
|
@@ -38,12 +38,7 @@ export default (options) => {
|
|
|
38
38
|
handle: cacheEntityName,
|
|
39
39
|
handlePlural: `${cacheEntityName}s`
|
|
40
40
|
};
|
|
41
|
-
cacheDrivers[handle] = getDriverInstance(
|
|
42
|
-
schema,
|
|
43
|
-
cacheEntityName,
|
|
44
|
-
{ default: normalizedOptions[typeName].driver },
|
|
45
|
-
drivers
|
|
46
|
-
);
|
|
41
|
+
cacheDrivers[handle] = getDriverInstance(schema, cacheEntityName, normalizedOptions[typeName].driver, drivers);
|
|
47
42
|
cacheStatus[handle] = { preloadStatus: normalizedOptions[typeName].preload ? "neverLoaded" : void 0 };
|
|
48
43
|
}
|
|
49
44
|
db.cache = {
|