@parischap/conversions 0.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.
- package/LICENSE +21 -0
- package/README.md +1304 -0
- package/cjs/BigDecimal.js +16 -0
- package/cjs/BigDecimal.js.map +1 -0
- package/cjs/BigInt.js +34 -0
- package/cjs/BigInt.js.map +1 -0
- package/cjs/DateTime.js +2202 -0
- package/cjs/DateTime.js.map +1 -0
- package/cjs/DateTimeFormat.js +269 -0
- package/cjs/DateTimeFormat.js.map +1 -0
- package/cjs/DateTimeFormatContext.js +327 -0
- package/cjs/DateTimeFormatContext.js.map +1 -0
- package/cjs/Email.js +73 -0
- package/cjs/Email.js.map +1 -0
- package/cjs/Integer.js +155 -0
- package/cjs/Integer.js.map +1 -0
- package/cjs/NumberBase10Format.js +759 -0
- package/cjs/NumberBase10Format.js.map +1 -0
- package/cjs/PositiveInteger.js +191 -0
- package/cjs/PositiveInteger.js.map +1 -0
- package/cjs/PositiveReal.js +162 -0
- package/cjs/PositiveReal.js.map +1 -0
- package/cjs/Real.js +113 -0
- package/cjs/Real.js.map +1 -0
- package/cjs/RoundingMode.js +86 -0
- package/cjs/RoundingMode.js.map +1 -0
- package/cjs/RoundingOption.js +152 -0
- package/cjs/RoundingOption.js.map +1 -0
- package/cjs/Schema.js +218 -0
- package/cjs/Schema.js.map +1 -0
- package/cjs/SemVer.js +73 -0
- package/cjs/SemVer.js.map +1 -0
- package/cjs/Template.js +189 -0
- package/cjs/Template.js.map +1 -0
- package/cjs/TemplatePart.js +51 -0
- package/cjs/TemplatePart.js.map +1 -0
- package/cjs/TemplateParts.js +46 -0
- package/cjs/TemplateParts.js.map +1 -0
- package/cjs/TemplatePlaceholder.js +381 -0
- package/cjs/TemplatePlaceholder.js.map +1 -0
- package/cjs/TemplateSeparator.js +116 -0
- package/cjs/TemplateSeparator.js.map +1 -0
- package/cjs/index.js +67 -0
- package/cjs/index.js.map +1 -0
- package/cjs/internal/Int.js +50 -0
- package/cjs/internal/Int.js.map +1 -0
- package/cjs/internal/Positive.js +50 -0
- package/cjs/internal/Positive.js.map +1 -0
- package/dts/BigDecimal.d.ts +11 -0
- package/dts/BigDecimal.d.ts.map +1 -0
- package/dts/BigInt.d.ts +30 -0
- package/dts/BigInt.d.ts.map +1 -0
- package/dts/DateTime.d.ts +1421 -0
- package/dts/DateTime.d.ts.map +1 -0
- package/dts/DateTimeFormat.d.ts +257 -0
- package/dts/DateTimeFormat.d.ts.map +1 -0
- package/dts/DateTimeFormatContext.d.ts +112 -0
- package/dts/DateTimeFormatContext.d.ts.map +1 -0
- package/dts/Email.d.ts +61 -0
- package/dts/Email.d.ts.map +1 -0
- package/dts/Integer.d.ts +123 -0
- package/dts/Integer.d.ts.map +1 -0
- package/dts/NumberBase10Format.d.ts +641 -0
- package/dts/NumberBase10Format.d.ts.map +1 -0
- package/dts/PositiveInteger.d.ts +161 -0
- package/dts/PositiveInteger.d.ts.map +1 -0
- package/dts/PositiveReal.d.ts +130 -0
- package/dts/PositiveReal.d.ts.map +1 -0
- package/dts/Real.d.ts +102 -0
- package/dts/Real.d.ts.map +1 -0
- package/dts/RoundingMode.d.ts +72 -0
- package/dts/RoundingMode.d.ts.map +1 -0
- package/dts/RoundingOption.d.ts +79 -0
- package/dts/RoundingOption.d.ts.map +1 -0
- package/dts/Schema.d.ts +159 -0
- package/dts/Schema.d.ts.map +1 -0
- package/dts/SemVer.d.ts +61 -0
- package/dts/SemVer.d.ts.map +1 -0
- package/dts/Template.d.ts +113 -0
- package/dts/Template.d.ts.map +1 -0
- package/dts/TemplatePart.d.ts +28 -0
- package/dts/TemplatePart.d.ts.map +1 -0
- package/dts/TemplateParts.d.ts +23 -0
- package/dts/TemplateParts.d.ts.map +1 -0
- package/dts/TemplatePlaceholder.d.ts +274 -0
- package/dts/TemplatePlaceholder.d.ts.map +1 -0
- package/dts/TemplateSeparator.d.ts +130 -0
- package/dts/TemplateSeparator.d.ts.map +1 -0
- package/dts/index.d.ts +21 -0
- package/dts/index.d.ts.map +1 -0
- package/dts/internal/Int.d.ts +6 -0
- package/dts/internal/Int.d.ts.map +1 -0
- package/dts/internal/Positive.d.ts +6 -0
- package/dts/internal/Positive.d.ts.map +1 -0
- package/esm/BigDecimal.js +9 -0
- package/esm/BigDecimal.js.map +1 -0
- package/esm/BigInt.js +27 -0
- package/esm/BigInt.js.map +1 -0
- package/esm/DateTime.js +2130 -0
- package/esm/DateTime.js.map +1 -0
- package/esm/DateTimeFormat.js +238 -0
- package/esm/DateTimeFormat.js.map +1 -0
- package/esm/DateTimeFormatContext.js +296 -0
- package/esm/DateTimeFormatContext.js.map +1 -0
- package/esm/Email.js +65 -0
- package/esm/Email.js.map +1 -0
- package/esm/Integer.js +128 -0
- package/esm/Integer.js.map +1 -0
- package/esm/NumberBase10Format.js +717 -0
- package/esm/NumberBase10Format.js.map +1 -0
- package/esm/PositiveInteger.js +164 -0
- package/esm/PositiveInteger.js.map +1 -0
- package/esm/PositiveReal.js +135 -0
- package/esm/PositiveReal.js.map +1 -0
- package/esm/Real.js +106 -0
- package/esm/Real.js.map +1 -0
- package/esm/RoundingMode.js +79 -0
- package/esm/RoundingMode.js.map +1 -0
- package/esm/RoundingOption.js +120 -0
- package/esm/RoundingOption.js.map +1 -0
- package/esm/Schema.js +203 -0
- package/esm/Schema.js.map +1 -0
- package/esm/SemVer.js +65 -0
- package/esm/SemVer.js.map +1 -0
- package/esm/Template.js +158 -0
- package/esm/Template.js.map +1 -0
- package/esm/TemplatePart.js +22 -0
- package/esm/TemplatePart.js.map +1 -0
- package/esm/TemplateParts.js +19 -0
- package/esm/TemplateParts.js.map +1 -0
- package/esm/TemplatePlaceholder.js +342 -0
- package/esm/TemplatePlaceholder.js.map +1 -0
- package/esm/TemplateSeparator.js +107 -0
- package/esm/TemplateSeparator.js.map +1 -0
- package/esm/index.js +21 -0
- package/esm/index.js.map +1 -0
- package/esm/internal/Int.js +43 -0
- package/esm/internal/Int.js.map +1 -0
- package/esm/internal/Positive.js +43 -0
- package/esm/internal/Positive.js.map +1 -0
- package/esm/package.json +3 -0
- package/package.json +49 -0
package/cjs/Template.js
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.toThrowingParser = exports.toThrowingFormatter = exports.toParser = exports.toFormatter = exports.templateParts = exports.moduleTag = exports.make = exports.has = void 0;
|
7
|
+
var _effectLib = /*#__PURE__*/require("@parischap/effect-lib");
|
8
|
+
var _effect = /*#__PURE__*/require("effect");
|
9
|
+
var CVTemplatePart = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplatePart.js"));
|
10
|
+
var CVTemplateParts = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplateParts.js"));
|
11
|
+
function _interopRequireWildcard(e, t) {
|
12
|
+
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
13
|
+
n = new WeakMap();
|
14
|
+
return (_interopRequireWildcard = function (e, t) {
|
15
|
+
if (!t && e && e.__esModule) return e;
|
16
|
+
var o,
|
17
|
+
i,
|
18
|
+
f = {
|
19
|
+
__proto__: null,
|
20
|
+
default: e
|
21
|
+
};
|
22
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
23
|
+
if (o = t ? n : r) {
|
24
|
+
if (o.has(e)) return o.get(e);
|
25
|
+
o.set(e, f);
|
26
|
+
}
|
27
|
+
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
28
|
+
return f;
|
29
|
+
})(e, t);
|
30
|
+
}
|
31
|
+
/**
|
32
|
+
* A template is a model of a text that has always the same structure. In such a text, there are
|
33
|
+
* immutable and mutable parts. Let's take the following two texts as an example:
|
34
|
+
*
|
35
|
+
* - Text1 = "John is a 47-year old man."
|
36
|
+
* - Text2 = "Jehnny is a 5-year old girl."
|
37
|
+
*
|
38
|
+
* These two texts obviously share the same structure which is the template:
|
39
|
+
*
|
40
|
+
* Placeholder1 is a Placeholder2-year old Placeholder3.
|
41
|
+
*
|
42
|
+
* Placeholder1, Placeholder2 and Placeholder3 are the mutable parts of the template. They contain
|
43
|
+
* valuable information. We call them `TemplatePlaceholder`'s.
|
44
|
+
*
|
45
|
+
* " is a " and "-year old " are the immutable parts of the template. We call them
|
46
|
+
* `TemplateSeperator`'s.
|
47
|
+
*
|
48
|
+
* From a text with the above structure, we can extract the values of Placeholder1, Placeholder2,
|
49
|
+
* and Placeholder3. In the present case:
|
50
|
+
*
|
51
|
+
* - For text1: Placeholder1 = 'John', Placeholder2 = '47', Placeholder3 = 'man'
|
52
|
+
* - For text2: Placeholder1 = 'Jehnny', Placeholder2 = '5', Placeholder3 = 'girl'
|
53
|
+
*
|
54
|
+
* Extracting the values of placeholders from a text according to a template is called parsing.
|
55
|
+
*
|
56
|
+
* Inversely, given a template and the values of the placeholders that compose it, we can generate a
|
57
|
+
* text. This is called formatting. In the present case, with:
|
58
|
+
*
|
59
|
+
* Placeholder1 = 'Tom', Placeholder2 = '15', Placeholder3 = 'boy'
|
60
|
+
*
|
61
|
+
* We will obtain the text: "Tom is a 15-year old boy."
|
62
|
+
*
|
63
|
+
* A TemplatePart is either a TemplateSeparator or a TemplatePlaceholder. This module implements a
|
64
|
+
* Template which is composed of a series of TemplatePart's. Note that Effect does provide the
|
65
|
+
* Schema.TemplateLiteralParser API which partly addresses the same problem. But there are some
|
66
|
+
* limitations to that API. For instance, template literal types cannot represent a fixed-length
|
67
|
+
* string or a string composed only of capital letters... It is for instance impossible to represent
|
68
|
+
* a date in the form YYYYMMDD with the TemplateLiteralParser. A schema in the form:
|
69
|
+
*
|
70
|
+
* `const schema = Schema.TemplateLiteralParser(Schema.NumberFromString,Schema.NumberFromString,
|
71
|
+
* Schema.NumberFromString)`
|
72
|
+
*
|
73
|
+
* Would not work as the first NumberFromString combinator would read the whole date.
|
74
|
+
*/
|
75
|
+
|
76
|
+
/**
|
77
|
+
* Module tag
|
78
|
+
*
|
79
|
+
* @category Module markers
|
80
|
+
*/
|
81
|
+
const moduleTag = exports.moduleTag = '@parischap/conversions/Template/';
|
82
|
+
const _TypeId = /*#__PURE__*/Symbol.for(moduleTag);
|
83
|
+
/**
|
84
|
+
* Type guard
|
85
|
+
*
|
86
|
+
* @category Guards
|
87
|
+
*/
|
88
|
+
const has = u => _effect.Predicate.hasProperty(u, _TypeId);
|
89
|
+
/** Prototype */
|
90
|
+
exports.has = has;
|
91
|
+
const proto = {
|
92
|
+
[_TypeId]: {
|
93
|
+
_P: _effectLib.MTypes.covariantValue
|
94
|
+
},
|
95
|
+
[_effectLib.MInspectable.IdSymbol]() {
|
96
|
+
return (0, _effect.pipe)(this.templateParts, _effectLib.MTuple.makeBothBy({
|
97
|
+
toFirst: CVTemplateParts.getSyntheticDescription,
|
98
|
+
toSecond: CVTemplateParts.getPlaceholderDescription
|
99
|
+
}), _effect.Array.join('\n\n'));
|
100
|
+
},
|
101
|
+
... /*#__PURE__*/_effectLib.MInspectable.BaseProto(moduleTag),
|
102
|
+
..._effectLib.MPipeable.BaseProto
|
103
|
+
};
|
104
|
+
const _make = params => _effectLib.MTypes.objectFromDataAndProto(proto, params);
|
105
|
+
/**
|
106
|
+
* Constructor
|
107
|
+
*
|
108
|
+
* @category Constructors
|
109
|
+
*/
|
110
|
+
const make = (...templateParts) => _make({
|
111
|
+
templateParts
|
112
|
+
});
|
113
|
+
/**
|
114
|
+
* Returns the `templateParts` property of `self`
|
115
|
+
*
|
116
|
+
* @category Destructors
|
117
|
+
*/
|
118
|
+
exports.make = make;
|
119
|
+
const templateParts = exports.templateParts = /*#__PURE__*/_effect.Struct.get('templateParts');
|
120
|
+
/**
|
121
|
+
* Returns a function that parses a text into a record according to 'self' .
|
122
|
+
*
|
123
|
+
* @category Parsing
|
124
|
+
*/
|
125
|
+
const toParser = self => text => _effect.Either.gen(function* () {
|
126
|
+
let consumed;
|
127
|
+
const result = _effect.Record.empty();
|
128
|
+
const templateParts = self.templateParts;
|
129
|
+
for (let pos = 0; pos < templateParts.length; pos++) {
|
130
|
+
const templatePart = templateParts[pos];
|
131
|
+
if (CVTemplatePart.isPlaceholder(templatePart)) {
|
132
|
+
/* eslint-disable-next-line functional/no-expression-statements */
|
133
|
+
[consumed, text] = yield* templatePart.parser(text);
|
134
|
+
const name = templatePart.name;
|
135
|
+
if (!(name in result)) /* eslint-disable-next-line functional/immutable-data, functional/no-expression-statements, */
|
136
|
+
result[name] = consumed;else {
|
137
|
+
const oldValue = result[name];
|
138
|
+
if (!_effect.Equal.equals(oldValue, consumed)) yield* _effect.Either.left(new _effectLib.MInputError.Type({
|
139
|
+
message: `${templatePart.label} is present more than once in template and receives differing values '${_effectLib.MString.fromUnknown(oldValue)}' and '${_effectLib.MString.fromUnknown(consumed)}'`
|
140
|
+
}));
|
141
|
+
}
|
142
|
+
} else /* eslint-disable-next-line functional/no-expression-statements */
|
143
|
+
text = yield* templatePart.parser(pos + 1)(text);
|
144
|
+
}
|
145
|
+
yield* (0, _effect.pipe)(text, _effectLib.MInputError.assertEmpty({
|
146
|
+
name: 'text not consumed by template'
|
147
|
+
}));
|
148
|
+
return result;
|
149
|
+
});
|
150
|
+
/**
|
151
|
+
* Same as toParser but the returned parser throws in case of error
|
152
|
+
*
|
153
|
+
* @category Parsing
|
154
|
+
*/
|
155
|
+
exports.toParser = toParser;
|
156
|
+
const toThrowingParser = exports.toThrowingParser = /*#__PURE__*/(0, _effect.flow)(toParser, /*#__PURE__*/_effect.Function.compose(/*#__PURE__*/_effect.Either.getOrThrowWith(_effect.Function.identity)));
|
157
|
+
/**
|
158
|
+
* Returns a function that formats an object into the template represented by 'self' . When
|
159
|
+
* strictMode is false, the formatter function of the templatepart's is replaced by the Either.right
|
160
|
+
* function, i.e. no checks are carried out when encoding
|
161
|
+
*
|
162
|
+
* @category Formatting
|
163
|
+
*/
|
164
|
+
const toFormatter = self => {
|
165
|
+
return record => _effect.Either.gen(function* () {
|
166
|
+
let result = '';
|
167
|
+
for (const templatePart of self.templateParts) {
|
168
|
+
if (CVTemplatePart.isSeparator(templatePart)) {
|
169
|
+
/* eslint-disable-next-line functional/no-expression-statements */
|
170
|
+
result += templatePart.formatter();
|
171
|
+
} else {
|
172
|
+
const value = (0, _effect.pipe)(record, _effect.Record.get(templatePart.name),
|
173
|
+
// This error should not happen due to typing
|
174
|
+
_effect.Option.getOrThrowWith(() => new Error(`Abnormal error: no value passed for ${templatePart.label} templatepart`)));
|
175
|
+
/* eslint-disable-next-line functional/no-expression-statements */
|
176
|
+
result += yield* templatePart.formatter(value);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
return result;
|
180
|
+
});
|
181
|
+
};
|
182
|
+
/**
|
183
|
+
* Same as toFormatter but the returned formatter throws in case of error
|
184
|
+
*
|
185
|
+
* @category Formatting
|
186
|
+
*/
|
187
|
+
exports.toFormatter = toFormatter;
|
188
|
+
const toThrowingFormatter = exports.toThrowingFormatter = /*#__PURE__*/(0, _effect.flow)(toFormatter, /*#__PURE__*/_effect.Function.compose(/*#__PURE__*/_effect.Either.getOrThrowWith(_effect.Function.identity)));
|
189
|
+
//# sourceMappingURL=Template.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Template.js","names":["_effectLib","require","_effect","CVTemplatePart","_interopRequireWildcard","CVTemplateParts","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","moduleTag","exports","_TypeId","Symbol","for","u","Predicate","hasProperty","proto","_P","MTypes","covariantValue","MInspectable","IdSymbol","pipe","templateParts","MTuple","makeBothBy","toFirst","getSyntheticDescription","toSecond","getPlaceholderDescription","Array","join","BaseProto","MPipeable","_make","params","objectFromDataAndProto","make","Struct","toParser","self","text","Either","gen","consumed","result","Record","empty","pos","length","templatePart","isPlaceholder","parser","name","oldValue","Equal","equals","left","MInputError","Type","message","label","MString","fromUnknown","assertEmpty","toThrowingParser","flow","Function","compose","getOrThrowWith","identity","toFormatter","record","isSeparator","formatter","value","Option","Error","toThrowingFormatter"],"sources":["../../esm/Template.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.isSeparator = exports.isPlaceholder = void 0;
|
7
|
+
var CVTemplatePlaceholder = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplatePlaceholder.js"));
|
8
|
+
var CVTemplateSeparator = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplateSeparator.js"));
|
9
|
+
function _interopRequireWildcard(e, t) {
|
10
|
+
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
11
|
+
n = new WeakMap();
|
12
|
+
return (_interopRequireWildcard = function (e, t) {
|
13
|
+
if (!t && e && e.__esModule) return e;
|
14
|
+
var o,
|
15
|
+
i,
|
16
|
+
f = {
|
17
|
+
__proto__: null,
|
18
|
+
default: e
|
19
|
+
};
|
20
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
21
|
+
if (o = t ? n : r) {
|
22
|
+
if (o.has(e)) return o.get(e);
|
23
|
+
o.set(e, f);
|
24
|
+
}
|
25
|
+
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
26
|
+
return f;
|
27
|
+
})(e, t);
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* This module implements a TemplatePart type. TemplatePart's are the constituents of Template's
|
31
|
+
* (see Template.ts).
|
32
|
+
*
|
33
|
+
* There are two kinds of TemplateParts: TemplateSeparator's (see TemplateSeparator.ts) and
|
34
|
+
* TemplatePlaceholder's (see TemplatePlaceholder.ts)
|
35
|
+
*/
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Type guard
|
39
|
+
*
|
40
|
+
* @category Guards
|
41
|
+
*/
|
42
|
+
const isPlaceholder = u => CVTemplatePlaceholder.has(u);
|
43
|
+
/**
|
44
|
+
* Type guard
|
45
|
+
*
|
46
|
+
* @category Guards
|
47
|
+
*/
|
48
|
+
exports.isPlaceholder = isPlaceholder;
|
49
|
+
const isSeparator = u => CVTemplateSeparator.has(u);
|
50
|
+
exports.isSeparator = isSeparator;
|
51
|
+
//# sourceMappingURL=TemplatePart.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TemplatePart.js","names":["CVTemplatePlaceholder","_interopRequireWildcard","require","CVTemplateSeparator","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isPlaceholder","u","exports","isSeparator"],"sources":["../../esm/TemplatePart.ts"],"sourcesContent":[null],"mappings":";;;;;;AAQA,IAAAA,qBAAA,gBAAAC,uBAAA,cAAAC,OAAA;AACA,IAAAC,mBAAA,gBAAAF,uBAAA,cAAAC,OAAA;AAA8D,SAAAD,wBAAAG,CAAA,EAAAC,CAAA;EAAA,yBAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA;IAAA,KAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA;IAAA,IAAAM,CAAA;MAAAC,CAAA;MAAAC,CAAA;QAAAC,SAAA;QAAAC,OAAA,EAAAV;MAAA;IAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA;IAAA,IAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA;MAAA,IAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA;MAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA;IAAA;IAAA,WAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA;IAAA,OAAAO,CAAA;EAAA,GAAAR,CAAA,EAAAC,CAAA;AAAA;AAT9D;;;;;;;;AAkBA;;;;;AAKO,MAAMkB,aAAa,GACzBC,CAAa,IAC8BxB,qBAAqB,CAACe,GAAG,CAACS,CAAC,CAAC;AAExE;;;;;AAAAC,OAAA,CAAAF,aAAA,GAAAA,aAAA;AAKO,MAAMG,WAAW,GACvBF,CAAa,IACsBrB,mBAAmB,CAACY,GAAG,CAACS,CAAC,CAAC;AAACC,OAAA,CAAAC,WAAA,GAAAA,WAAA","ignoreList":[]}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.getSyntheticDescription = exports.getPlaceholderDescription = void 0;
|
7
|
+
var _effectLib = /*#__PURE__*/require("@parischap/effect-lib");
|
8
|
+
var _effect = /*#__PURE__*/require("effect");
|
9
|
+
var CVTemplatePart = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplatePart.js"));
|
10
|
+
var CVTemplatePlaceholder = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplatePlaceholder.js"));
|
11
|
+
var CVTemplateSeparator = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("./TemplateSeparator.js"));
|
12
|
+
function _interopRequireWildcard(e, t) {
|
13
|
+
if ("function" == typeof WeakMap) var r = new WeakMap(),
|
14
|
+
n = new WeakMap();
|
15
|
+
return (_interopRequireWildcard = function (e, t) {
|
16
|
+
if (!t && e && e.__esModule) return e;
|
17
|
+
var o,
|
18
|
+
i,
|
19
|
+
f = {
|
20
|
+
__proto__: null,
|
21
|
+
default: e
|
22
|
+
};
|
23
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return f;
|
24
|
+
if (o = t ? n : r) {
|
25
|
+
if (o.has(e)) return o.get(e);
|
26
|
+
o.set(e, f);
|
27
|
+
}
|
28
|
+
for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]);
|
29
|
+
return f;
|
30
|
+
})(e, t);
|
31
|
+
}
|
32
|
+
/** This module implements an array of TemplatePart's (see TemplatePart.ts) */
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Shows a synthetic description of `self`, e.g.' #name is a #age-year-old #kind.'
|
36
|
+
*
|
37
|
+
* @category Destructors
|
38
|
+
*/
|
39
|
+
const getSyntheticDescription = exports.getSyntheticDescription = /*#__PURE__*/(0, _effect.flow)(/*#__PURE__*/_effect.Array.map(/*#__PURE__*/(0, _effect.flow)(_effectLib.MMatch.make, /*#__PURE__*/_effectLib.MMatch.when(CVTemplatePart.isPlaceholder, CVTemplatePlaceholder.label), /*#__PURE__*/_effectLib.MMatch.when(CVTemplatePart.isSeparator, CVTemplateSeparator.value), _effectLib.MMatch.exhaustive)), /*#__PURE__*/_effect.Array.join(''));
|
40
|
+
/**
|
41
|
+
* Shows a description of the placeholders of `self`, e.g.' #name is a #age-year-old #kind.'
|
42
|
+
*
|
43
|
+
* @category Destructors
|
44
|
+
*/
|
45
|
+
const getPlaceholderDescription = exports.getPlaceholderDescription = /*#__PURE__*/(0, _effect.flow)(/*#__PURE__*/_effect.Array.filterMap(/*#__PURE__*/(0, _effect.flow)(_effectLib.MMatch.make, /*#__PURE__*/_effectLib.MMatch.when(CVTemplatePart.isPlaceholder, /*#__PURE__*/(0, _effect.flow)(CVTemplatePlaceholder.getLabelledDescription, _effect.Option.some)), /*#__PURE__*/_effectLib.MMatch.when(CVTemplatePart.isSeparator, /*#__PURE__*/_effect.Function.constant(/*#__PURE__*/_effect.Option.none())), _effectLib.MMatch.exhaustive)), /*#__PURE__*/_effect.Array.join('.\n'));
|
46
|
+
//# sourceMappingURL=TemplateParts.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TemplateParts.js","names":["_effectLib","require","_effect","CVTemplatePart","_interopRequireWildcard","CVTemplatePlaceholder","CVTemplateSeparator","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getSyntheticDescription","exports","flow","Array","map","MMatch","make","when","isPlaceholder","label","isSeparator","value","exhaustive","join","getPlaceholderDescription","filterMap","getLabelledDescription","Option","some","Function","constant","none"],"sources":["../../esm/TemplateParts.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|