@jonloucks/contracts-ts 1.0.0 → 1.0.1

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.
@@ -1,6 +1,6 @@
1
1
  import { Contract } from "@jonloucks/contracts-ts/api/Contract";
2
2
  import { Promisor, PromisorType } from "@jonloucks/contracts-ts/api/Promisor";
3
- import { OptionalType, RequiredType, Transform } from "@jonloucks/contracts-ts/api/Types";
3
+ import { OptionalType, RequiredType, TransformType } from "@jonloucks/contracts-ts/api/Types";
4
4
  /**
5
5
  * Helper methods for creating and chaining Promisors used for {@link Contractss#bind(Contract, Promisor)}
6
6
  */
@@ -42,7 +42,7 @@ export interface PromisorFactory {
42
42
  * @param <T> the type of deliverable
43
43
  * @param <R> the new Promisor deliverable type
44
44
  */
45
- createExtractor<T, R>(promisor: PromisorType<T>, extractor: Transform<T, R>): RequiredType<Promisor<R>>;
45
+ createExtractor<T, R>(promisor: PromisorType<T>, extractor: TransformType<T, R>): RequiredType<Promisor<R>>;
46
46
  }
47
47
  /**
48
48
  * Type guard for PromisorFactory
@@ -1 +1 @@
1
- {"version":3,"file":"PromisorFactory.d.ts","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAkB,MAAM,mCAAmC,CAAC;AAE1G;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE;;;;;;;;OAQG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CACzG;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAC,CAElF;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAI7C,CAAC"}
1
+ {"version":3,"file":"PromisorFactory.d.ts","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAkB,MAAM,mCAAmC,CAAC;AAE9G;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE;;;;;;;;OAQG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;;;OAOG;IACH,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7G;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,YAAY,CAAC,eAAe,CAAC,CAElF;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAI7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PromisorFactory.js","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":";;;AA2DA,sBAEC;AA3DD,mFAAwF;AACxF,6DAA0G;AAkD1G;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACrC,OAAO,IAAA,sBAAc,EAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC1G,CAAC;AAED;;GAEG;AACU,QAAA,QAAQ,GAA8B,IAAA,yBAAc,EAAC;IAChE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,iBAAiB;CAC5B,CAAC,CAAC"}
1
+ {"version":3,"file":"PromisorFactory.js","sourceRoot":"","sources":["../../src/api/PromisorFactory.ts"],"names":[],"mappings":";;;AA2DA,sBAEC;AA3DD,mFAAwF;AACxF,6DAA8G;AAkD9G;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAiB;IACrC,OAAO,IAAA,sBAAc,EAAC,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAC1G,CAAC;AAED;;GAEG;AACU,QAAA,QAAQ,GAA8B,IAAA,yBAAc,EAAC;IAChE,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,iBAAiB;CAC5B,CAAC,CAAC"}
package/api/Types.d.ts CHANGED
@@ -17,8 +17,16 @@ export type UnknownFunction = (...args: unknown[]) => unknown;
17
17
  * A transformation from type I to type O
18
18
  */
19
19
  export interface Transform<I, O> {
20
- transform(I: OptionalType<I>): OptionalType<O>;
20
+ transform(input: I): O;
21
21
  }
22
+ /**
23
+ * A function that transforms type I to type O
24
+ */
25
+ export type TransformFunction<I, O> = (input: I) => O;
26
+ /**
27
+ * A transformation type that can be a Transform or a function from type I to type O
28
+ */
29
+ export type TransformType<I, O> = Transform<I, O> | TransformFunction<I, O>;
22
30
  /**
23
31
  * Check iif given value is not null or undefined
24
32
  *
@@ -39,6 +47,14 @@ export declare function isNotPresent(value: unknown): value is null | undefined;
39
47
  * @returns true if value is a function and is not null or undefined
40
48
  */
41
49
  export declare function isFunction<T extends UnknownFunction>(value: unknown): value is RequiredType<T>;
50
+ /**
51
+ * Check if given value is a function with the given arity
52
+ *
53
+ * @param value the value to check
54
+ * @param arity the arity to check
55
+ * @returns true if value is a function with the given arity
56
+ */
57
+ export declare function isFunctionWithArity<T extends UnknownFunction>(value: unknown, arity: number): value is RequiredType<T>;
42
58
  /**
43
59
  * Check if given value is an object and is not null or undefined
44
60
  * @param value the value to check
@@ -91,4 +107,11 @@ export declare function isConstructor<T>(value: unknown): value is RequiredType<
91
107
  * @returns true if property is defined
92
108
  */
93
109
  export declare function guardFunctions(value: unknown, ...propertyNames: (string | symbol)[]): value is RequiredType<UnknownFunction>;
110
+ /**
111
+ * Convert a TransformType to a Transform
112
+ *
113
+ * @param transform the TransformType to convert
114
+ * @returns the Transform
115
+ */
116
+ export declare function typeToTransform<I, O>(transform: TransformType<I, O>): RequiredType<Transform<I, O>>;
94
117
  //# sourceMappingURL=Types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/api/Types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAE9F;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,CAExE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,YAAY,CAAC,eAAe,CAAC,CAW5H"}
1
+ {"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/api/Types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,EAAE,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5E;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAE9F;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAEtH;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,OAAO,CAAC,CAExE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAErF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,YAAY,CAAC,eAAe,CAAC,CAW5H;AAUD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CASnG"}
package/api/Types.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isPresent = isPresent;
7
7
  exports.isNotPresent = isNotPresent;
8
8
  exports.isFunction = isFunction;
9
+ exports.isFunctionWithArity = isFunctionWithArity;
9
10
  exports.isObject = isObject;
10
11
  exports.isString = isString;
11
12
  exports.isNumber = isNumber;
@@ -14,6 +15,9 @@ exports.isBoolean = isBoolean;
14
15
  exports.isBigInt = isBigInt;
15
16
  exports.isConstructor = isConstructor;
16
17
  exports.guardFunctions = guardFunctions;
18
+ exports.typeToTransform = typeToTransform;
19
+ const Checks_1 = require("@jonloucks/contracts-ts/auxiliary/Checks");
20
+ const IllegalArgumentException_1 = require("@jonloucks/contracts-ts/auxiliary/IllegalArgumentException");
17
21
  /**
18
22
  * Check iif given value is not null or undefined
19
23
  *
@@ -40,6 +44,16 @@ function isNotPresent(value) {
40
44
  function isFunction(value) {
41
45
  return isPresent(value) && typeof value === "function";
42
46
  }
47
+ /**
48
+ * Check if given value is a function with the given arity
49
+ *
50
+ * @param value the value to check
51
+ * @param arity the arity to check
52
+ * @returns true if value is a function with the given arity
53
+ */
54
+ function isFunctionWithArity(value, arity) {
55
+ return isFunction(value) && value.length === arity;
56
+ }
43
57
  /**
44
58
  * Check if given value is an object and is not null or undefined
45
59
  * @param value the value to check
@@ -117,4 +131,28 @@ function guardFunctions(value, ...propertyNames) {
117
131
  }
118
132
  return true;
119
133
  }
134
+ function guardTransform(transform) {
135
+ return guardFunctions(transform, 'transform');
136
+ }
137
+ function guardTransformFunction(transform) {
138
+ return isFunctionWithArity(transform, 1);
139
+ }
140
+ /**
141
+ * Convert a TransformType to a Transform
142
+ *
143
+ * @param transform the TransformType to convert
144
+ * @returns the Transform
145
+ */
146
+ function typeToTransform(transform) {
147
+ const validTransformType = (0, Checks_1.presentCheck)(transform, "TransformType must be present.");
148
+ if (guardTransform(validTransformType)) {
149
+ return validTransformType;
150
+ }
151
+ else if (guardTransformFunction(validTransformType)) {
152
+ return { transform: validTransformType };
153
+ }
154
+ else {
155
+ throw new IllegalArgumentException_1.IllegalArgumentException("TransformType must be a Transform or a function taking one argument.");
156
+ }
157
+ }
120
158
  //# sourceMappingURL=Types.js.map
package/api/Types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/api/Types.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA8BH,8BAEC;AAQD,oCAEC;AAOD,gCAEC;AAOD,4BAEC;AAQD,4BAEC;AAOD,4BAEC;AAOD,4BAEC;AAOD,8BAEC;AAOD,4BAEC;AAOD,sCAEC;AAUD,wCAWC;AAhHD;;;;;GAKG;AACH,SAAgB,SAAS,CAAI,KAAc;IACzC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAA4B,KAAc;IAClE,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAI,KAAc;IAC7C,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,WAAW,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,CAAA;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,KAAc,EAAE,GAAG,aAAkC;IAClF,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAyC,CAAC;IACzD,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/api/Types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractorPromisor.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAAgB,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAE1F;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAEzG"}
1
+ {"version":3,"file":"ExtractorPromisor.impl.d.ts","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAChE,OAAO,EAA8B,YAAY,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAExG;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAEzG"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create = create;
4
4
  const Checks_1 = require("@jonloucks/contracts-ts/auxiliary/Checks");
5
+ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
5
6
  /**
6
7
  * Factory method to create an ExtractPromisorImpl which is extraction promisor
7
8
  *
@@ -25,7 +26,13 @@ class ExtractorPromisorImpl {
25
26
  * Promisor.demand override.
26
27
  */
27
28
  demand() {
28
- return this.transform.transform(this.referent.demand());
29
+ const referentValue = this.referent.demand();
30
+ if ((0, Types_1.isNotPresent)(referentValue)) {
31
+ return referentValue;
32
+ }
33
+ else {
34
+ return this.transform.transform(referentValue);
35
+ }
29
36
  }
30
37
  /**
31
38
  * Promisor.incrementUsage override.
@@ -1 +1 @@
1
- {"version":3,"file":"ExtractorPromisor.impl.js","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":";;AAaA,wBAEC;AAfD,qEAAuF;AAIvF;;;;;;;;GAQG;AACH,SAAgB,MAAM,CAAO,QAAqB,EAAE,SAA0B;IAC5E,OAAO,qBAAqB,CAAC,cAAc,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,yCAAyC;AAEzC;;;;GAIG;AACH,MAAM,qBAAqB;IAEzB;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,cAAc,CAAO,QAAqB,EAAE,SAA0B;QAC3E,OAAO,IAAI,qBAAqB,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,YAAoB,QAAqB,EAAE,SAA0B;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAA,qBAAY,EAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;IACzE,CAAC;CAIF"}
1
+ {"version":3,"file":"ExtractorPromisor.impl.js","sourceRoot":"","sources":["../../src/impl/ExtractorPromisor.impl.ts"],"names":[],"mappings":";;AAaA,wBAEC;AAfD,qEAAuF;AAEvF,6DAAwG;AAExG;;;;;;;;GAQG;AACH,SAAgB,MAAM,CAAO,QAAqB,EAAE,SAA0B;IAC5E,OAAO,qBAAqB,CAAC,cAAc,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC;AAED,yCAAyC;AAEzC;;;;GAIG;AACH,MAAM,qBAAqB;IAEzB;;OAEG;IACH,MAAM;QACJ,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,IAAA,oBAAY,EAAC,aAAa,CAAC,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,cAAc,CAAO,QAAqB,EAAE,SAA0B;QAC3E,OAAO,IAAI,qBAAqB,CAAO,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,YAAoB,QAAqB,EAAE,SAA0B;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAA,qBAAY,EAAC,SAAS,EAAE,4BAA4B,CAAC,CAAC;IACzE,CAAC;CAIF"}
@@ -1 +1 @@
1
- {"version":3,"file":"PromisorFactory.impl.d.ts","sourceRoot":"","sources":["../../src/impl/PromisorFactory.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAgB,YAAY,EAAa,MAAM,mCAAmC,CAAC;AAM1F;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,CAEtD"}
1
+ {"version":3,"file":"PromisorFactory.impl.d.ts","sourceRoot":"","sources":["../../src/impl/PromisorFactory.impl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAgB,YAAY,EAAkC,MAAM,mCAAmC,CAAC;AAM/G;;;;GAIG;AACH,wBAAgB,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC,CAEtD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.create = create;
4
4
  const Promisor_1 = require("@jonloucks/contracts-ts/api/Promisor");
5
+ const Types_1 = require("@jonloucks/contracts-ts/api/Types");
5
6
  const ExtractorPromisor_impl_1 = require("./ExtractorPromisor.impl");
6
7
  const LifeCyclePromisor_impl_1 = require("./LifeCyclePromisor.impl");
7
8
  const SingletonPromisor_impl_1 = require("./SingletonPromisor.impl");
@@ -41,7 +42,7 @@ class PromisorsImpl {
41
42
  * PromisorFactory.createExtractor override.
42
43
  */
43
44
  createExtractor(promisor, extractor) {
44
- return (0, ExtractorPromisor_impl_1.create)((0, Promisor_1.typeToPromisor)(promisor), extractor);
45
+ return (0, ExtractorPromisor_impl_1.create)((0, Promisor_1.typeToPromisor)(promisor), (0, Types_1.typeToTransform)(extractor));
45
46
  }
46
47
  static internalCreate() {
47
48
  return new PromisorsImpl();
@@ -1 +1 @@
1
- {"version":3,"file":"PromisorFactory.impl.js","sourceRoot":"","sources":["../../src/impl/PromisorFactory.impl.ts"],"names":[],"mappings":";;AAaA,wBAEC;AAfD,mEAA8F;AAG9F,qEAAqE;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,6DAA6D;AAE7D;;;;GAIG;AACH,SAAgB,MAAM;IACpB,OAAO,aAAa,CAAC,cAAc,EAAE,CAAC;AACxC,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,aAAa;IAEjB;;OAEG;IACH,WAAW,CAAI,WAA4B;QACzC,OAAO,IAAA,2BAAW,EAAI,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,eAAe,CAAI,QAAyB;QAC1C,OAAO,IAAA,+BAAe,EAAI,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,eAAe,CAAI,QAAyB;QAC1C,OAAO,IAAA,+BAAe,EAAC,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,eAAe,CAAO,QAAyB,EAAE,SAA0B;QACzE,OAAO,IAAA,+BAAe,EAAO,IAAA,yBAAc,EAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED;IACA,CAAC;CACF"}
1
+ {"version":3,"file":"PromisorFactory.impl.js","sourceRoot":"","sources":["../../src/impl/PromisorFactory.impl.ts"],"names":[],"mappings":";;AAaA,wBAEC;AAfD,mEAA8F;AAE9F,6DAA+G;AAC/G,qEAAqE;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,6DAA6D;AAE7D;;;;GAIG;AACH,SAAgB,MAAM;IACpB,OAAO,aAAa,CAAC,cAAc,EAAE,CAAC;AACxC,CAAC;AAED,yCAAyC;AAEzC;;GAEG;AACH,MAAM,aAAa;IAEjB;;OAEG;IACH,WAAW,CAAI,WAA4B;QACzC,OAAO,IAAA,2BAAW,EAAI,WAAW,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,eAAe,CAAI,QAAyB;QAC1C,OAAO,IAAA,+BAAe,EAAI,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,eAAe,CAAI,QAAyB;QAC1C,OAAO,IAAA,+BAAe,EAAC,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,eAAe,CAAO,QAAyB,EAAE,SAA8B;QAC7E,OAAO,IAAA,+BAAe,EAAO,IAAA,yBAAc,EAAC,QAAQ,CAAC,EAAE,IAAA,uBAAe,EAAC,SAAS,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED;IACA,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jonloucks/contracts-ts",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Typescript Dependency Contracts for dependency inversion",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -46,6 +46,8 @@
46
46
  "badges": "npx tsx ./src/never-publish/generate-badges.ts",
47
47
  "clean": "rm -rf dist",
48
48
  "compile": "tsc",
49
+ "postversion": "npm run applyversion",
50
+ "applyversion": "npx tsx ./src/never-publish/apply-version.ts",
49
51
  "pack-package": "npm run before:publish && cd dist && npm pack && npm run after:publish"
50
52
  },
51
53
  "keywords": [
package/version.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ export declare const NAME: string;
1
2
  export declare const VERSION: string;
2
3
  //# sourceMappingURL=version.d.ts.map
package/version.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,EAAE,MAalB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,EAAE,MAAkC,CAAC;AACtD,eAAO,MAAM,OAAO,EAAE,MAAgB,CAAC"}
package/version.js CHANGED
@@ -1,23 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VERSION = void 0;
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
6
- const DEVELOPMENT_PATH = (0, path_1.join)(__dirname, "..", "package.json");
7
- const PRODUCTION_PATH = (0, path_1.resolve)(__dirname, 'package.json');
8
- exports.VERSION = (() => {
9
- for (const path of [PRODUCTION_PATH, DEVELOPMENT_PATH]) {
10
- try {
11
- const parsedJson = JSON.parse((0, fs_1.readFileSync)(path, 'utf8'));
12
- const { version } = parsedJson;
13
- if (version !== undefined && version !== null) {
14
- return version;
15
- }
16
- }
17
- catch (_error) {
18
- // continue to next path
19
- }
20
- }
21
- return "unknown";
22
- })();
3
+ exports.VERSION = exports.NAME = void 0;
4
+ // generated file - do not edit
5
+ exports.NAME = "@jonloucks/contracts-ts";
6
+ exports.VERSION = "1.0.1";
23
7
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAClC,+BAAqC;AAErC,MAAM,gBAAgB,GAAW,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AACvE,MAAM,eAAe,GAAW,IAAA,cAAO,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAEtD,QAAA,OAAO,GAAW,CAAC,GAAW,EAAE;IAC3C,KAAK,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,UAAU,GAAY,IAAI,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACnE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAkC,CAAC;YACvD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9C,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,wBAAwB;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAClB,QAAA,IAAI,GAAW,yBAAyB,CAAC;AACzC,QAAA,OAAO,GAAW,OAAO,CAAC"}