@jonloucks/variants-ts 1.0.0 → 1.1.0

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.
@@ -21,6 +21,7 @@ import { SourceFactory } from "@jonloucks/variants-ts/api/SourceFactory";
21
21
  import { ValueType } from "@jonloucks/variants-ts/api/Types";
22
22
  import { Variant, Config as VariantConfig } from "@jonloucks/variants-ts/api/Variant";
23
23
  import { VariantFactory } from "@jonloucks/variants-ts/api/VariantFactory";
24
+ import { Transform } from "@jonloucks/contracts-ts/auxiliary/Transform";
24
25
  /**
25
26
  * Creates a variant based on the provided configuration.
26
27
  *
@@ -72,5 +73,84 @@ declare function createRecordSource(record: Record<string, ValueType>): Required
72
73
  * @returns a Source instance that retrieves values from the process environment variables
73
74
  */
74
75
  declare function createProcessSource(): RequiredType<Source>;
75
- export { CONTRACTS, createEnvironment, createKeySource, createLookupSource, createMapSource, createProcessSource, createRecordSource, createVariant, VERSION, type Environment, type EnvironmentConfig, type EnvironmentFactory, type OptionalType, type RequiredType, type Source, type SourceFactory, type SupplierType, type ValueType, type Variant, type VariantConfig, type VariantFactory };
76
+ /**
77
+ * @returns a parser that converts a valid text into a String
78
+ */
79
+ declare function stringParser(): Transform<ValueType, string>;
80
+ /**
81
+ * No trimming or skipping empty values
82
+ * @returns a text conversion to a String instance
83
+ */
84
+ declare function ofRawString(): Transform<OptionalType<ValueType>, OptionalType<string>>;
85
+ /**
86
+ * Input is trimmed and empty values are skipped
87
+ *
88
+ * @returns a text conversion to a String instance
89
+ */
90
+ declare function ofString(): Transform<OptionalType<ValueType>, OptionalType<string>>;
91
+ /**
92
+ * @returns a parser that converts a valid text value into a Boolean instance
93
+ */
94
+ declare function booleanParser(): Transform<RequiredType<ValueType>, RequiredType<boolean>>;
95
+ /**
96
+ * Input is trimmed and empty values are skipped
97
+ *
98
+ * @returns a text conversion to a Boolean instance
99
+ */
100
+ declare function ofBoolean(): Transform<OptionalType<ValueType>, OptionalType<boolean>>;
101
+ /**
102
+ * @returns a parser that converts a valid text value into a Float instance
103
+ */
104
+ declare function numberParser(): Transform<RequiredType<ValueType>, RequiredType<number>>;
105
+ /**
106
+ * Input is trimmed and empty values are skipped
107
+ *
108
+ * @returns a text conversion to a Float instance
109
+ */
110
+ declare function ofNumber(): Transform<OptionalType<ValueType>, OptionalType<number>>;
111
+ /**
112
+ * @returns a parser that converts a valid text value into a BigInt instance
113
+ */
114
+ declare function bigIntParser(): Transform<RequiredType<ValueType>, RequiredType<bigint>>;
115
+ /**
116
+ * Input is trimmed and empty values are skipped
117
+ *
118
+ * @returns a text conversion to a BigInt instance
119
+ */
120
+ declare function ofBigInt(): Transform<OptionalType<ValueType>, OptionalType<bigint>>;
121
+ /**
122
+ * trim leading and trailing white space
123
+ *
124
+ * @param text the text to trim
125
+ * @returns the trimmed text
126
+ */
127
+ declare function trim(text: RequiredType<ValueType>): RequiredType<ValueType>;
128
+ /**
129
+ * A parser that converts text to a String
130
+ *
131
+ * @param parser the parser that accepts the String
132
+ * @returns the new parser
133
+ * @param <T> the return type of the given parser
134
+ */
135
+ declare function string<T>(parser: Transform<string, T>): Transform<ValueType, T>;
136
+ /**
137
+ * Text to parser helper.
138
+ * Trims text
139
+ * Skips empty values
140
+ *
141
+ * @param parser the delegate parser
142
+ * @returns the new 'of' function
143
+ * @param <T> the return type of the given parser
144
+ */
145
+ declare function ofTrimAndSkipEmpty<T>(parser: Transform<ValueType, T>): Transform<ValueType, OptionalType<T>>;
146
+ /**
147
+ * Split the input text and parse each part into a list
148
+ *
149
+ * @param of the delegate text to value function
150
+ * @param delimiter the string delimiter.
151
+ * @returns the new parser
152
+ * @param <T> the return type of the given parser
153
+ */
154
+ declare function ofList<T>(of: Transform<ValueType, OptionalType<T>>, delimiter: string): Transform<ValueType, OptionalType<Array<T>>>;
155
+ export { CONTRACTS, createEnvironment, createKeySource, createLookupSource, createMapSource, createProcessSource, createRecordSource, createVariant, VERSION, type Environment, type EnvironmentConfig, type EnvironmentFactory, type OptionalType, type RequiredType, type Source, type SourceFactory, type SupplierType, type ValueType, type Variant, type VariantConfig, type VariantFactory, type Transform, stringParser, ofRawString, ofString, booleanParser, ofBoolean, numberParser, ofNumber, bigIntParser, ofBigInt, trim, string, ofTrimAndSkipEmpty, ofList };
76
156
  //# sourceMappingURL=Convenience.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Convenience.d.ts","sourceRoot":"","sources":["../../src/auxiliary/Convenience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,EAA4C,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAC7H,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAuC,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAwC,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAQjH;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAE7E;AAED;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,iBAAS,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAE7F;AAED;;;;;EAKE;AACF,iBAAS,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAEpF;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAE1E;AAED;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAEnF;AAED;;;;GAIG;AACH,iBAAS,mBAAmB,IAAI,YAAY,CAAC,MAAM,CAAC,CAEnD;AAED,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAAE,OAAO,EAAE,KAAK,WAAW,EACxC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,CAAC"}
1
+ {"version":3,"file":"Convenience.d.ts","sourceRoot":"","sources":["../../src/auxiliary/Convenience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAClG,OAAO,EAA4C,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAC7H,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAuC,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAwC,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAEjH,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAUxE;;;;;;;GAOG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAE7E;AAED;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,CAEhF;AAED;;;;;;GAMG;AACH,iBAAS,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAE7F;AAED;;;;;EAKE;AACF,iBAAS,kBAAkB,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAEpF;AAED;;;;;GAKG;AACH,iBAAS,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAE1E;AAED;;;;;GAKG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAEnF;AAED;;;;GAIG;AACH,iBAAS,mBAAmB,IAAI,YAAY,CAAC,MAAM,CAAC,CAEnD;AAEC;;GAEG;AACH,iBAAS,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAEpD;AAED;;;GAGG;AACH,iBAAS,WAAW,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAE/E;AAED;;;;GAIG;AACH,iBAAS,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAE5E;AAED;;GAEG;AACH,iBAAS,aAAa,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAElF;AAED;;;;GAIG;AACH,iBAAS,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAE9E;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAEhF;AAED;;;;GAIG;AACH,iBAAS,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAE5E;AAED;;GAEG;AACH,iBAAS,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAEhF;AAED;;;;GAIG;AACH,iBAAS,QAAQ,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAE5E;AAED;;;;;GAKG;AACH,iBAAS,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAEpE;AAED;;;;;;GAMG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAErG;AAED;;;;;;;GAOG;AACH,iBAAS,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAE7H;AAEH,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,kBAAkB,EAClB,MAAM,EACP,CAAC"}
@@ -15,9 +15,11 @@ import { VERSION } from "@jonloucks/variants-ts";
15
15
  import { CONTRACT as ENVIRONMENT_FACTORY_CONTRACT } from "@jonloucks/variants-ts/api/EnvironmentFactory";
16
16
  import { CONTRACT as SOURCE_FACTORY_CONTRACT } from "@jonloucks/variants-ts/api/SourceFactory";
17
17
  import { CONTRACT as VARIANT_FACTORY_CONTRACT } from "@jonloucks/variants-ts/api/VariantFactory";
18
+ import { CONTRACT as PARSER_FACTORY_CONTRACT } from "@jonloucks/variants-ts/api/ParserFactory";
18
19
  const ENVIRONMENT_FACTORY = CONTRACTS.enforce(ENVIRONMENT_FACTORY_CONTRACT);
19
20
  const VARIANT_FACTORY = CONTRACTS.enforce(VARIANT_FACTORY_CONTRACT);
20
21
  const SOURCE_FACTORY = CONTRACTS.enforce(SOURCE_FACTORY_CONTRACT);
22
+ const PARSER_FACTORY = CONTRACTS.enforce(PARSER_FACTORY_CONTRACT);
21
23
  /**
22
24
  * Creates a variant based on the provided configuration.
23
25
  *
@@ -83,5 +85,110 @@ function createRecordSource(record) {
83
85
  function createProcessSource() {
84
86
  return SOURCE_FACTORY.createProcessSource();
85
87
  }
86
- export { CONTRACTS, createEnvironment, createKeySource, createLookupSource, createMapSource, createProcessSource, createRecordSource, createVariant, VERSION };
88
+ /**
89
+ * @returns a parser that converts a valid text into a String
90
+ */
91
+ function stringParser() {
92
+ return PARSER_FACTORY.stringParser();
93
+ }
94
+ /**
95
+ * No trimming or skipping empty values
96
+ * @returns a text conversion to a String instance
97
+ */
98
+ function ofRawString() {
99
+ return PARSER_FACTORY.ofRawString();
100
+ }
101
+ /**
102
+ * Input is trimmed and empty values are skipped
103
+ *
104
+ * @returns a text conversion to a String instance
105
+ */
106
+ function ofString() {
107
+ return PARSER_FACTORY.ofString();
108
+ }
109
+ /**
110
+ * @returns a parser that converts a valid text value into a Boolean instance
111
+ */
112
+ function booleanParser() {
113
+ return PARSER_FACTORY.booleanParser();
114
+ }
115
+ /**
116
+ * Input is trimmed and empty values are skipped
117
+ *
118
+ * @returns a text conversion to a Boolean instance
119
+ */
120
+ function ofBoolean() {
121
+ return PARSER_FACTORY.ofBoolean();
122
+ }
123
+ /**
124
+ * @returns a parser that converts a valid text value into a Float instance
125
+ */
126
+ function numberParser() {
127
+ return PARSER_FACTORY.numberParser();
128
+ }
129
+ /**
130
+ * Input is trimmed and empty values are skipped
131
+ *
132
+ * @returns a text conversion to a Float instance
133
+ */
134
+ function ofNumber() {
135
+ return PARSER_FACTORY.ofNumber();
136
+ }
137
+ /**
138
+ * @returns a parser that converts a valid text value into a BigInt instance
139
+ */
140
+ function bigIntParser() {
141
+ return PARSER_FACTORY.bigIntParser();
142
+ }
143
+ /**
144
+ * Input is trimmed and empty values are skipped
145
+ *
146
+ * @returns a text conversion to a BigInt instance
147
+ */
148
+ function ofBigInt() {
149
+ return PARSER_FACTORY.ofBigInt();
150
+ }
151
+ /**
152
+ * trim leading and trailing white space
153
+ *
154
+ * @param text the text to trim
155
+ * @returns the trimmed text
156
+ */
157
+ function trim(text) {
158
+ return PARSER_FACTORY.trim(text);
159
+ }
160
+ /**
161
+ * A parser that converts text to a String
162
+ *
163
+ * @param parser the parser that accepts the String
164
+ * @returns the new parser
165
+ * @param <T> the return type of the given parser
166
+ */
167
+ function string(parser) {
168
+ return PARSER_FACTORY.string(parser);
169
+ }
170
+ /**
171
+ * Text to parser helper.
172
+ * Trims text
173
+ * Skips empty values
174
+ *
175
+ * @param parser the delegate parser
176
+ * @returns the new 'of' function
177
+ * @param <T> the return type of the given parser
178
+ */
179
+ function ofTrimAndSkipEmpty(parser) {
180
+ return PARSER_FACTORY.ofTrimAndSkipEmpty(parser);
181
+ }
182
+ /**
183
+ * Split the input text and parse each part into a list
184
+ *
185
+ * @param of the delegate text to value function
186
+ * @param delimiter the string delimiter.
187
+ * @returns the new parser
188
+ * @param <T> the return type of the given parser
189
+ */
190
+ function ofList(of, delimiter) {
191
+ return PARSER_FACTORY.ofList(of, delimiter);
192
+ }
193
+ export { CONTRACTS, createEnvironment, createKeySource, createLookupSource, createMapSource, createProcessSource, createRecordSource, createVariant, VERSION, stringParser, ofRawString, ofString, booleanParser, ofBoolean, numberParser, ofNumber, bigIntParser, ofBigInt, trim, string, ofTrimAndSkipEmpty, ofList };
87
194
  //# sourceMappingURL=Convenience.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Convenience.js","sourceRoot":"","sources":["../../src/auxiliary/Convenience.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,IAAI,4BAA4B,EAAsB,MAAM,+CAA+C,CAAC;AAE7H,OAAO,EAAE,QAAQ,IAAI,uBAAuB,EAAiB,MAAM,0CAA0C,CAAC;AAG9G,OAAO,EAAE,QAAQ,IAAI,wBAAwB,EAAkB,MAAM,2CAA2C,CAAC;AAEjH,MAAM,mBAAmB,GAAqC,SAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE9G,MAAM,eAAe,GAAiC,SAAS,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAElG,MAAM,cAAc,GAAgC,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAE/F;;;;;;;GAOG;AACH,SAAS,aAAa,CAAI,MAAyB;IACjD,OAAO,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAA0B;IACnD,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,GAAW,EAAE,QAAiC;IACrE,OAAO,cAAc,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED;;;;;EAKE;AACF,SAAS,kBAAkB,CAAC,MAAkC;IAC5D,OAAO,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAA2B;IAClD,OAAO,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAiC;IAC3D,OAAO,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB;IAC1B,OAAO,cAAc,CAAC,mBAAmB,EAAE,CAAC;AAC9C,CAAC;AAED,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EAAE,OAAO,EAYvB,CAAC"}
1
+ {"version":3,"file":"Convenience.js","sourceRoot":"","sources":["../../src/auxiliary/Convenience.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,6 @@ export function create(config) {
21
21
  return VariantImpl.createInternal(config);
22
22
  }
23
23
  ;
24
- // ---- Implementation details below ----
25
24
  class VariantImpl {
26
25
  get keys() {
27
26
  return __classPrivateFieldGet(this, _VariantImpl_keys, "f");
@@ -69,23 +68,17 @@ function compileOf(config) {
69
68
  return fromType(config.of);
70
69
  }
71
70
  else if (isPresent(config.parser)) {
72
- return compileUsingParser();
73
- }
74
- else {
75
- return compilePassThru();
76
- }
77
- function compileUsingParser() {
78
- const parserTransform = fromType(config.parser);
71
+ const parseValue = fromType(config.parser);
79
72
  return {
80
73
  transform: (input) => {
81
74
  if (isPresent(input)) {
82
- return parserTransform.transform(input);
75
+ return parseValue.transform(input);
83
76
  }
84
77
  return input;
85
78
  }
86
79
  };
87
80
  }
88
- function compilePassThru() {
81
+ else {
89
82
  return {
90
83
  transform: (input) => {
91
84
  return input;
@@ -1 +1 @@
1
- {"version":3,"file":"Variant.impl.js","sourceRoot":"","sources":["../../src/impl/Variant.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAA6C,MAAM,mCAAmC,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAa,MAAM,6CAA6C,CAAC;AAIlF;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAI,MAAyB;IACjD,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAAA,CAAC;AAEF,yCAAyC;AAEzC,MAAM,WAAW;IAEf,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,uBAAA,IAAI,gCAAa,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,uBAAA,IAAI,6BAAU,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,SAAkC;QACnC,OAAO,uBAAA,IAAI,uBAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,MAAyB;QAChD,OAAO,IAAI,WAAW,CAAI,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,YAAoB,MAAyB;QAUpC,oCAAyB;QACzB,oCAAc;QACd,2CAAqB;QACrB,wCAAyB;QACzB,oCAA8B;QAC9B,kCAAyD;QAdhE,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACpC,uBAAA,IAAI,4BAAgB,WAAW,CAAC,WAAW,IAAI,EAAE,MAAA,CAAC;QAClD,uBAAA,IAAI,yBAAa,WAAW,CAAC,QAAQ,IAAI,SAAS,MAAA,CAAC;QACnD,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,SAAS,MAAA,CAAC;QAC3C,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACpC,uBAAA,IAAI,mBAAO,SAAS,CAAC,WAAW,CAAC,MAAA,CAAC;IACpC,CAAC;CAQF;;AAED,SAAS,SAAS,CAAI,MAAwB;IAC5C,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAG,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS,kBAAkB;QACzB,MAAM,eAAe,GAAwD,QAAQ,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC;QACtG,OAAO;YACL,SAAS,EAAE,CAAC,KAA8B,EAAmB,EAAE;gBAC7D,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC1C,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,eAAe;QACtB,OAAO;YACL,SAAS,EAAE,CAAC,KAA8B,EAAmB,EAAE;gBAC7D,OAAO,KAAmC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"Variant.impl.js","sourceRoot":"","sources":["../../src/impl/Variant.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAA6C,MAAM,mCAAmC,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAa,MAAM,6CAA6C,CAAC;AAIlF;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAI,MAAyB;IACjD,OAAO,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAAA,CAAC;AAmBF,MAAM,WAAW;IAEf,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,uBAAA,IAAI,gCAAa,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,uBAAA,IAAI,6BAAU,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,uBAAA,IAAI,yBAAM,CAAC;IACpB,CAAC;IAED,EAAE,CAAC,SAAkC;QACnC,OAAO,uBAAA,IAAI,uBAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,MAAyB;QAChD,OAAO,IAAI,WAAW,CAAI,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,YAAoB,MAAyB;QAUpC,oCAAyB;QACzB,oCAAc;QACd,2CAAqB;QACrB,wCAAyB;QACzB,oCAA8B;QAC9B,kCAAoB;QAd3B,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACpC,uBAAA,IAAI,4BAAgB,WAAW,CAAC,WAAW,IAAI,EAAE,MAAA,CAAC;QAClD,uBAAA,IAAI,yBAAa,WAAW,CAAC,QAAQ,IAAI,SAAS,MAAA,CAAC;QACnD,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,SAAS,MAAA,CAAC;QAC3C,uBAAA,IAAI,qBAAS,WAAW,CAAC,IAAI,IAAI,EAAE,MAAA,CAAC;QACpC,uBAAA,IAAI,mBAAO,SAAS,CAAC,WAAW,CAAC,MAAA,CAAC;IACpC,CAAC;CAQF;;AAED,SAAS,SAAS,CAAI,MAAwB;IAC5C,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAG,CAAC,CAAA;IAC7B,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,MAAM,UAAU,GAAuB,QAAQ,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC;QAChE,OAAO;YACL,SAAS,EAAE,CAAC,KAA8B,EAAmB,EAAE;gBAC7D,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,SAAS,EAAE,CAAC,KAA8B,EAAmB,EAAE;gBAC7D,OAAO,KAAmC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAAA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jonloucks/variants-ts",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Node.js Typescript Configuration Library, normalize how configuration is loaded from various sources is retrieved.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -37,7 +37,7 @@
37
37
  "build": "tsc",
38
38
  "test": "tsx --test $(find src -name '*.test.ts')",
39
39
  "test:watch": "tsx --test --watch $(find src -name '*.test.ts')",
40
- "test:coverage": "npx c8 --check-coverage --lines 95 --functions 95 --branches 85 --statements 95 --reporter=lcov npx tsx --test $(find src -name '*.test.ts')",
40
+ "test:coverage": "npx c8 --check-coverage --lines 95 --functions 95 --branches 95 --statements 95 --reporter=lcov npx tsx --test $(find src -name '*.test.ts')",
41
41
  "lint": "eslint . --ext .ts",
42
42
  "lint:fix": "eslint . --ext .ts --fix",
43
43
  "prepublishOnly": "npm run build",
package/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated file - do not edit
2
2
  export const NAME = "@jonloucks/variants-ts";
3
- export const VERSION = "1.0.0";
3
+ export const VERSION = "1.1.0";
4
4
  //# sourceMappingURL=version.js.map