inferred-types 0.54.6 → 0.54.7

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.
@@ -14,6 +14,115 @@ function handleDoneFn(val, call_bare_fn = false) {
14
14
  return isObject(val) || isFunction(val) ? isDoneFn(val) ? val.done() : isFunction(val) ? call_bare_fn ? val() : val : val : isFunction(val) ? call_bare_fn ? val() : val : val;
15
15
  }
16
16
 
17
+ // src/initializers/addFnToProps.ts
18
+ function addPropsToFn(fn2, clone_fn) {
19
+ const localFn = clone_fn ? (...args) => fn2(args) : fn2;
20
+ return (obj) => {
21
+ for (const k in obj) {
22
+ localFn[k] = obj[k];
23
+ }
24
+ return localFn;
25
+ };
26
+ }
27
+
28
+ // src/initializers/addPropsToFn.ts
29
+ function addFnToProps(props, _clone_fn) {
30
+ return (fn2) => {
31
+ const localFn = (...args) => fn2(args);
32
+ for (const k in props) {
33
+ localFn[k] = props[k];
34
+ }
35
+ return localFn;
36
+ };
37
+ }
38
+
39
+ // src/initializers/createCssSelector.ts
40
+ function createCssSelector(_opt) {
41
+ return (...selectors) => {
42
+ return selectors.join(" ");
43
+ };
44
+ }
45
+
46
+ // src/initializers/createFnWithProps.ts
47
+ function createFnWithProps(fn2, props, narrowing = false) {
48
+ const fnWithProps = fn2;
49
+ for (const prop of Object.keys(props)) {
50
+ fnWithProps[prop] = props[prop];
51
+ }
52
+ return isTrue(narrowing) ? fnWithProps : fnWithProps;
53
+ }
54
+ function createFnWithPropsExplicit(fn2, props) {
55
+ const fnWithProps = fn2;
56
+ for (const prop of Object.keys(props)) {
57
+ fnWithProps[prop] = props[prop];
58
+ }
59
+ return fnWithProps;
60
+ }
61
+
62
+ // src/initializers/defineObj.ts
63
+ function defineObj(literal2 = {}) {
64
+ return (wide2 = {}) => {
65
+ const obj = literal2 ? { ...literal2, ...wide2 } : wide2;
66
+ return obj;
67
+ };
68
+ }
69
+
70
+ // src/initializers/defineTuple.ts
71
+ function defineTuple(...values) {
72
+ return values.map(
73
+ (i) => isFunction(i) ? handleDoneFn(i(ShapeApiImplementation)) : i
74
+ );
75
+ }
76
+
77
+ // src/api/objectToApi.ts
78
+ function objectToApi(obj, def = null) {
79
+ const transformed = Object.keys(obj).reduce(
80
+ (acc, key) => {
81
+ const val = obj[key];
82
+ return {
83
+ ...acc,
84
+ [key]: () => val
85
+ };
86
+ },
87
+ {}
88
+ );
89
+ const api2 = {
90
+ __kind: "ObjectApi",
91
+ done: () => def,
92
+ ...transformed
93
+ };
94
+ return api2;
95
+ }
96
+ function mapper() {
97
+ return (map2) => {
98
+ return (input) => {
99
+ const api2 = objectToApi(input);
100
+ const rtn = map2(api2);
101
+ return handleDoneFn(rtn);
102
+ };
103
+ };
104
+ }
105
+ function objectApi() {
106
+ return {
107
+ mapTo: (_defn) => ({
108
+ mapper: mapper()
109
+ }),
110
+ mapToWithType: () => mapper()
111
+ };
112
+ }
113
+ function defineObjectApi__Fn(_inputDefn) {
114
+ return objectApi();
115
+ }
116
+ var defineObjectApi__Prop = {
117
+ withType: () => {
118
+ return objectApi();
119
+ }
120
+ };
121
+ var defineObjectApi = createFnWithProps(
122
+ defineObjectApi__Fn,
123
+ defineObjectApi__Prop
124
+ );
125
+
17
126
  // src/boolean-logic/ifArray.ts
18
127
  function ifArray(val, isAnArray, isNotAnArray) {
19
128
  return Array.isArray(val) ? isAnArray(val) : isNotAnArray(val);
@@ -2061,6 +2170,33 @@ function keysOf(container) {
2061
2170
  return keys;
2062
2171
  }
2063
2172
 
2173
+ // src/dictionary/narrowObjectTo.ts
2174
+ function callback() {
2175
+ return (cb) => {
2176
+ return (input) => cb(input);
2177
+ };
2178
+ }
2179
+ function narrowFn() {
2180
+ const fn2 = (obj) => obj;
2181
+ return fn2;
2182
+ }
2183
+ function narrowObjectTo(_defn) {
2184
+ return createFnWithPropsExplicit(
2185
+ narrowFn(),
2186
+ {
2187
+ asCallback: callback()
2188
+ }
2189
+ );
2190
+ }
2191
+ function narrowObjectToType() {
2192
+ return createFnWithPropsExplicit(
2193
+ narrowFn(),
2194
+ {
2195
+ asCallback: callback()
2196
+ }
2197
+ );
2198
+ }
2199
+
2064
2200
  // src/dictionary/omit.ts
2065
2201
  function omit(obj, ...removeKeys) {
2066
2202
  const keys = Object.keys(obj);
@@ -2173,90 +2309,30 @@ function fnMeta(func) {
2173
2309
  // src/functions/wrapFn.ts
2174
2310
  var wrapFn = "NOT IMPLEMENTED";
2175
2311
 
2176
- // src/initializers/addFnToProps.ts
2177
- function addPropsToFn(fn2, clone_fn) {
2178
- const localFn = clone_fn ? (...args) => fn2(args) : fn2;
2179
- return (obj) => {
2180
- for (const k in obj) {
2181
- localFn[k] = obj[k];
2182
- }
2183
- return localFn;
2184
- };
2185
- }
2186
-
2187
- // src/initializers/addPropsToFn.ts
2188
- function addFnToProps(props, _clone_fn) {
2189
- return (fn2) => {
2190
- const localFn = (...args) => fn2(args);
2191
- for (const k in props) {
2192
- localFn[k] = props[k];
2193
- }
2194
- return localFn;
2195
- };
2196
- }
2197
-
2198
- // src/initializers/createCssSelector.ts
2199
- function createCssSelector(_opt) {
2200
- return (...selectors) => {
2201
- return selectors.join(" ");
2202
- };
2203
- }
2204
-
2205
- // src/initializers/createFnWithProps.ts
2206
- function createFnWithProps(fn2, props, narrowing = false) {
2207
- const fnWithProps = fn2;
2208
- for (const prop of Object.keys(props)) {
2209
- fnWithProps[prop] = props[prop];
2210
- }
2211
- return isTrue(narrowing) ? fnWithProps : fnWithProps;
2212
- }
2213
- function createFnWithPropsExplicit(fn2, props) {
2214
- const fnWithProps = fn2;
2215
- for (const prop of Object.keys(props)) {
2216
- fnWithProps[prop] = props[prop];
2217
- }
2218
- return fnWithProps;
2219
- }
2220
-
2221
- // src/initializers/defineObj.ts
2222
- function defineObj(literal2 = {}) {
2223
- return (wide2 = {}) => {
2224
- const obj = literal2 ? { ...literal2, ...wide2 } : wide2;
2225
- return obj;
2226
- };
2227
- }
2228
-
2229
- // src/initializers/defineTuple.ts
2230
- function defineTuple(...values) {
2231
- return values.map(
2232
- (i) => isFunction(i) ? handleDoneFn(i(ShapeApiImplementation)) : i
2233
- );
2234
- }
2235
-
2236
2312
  // src/lists/asArray.ts
2237
2313
  function asArray(thing) {
2238
2314
  return Array.isArray(thing) === true ? thing : typeof thing === "undefined" ? [] : [thing];
2239
2315
  }
2240
2316
 
2241
2317
  // src/lists/createConverter.ts
2242
- function createConverter(mapper) {
2318
+ function createConverter(mapper2) {
2243
2319
  return (input) => {
2244
2320
  let result2;
2245
2321
  if (isNothing(input)) {
2246
- result2 = mapper.nothing ? mapper.nothing(input) : Never;
2322
+ result2 = mapper2.nothing ? mapper2.nothing(input) : Never;
2247
2323
  } else if (isObject(input)) {
2248
- result2 = mapper.object ? mapper.object(input) : Never;
2324
+ result2 = mapper2.object ? mapper2.object(input) : Never;
2249
2325
  } else {
2250
2326
  switch (typeof input) {
2251
2327
  case "string":
2252
- result2 = mapper.string ? mapper.string(input) : Never;
2328
+ result2 = mapper2.string ? mapper2.string(input) : Never;
2253
2329
  break;
2254
2330
  case "number":
2255
2331
  case "bigint":
2256
- result2 = mapper.number ? mapper.number(input) : Never;
2332
+ result2 = mapper2.number ? mapper2.number(input) : Never;
2257
2333
  break;
2258
2334
  case "boolean":
2259
- result2 = mapper.boolean ? mapper.boolean(input) : Never;
2335
+ result2 = mapper2.boolean ? mapper2.boolean(input) : Never;
2260
2336
  break;
2261
2337
  default:
2262
2338
  throw new Error(`Unhandled type: ${typeof input}`);
@@ -2885,6 +2961,39 @@ function lookupCountryCode(token) {
2885
2961
  return isNumberLike(token) ? lookupNumericCode(token, "countryCode") : isIso3166Alpha2(uc) ? lookupAlpha2Code(uc, "countryCode") : isIso3166Alpha3(uc) ? lookupAlpha3Code(uc, "countryCode") : isIso3166CountryName(token) ? lookupName(token, "countryCode") : void 0;
2886
2962
  }
2887
2963
 
2964
+ // src/type-conversion/map/createMapper.ts
2965
+ function asMapper(fn2) {
2966
+ const props = {
2967
+ kind: "Mapper",
2968
+ map: (from) => {
2969
+ return from.map(fn2);
2970
+ }
2971
+ };
2972
+ return createFnWithPropsExplicit(fn2, props);
2973
+ }
2974
+ function createObjectMap() {
2975
+ return (map2) => {
2976
+ const fn2 = (input) => {
2977
+ return Object.keys(map2).reduce(
2978
+ (acc, key) => {
2979
+ const val = map2[key];
2980
+ return {
2981
+ ...acc,
2982
+ [key]: isFunction(val) ? val(input) : val
2983
+ };
2984
+ },
2985
+ {}
2986
+ );
2987
+ };
2988
+ return fn2;
2989
+ };
2990
+ }
2991
+ function createMapper() {
2992
+ return (fn2) => {
2993
+ return asMapper(fn2);
2994
+ };
2995
+ }
2996
+
2888
2997
  // src/type-conversion/mergeObjects.ts
2889
2998
  function mergeObjects(defVal, override) {
2890
2999
  const intersectingKeys = sharedKeys(defVal, override);
@@ -4869,12 +4978,15 @@ export {
4869
4978
  createFnWithProps,
4870
4979
  createFnWithPropsExplicit,
4871
4980
  createLifoQueue,
4981
+ createMapper,
4982
+ createObjectMap,
4872
4983
  createTypeToken,
4873
4984
  cssColor,
4874
4985
  csv,
4875
4986
  defineCss,
4876
4987
  defineObj,
4877
4988
  defineObject,
4989
+ defineObjectApi,
4878
4990
  defineTuple,
4879
4991
  endsWith,
4880
4992
  ensureLeading,
@@ -5193,7 +5305,10 @@ export {
5193
5305
  mergeTuples,
5194
5306
  nameLiteral,
5195
5307
  narrow,
5308
+ narrowObjectTo,
5309
+ narrowObjectToType,
5196
5310
  never,
5311
+ objectToApi,
5197
5312
  omit,
5198
5313
  optional,
5199
5314
  optionalOrNull,