functional-models 3.0.6 → 3.0.8

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.
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.buildOrmValidatorContext = exports.uniqueTogether = exports.unique = void 0;
16
+ const flow_1 = __importDefault(require("lodash/flow"));
17
+ const query_1 = require("./query");
18
+ const _doUniqueCheck = (query, instance, instanceData, buildErrorMessage) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const model = instance.getModel();
20
+ const results = yield model.search(query);
21
+ const resultsLength = results.instances.length;
22
+ // There is nothing stored with this value.
23
+ if (resultsLength < 1) {
24
+ return undefined;
25
+ }
26
+ const ids = yield Promise.all(results.instances.map((x) => x.getPrimaryKey()));
27
+ // We have our match by id.
28
+ // @ts-ignore
29
+ const instanceId = instanceData[model.getModelDefinition().primaryKeyName];
30
+ if (ids.length === 1 && ids[0] === instanceId) {
31
+ return undefined;
32
+ }
33
+ if (ids.length > 1) {
34
+ // This is a weird but possible case where there is more than one item. We don't want to error
35
+ // if the instance we are checking is already in the datastore.
36
+ if (ids.find(x => x === instanceId)) {
37
+ return undefined;
38
+ }
39
+ }
40
+ return buildErrorMessage();
41
+ });
42
+ /**
43
+ * A validator that ensures that there is only one instance stored, that has a unique combination of values.
44
+ * @param propertyKeyArray - An array of property names that create the unique match.
45
+ */
46
+ const uniqueTogether = (propertyKeyArray) => {
47
+ const _uniqueTogether = (instance, instanceData, options) => __awaiter(void 0, void 0, void 0, function* () {
48
+ if (options.noOrmValidation) {
49
+ return undefined;
50
+ }
51
+ const properties = propertyKeyArray.map(key => {
52
+ // @ts-ignore
53
+ return [key, instanceData[key]];
54
+ });
55
+ const query = (0, flow_1.default)(properties.map(([key, value], index) => {
56
+ return b => {
57
+ // We only want to do an 'and' if there is another property.
58
+ if (index + 1 >= properties.length) {
59
+ return b.property(key, value, { caseSensitive: false });
60
+ }
61
+ return b.property(key, value, { caseSensitive: false }).and();
62
+ };
63
+ }))((0, query_1.queryBuilder)().take(2)).compile();
64
+ return _doUniqueCheck(query, instance, instanceData, () => {
65
+ return propertyKeyArray.length > 1
66
+ ? `${propertyKeyArray.join(',')} must be unique together. Another instance found.`
67
+ : `${propertyKeyArray[0]} must be unique. Another instance found.`;
68
+ });
69
+ });
70
+ return _uniqueTogether;
71
+ };
72
+ exports.uniqueTogether = uniqueTogether;
73
+ /**
74
+ * Validates that a stored instance is the only one that has a value for a specific property.
75
+ * This only validates before the instance goes into the datastore.
76
+ * @param propertyKey - The property key to check.
77
+ */
78
+ const unique = (propertyKey) => {
79
+ const _unique = (value, instance, instanceData, options) => {
80
+ return uniqueTogether([propertyKey])(instance, instanceData, options);
81
+ };
82
+ return _unique;
83
+ };
84
+ exports.unique = unique;
85
+ /**
86
+ * Creates a base orm context.
87
+ * @param noOrmValidation - Determines if the validation process should ignore any ORM related validation. (If you don't want to do a database query for a specific validation).
88
+ */
89
+ const buildOrmValidatorContext = ({ noOrmValidation = false, }) => ({
90
+ noOrmValidation,
91
+ });
92
+ exports.buildOrmValidatorContext = buildOrmValidatorContext;
93
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/orm/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functional-models",
3
- "version": "3.0.6",
3
+ "version": "3.0.8",
4
4
  "description": "Functional models is ooey gooey framework for building and using awesome models EVERYWHERE.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -14,6 +14,7 @@
14
14
  "coverage": "nyc --all --reporter=lcov npm test",
15
15
  "build": "rm -Rf ./dist && tsc && cp package.json ./dist && cp README.md ./dist",
16
16
  "build:watch": "nodemon -e '*' --watch ./src --exec npm run build",
17
+ "build:docs": "npx typedoc --out ./buildDocs ./src/index.ts",
17
18
  "prettier": "prettier --write .",
18
19
  "eslint": "eslint . --fix",
19
20
  "dist": "npm run build && cd dist && npm publish"
package/types.d.ts CHANGED
@@ -681,4 +681,16 @@ declare enum PrimitiveValueType {
681
681
  * Dates can either be a Date or a string
682
682
  */
683
683
  type DateValueType = Date | string;
684
- export { PrimitiveValueType, PropertyType, MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, JsonAble, ToObjectFunction, ToObjectResult, ModelInstance, ModelType, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidator, ModelValidatorComponent, PropertyInstance, PropertyConfig, DataValue, ValueGetter, ModelReferenceType, ModelDefinition, ModelFactoryOptions, ModelReferencePropertyInstance, PropertyGetters, PropertyValidators, PropertyValidatorComponentTypeAdvanced, DataDescription, ModelReferenceFunctions, ModelErrors, PrimaryKeyType, ModelFactory, ModelInstanceFetcher, CreateParams, ValidatorContext, ValuePropertyValidatorComponent, ValidationErrors, ComponentValidationErrorResponse, JsonifiedData, JsonObj, CalculateDenormalization, PropertiesList, MinimalModelDefinition, ChoiceTypes, PropertyConfigOptions, CommonValidators, DateValueType, ApiInfo, RestInfo, ApiMethod, RemovePromises, FlattenModelReferences, ApiInfoPartialRest, RestInfoMinimum, };
684
+ /**
685
+ * A useful type for setting the props object of a Model constructor.
686
+ */
687
+ type ModelConstructorProps = Readonly<{
688
+ Model: ModelFactory;
689
+ }>;
690
+ /**
691
+ * A useful type for setting the props object of a Model constructor that has model references that need a fetcher
692
+ */
693
+ type ModelWithReferencesConstructorProps = ModelConstructorProps & Readonly<{
694
+ fetcher: ModelInstanceFetcher;
695
+ }>;
696
+ export { PrimitiveValueType, PropertyType, MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, JsonAble, ToObjectFunction, ToObjectResult, ModelInstance, ModelType, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidator, ModelValidatorComponent, PropertyInstance, PropertyConfig, DataValue, ValueGetter, ModelReferenceType, ModelDefinition, ModelFactoryOptions, ModelReferencePropertyInstance, PropertyGetters, PropertyValidators, PropertyValidatorComponentTypeAdvanced, DataDescription, ModelReferenceFunctions, ModelErrors, PrimaryKeyType, ModelFactory, ModelInstanceFetcher, CreateParams, ValidatorContext, ValuePropertyValidatorComponent, ValidationErrors, ComponentValidationErrorResponse, JsonifiedData, JsonObj, CalculateDenormalization, PropertiesList, MinimalModelDefinition, ChoiceTypes, PropertyConfigOptions, CommonValidators, DateValueType, ApiInfo, RestInfo, ApiMethod, RemovePromises, FlattenModelReferences, ApiInfoPartialRest, RestInfoMinimum, ModelConstructorProps, ModelWithReferencesConstructorProps, };
package/utils.d.ts CHANGED
@@ -7,4 +7,5 @@ declare const createHeadAndTail: (values: readonly string[], joiner: string) =>
7
7
  declare const flowFindFirst: <T, TResult>(funcs: ((t: T) => undefined | TResult)[]) => (input: T) => string | TResult;
8
8
  declare const memoizeSync: <T, A extends Array<any>>(method: (...args: A) => T) => (...args: A) => T;
9
9
  declare const memoizeAsync: <T, A extends Array<any>>(method: (...args: A) => T) => (...args: A) => Promise<T>;
10
- export { loweredTitleCase, toTitleCase, createUuid, isPromise, createHeadAndTail, singularize, flowFindFirst, memoizeSync, memoizeAsync, };
10
+ declare const threeitize: <T>(data: T[]) => T[][];
11
+ export { loweredTitleCase, toTitleCase, createUuid, isPromise, createHeadAndTail, singularize, flowFindFirst, memoizeSync, memoizeAsync, threeitize, };
package/utils.js CHANGED
@@ -12,13 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.memoizeAsync = exports.memoizeSync = exports.flowFindFirst = exports.singularize = exports.createHeadAndTail = exports.isPromise = exports.createUuid = exports.toTitleCase = exports.loweredTitleCase = void 0;
15
+ exports.threeitize = exports.memoizeAsync = exports.memoizeSync = exports.flowFindFirst = exports.singularize = exports.createHeadAndTail = exports.isPromise = exports.createUuid = exports.toTitleCase = exports.loweredTitleCase = void 0;
16
16
  // @ts-ignore
17
17
  const get_random_values_1 = __importDefault(require("get-random-values"));
18
18
  const async_lock_1 = __importDefault(require("async-lock"));
19
19
  const HEX = 16;
20
20
  const FOUR = 4;
21
21
  const FIFTEEN = 15;
22
+ const THREE = 3;
22
23
  const getRandomValues = () => {
23
24
  const array = new Uint8Array(1);
24
25
  if (typeof window !== 'undefined') {
@@ -120,4 +121,17 @@ const memoizeAsync = (method) => {
120
121
  /* eslint-enable functional/no-let */
121
122
  };
122
123
  exports.memoizeAsync = memoizeAsync;
124
+ const threeitize = (data) => {
125
+ if (data.length === 0 || data.length === 1) {
126
+ return [];
127
+ }
128
+ if (data.length % 2 === 0) {
129
+ throw new Error('Must be an odd number of 3 or greater.');
130
+ }
131
+ const three = data.slice(0, THREE);
132
+ const rest = data.slice(2);
133
+ const moreThrees = threeitize(rest);
134
+ return [three, ...moreThrees];
135
+ };
136
+ exports.threeitize = threeitize;
123
137
  //# sourceMappingURL=utils.js.map
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}