@effect-app/vue 0.87.0-next.2 → 0.87.0-next.21
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/CHANGELOG.md +176 -0
- package/_cjs/form.cjs +174 -0
- package/_cjs/form.cjs.map +1 -0
- package/_cjs/hooks.cjs +9 -3
- package/_cjs/hooks.cjs.map +1 -1
- package/_src/{form.ts.bak → form.ts} +93 -47
- package/_src/hooks.ts +18 -8
- package/_src/routeParams.ts +1 -1
- package/dist/form.d.ts +52 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +178 -0
- package/dist/hooks.d.ts +8 -7
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +12 -4
- package/dist/routeParams.d.ts +1 -1
- package/dist/routeParams.d.ts.map +1 -1
- package/package.json +16 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,181 @@
|
|
|
1
1
|
# @effect-app/vue
|
|
2
2
|
|
|
3
|
+
## 0.87.0-next.21
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [c234016]
|
|
8
|
+
- @effect-app/schema@0.150.0-next.14
|
|
9
|
+
- @effect-app/prelude@0.107.0-next.17
|
|
10
|
+
- @effect-app/vue@0.87.0-next.21
|
|
11
|
+
|
|
12
|
+
## 0.87.0-next.20
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 5d53b26: fix exclusive min/max
|
|
17
|
+
- Updated dependencies [5d53b26]
|
|
18
|
+
- @effect-app/schema@0.150.0-next.13
|
|
19
|
+
- @effect-app/vue@0.87.0-next.20
|
|
20
|
+
- @effect-app/prelude@0.107.0-next.16
|
|
21
|
+
|
|
22
|
+
## 0.87.0-next.19
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- fd785c2: improve error
|
|
27
|
+
- Updated dependencies [fd785c2]
|
|
28
|
+
- @effect-app/vue@0.87.0-next.19
|
|
29
|
+
|
|
30
|
+
## 0.87.0-next.18
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- 99310c3: fix error message
|
|
35
|
+
- Updated dependencies [99310c3]
|
|
36
|
+
- @effect-app/vue@0.87.0-next.18
|
|
37
|
+
|
|
38
|
+
## 0.87.0-next.17
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies [147bc14]
|
|
43
|
+
- @effect-app/schema@0.150.0-next.12
|
|
44
|
+
- @effect-app/prelude@0.107.0-next.15
|
|
45
|
+
- @effect-app/vue@0.87.0-next.17
|
|
46
|
+
|
|
47
|
+
## 0.87.0-next.16
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- 660d57a: upd
|
|
52
|
+
- Updated dependencies [660d57a]
|
|
53
|
+
- @effect-app/schema@0.150.0-next.11
|
|
54
|
+
- @effect-app/vue@0.87.0-next.16
|
|
55
|
+
- @effect-app/prelude@0.107.0-next.14
|
|
56
|
+
|
|
57
|
+
## 0.87.0-next.15
|
|
58
|
+
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- 5f76678: reimplement vue form
|
|
62
|
+
- Updated dependencies [5f76678]
|
|
63
|
+
- @effect-app/vue@0.87.0-next.15
|
|
64
|
+
|
|
65
|
+
## 0.87.0-next.14
|
|
66
|
+
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- 20076e0: update
|
|
70
|
+
- Updated dependencies [20076e0]
|
|
71
|
+
- @effect-app/prelude@0.107.0-next.13
|
|
72
|
+
- @effect-app/schema@0.150.0-next.10
|
|
73
|
+
- @effect-app/vue@0.87.0-next.14
|
|
74
|
+
|
|
75
|
+
## 0.87.0-next.13
|
|
76
|
+
|
|
77
|
+
### Patch Changes
|
|
78
|
+
|
|
79
|
+
- Updated dependencies
|
|
80
|
+
- @effect-app/core@0.97.0-next.4
|
|
81
|
+
- @effect-app/prelude@0.107.0-next.12
|
|
82
|
+
- @effect-app/schema@0.150.0-next.9
|
|
83
|
+
- @effect-app/vue@0.87.0-next.13
|
|
84
|
+
|
|
85
|
+
## 0.87.0-next.12
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- ac35466: use schema fork
|
|
90
|
+
- Updated dependencies [ac35466]
|
|
91
|
+
- @effect-app/prelude@0.107.0-next.11
|
|
92
|
+
- @effect-app/schema@0.150.0-next.8
|
|
93
|
+
- @effect-app/vue@0.87.0-next.12
|
|
94
|
+
|
|
95
|
+
## 0.87.0-next.11
|
|
96
|
+
|
|
97
|
+
### Patch Changes
|
|
98
|
+
|
|
99
|
+
- Updated dependencies [4f8ade3]
|
|
100
|
+
- @effect-app/core@0.97.0-next.3
|
|
101
|
+
- @effect-app/prelude@0.107.0-next.10
|
|
102
|
+
- @effect-app/schema@0.150.0-next.7
|
|
103
|
+
- @effect-app/vue@0.87.0-next.11
|
|
104
|
+
|
|
105
|
+
## 0.87.0-next.10
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- Updated dependencies [8897586]
|
|
110
|
+
- @effect-app/schema@0.150.0-next.6
|
|
111
|
+
- @effect-app/prelude@0.107.0-next.9
|
|
112
|
+
- @effect-app/vue@0.87.0-next.10
|
|
113
|
+
|
|
114
|
+
## 0.87.0-next.9
|
|
115
|
+
|
|
116
|
+
### Patch Changes
|
|
117
|
+
|
|
118
|
+
- c550ee5: updates
|
|
119
|
+
- Updated dependencies [c550ee5]
|
|
120
|
+
- @effect-app/prelude@0.107.0-next.8
|
|
121
|
+
- @effect-app/schema@0.150.0-next.5
|
|
122
|
+
- @effect-app/core@0.97.0-next.2
|
|
123
|
+
- @effect-app/vue@0.87.0-next.9
|
|
124
|
+
|
|
125
|
+
## 0.87.0-next.8
|
|
126
|
+
|
|
127
|
+
### Patch Changes
|
|
128
|
+
|
|
129
|
+
- Updated dependencies [82b3ca0]
|
|
130
|
+
- @effect-app/prelude@0.107.0-next.7
|
|
131
|
+
- @effect-app/vue@0.87.0-next.8
|
|
132
|
+
|
|
133
|
+
## 0.87.0-next.7
|
|
134
|
+
|
|
135
|
+
### Patch Changes
|
|
136
|
+
|
|
137
|
+
- Updated dependencies [ace7afb]
|
|
138
|
+
- @effect-app/schema@0.150.0-next.4
|
|
139
|
+
- @effect-app/prelude@0.107.0-next.6
|
|
140
|
+
- @effect-app/vue@0.87.0-next.7
|
|
141
|
+
|
|
142
|
+
## 0.87.0-next.6
|
|
143
|
+
|
|
144
|
+
### Patch Changes
|
|
145
|
+
|
|
146
|
+
- 3320864: cleanup schema ext
|
|
147
|
+
- Updated dependencies [3320864]
|
|
148
|
+
- @effect-app/prelude@0.107.0-next.5
|
|
149
|
+
- @effect-app/schema@0.150.0-next.3
|
|
150
|
+
- @effect-app/vue@0.87.0-next.6
|
|
151
|
+
|
|
152
|
+
## 0.87.0-next.5
|
|
153
|
+
|
|
154
|
+
### Patch Changes
|
|
155
|
+
|
|
156
|
+
- 52da734: mini form
|
|
157
|
+
- Updated dependencies [52da734]
|
|
158
|
+
- @effect-app/vue@0.87.0-next.5
|
|
159
|
+
|
|
160
|
+
## 0.87.0-next.4
|
|
161
|
+
|
|
162
|
+
### Patch Changes
|
|
163
|
+
|
|
164
|
+
- Updated dependencies [fde3e90]
|
|
165
|
+
- @effect-app/schema@0.150.0-next.2
|
|
166
|
+
- @effect-app/core@0.97.0-next.1
|
|
167
|
+
- @effect-app/prelude@0.107.0-next.4
|
|
168
|
+
- @effect-app/vue@0.87.0-next.4
|
|
169
|
+
|
|
170
|
+
## 0.87.0-next.3
|
|
171
|
+
|
|
172
|
+
### Patch Changes
|
|
173
|
+
|
|
174
|
+
- Updated dependencies [3d9e1ab]
|
|
175
|
+
- Updated dependencies [47d0151]
|
|
176
|
+
- @effect-app/prelude@0.107.0-next.3
|
|
177
|
+
- @effect-app/vue@0.87.0-next.3
|
|
178
|
+
|
|
3
179
|
## 0.87.0-next.2
|
|
4
180
|
|
|
5
181
|
### Patch Changes
|
package/_cjs/form.cjs
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildFieldInfoFromFields = buildFieldInfoFromFields;
|
|
7
|
+
exports.buildFormFromSchema = void 0;
|
|
8
|
+
exports.convertIn = convertIn;
|
|
9
|
+
exports.convertOut = convertOut;
|
|
10
|
+
exports.convertOutInt = convertOutInt;
|
|
11
|
+
exports.customSchemaErrors = void 0;
|
|
12
|
+
exports.getMetadataFromSchema = getMetadataFromSchema;
|
|
13
|
+
exports.translate = void 0;
|
|
14
|
+
var tsplus_module_1 = _interopRequireWildcard(require("@effect/schema/Parser"));
|
|
15
|
+
var tsplus_module_2 = _interopRequireWildcard(require("@effect-app/prelude"));
|
|
16
|
+
var tsplus_module_3 = _interopRequireWildcard(require("effect/Either"));
|
|
17
|
+
var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
18
|
+
var _schema = require("@effect-app/schema");
|
|
19
|
+
var _intl = require("@formatjs/intl");
|
|
20
|
+
var _vue = require("vue");
|
|
21
|
+
var JSONSchema = _interopRequireWildcard(require("@effect/schema/JSONSchema"));
|
|
22
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
24
|
+
function convertIn(v, type) {
|
|
25
|
+
return v === null ? "" : type === "text" ? v : `${v}`;
|
|
26
|
+
}
|
|
27
|
+
function convertOutInt(v, type) {
|
|
28
|
+
v = v == null ? v : v.trim();
|
|
29
|
+
const c = v === "" ? null : type === "float" ? parseFloat(v) : type === "int" ? parseInt(v) : v;
|
|
30
|
+
return c;
|
|
31
|
+
}
|
|
32
|
+
function convertOut(v, set, type) {
|
|
33
|
+
return set(convertOutInt(v, type));
|
|
34
|
+
}
|
|
35
|
+
function buildFieldInfoFromFields(fields) {
|
|
36
|
+
if (!_schema.AST.isTypeLiteral(fields.ast)) throw new Error("not a struct type");
|
|
37
|
+
return fields.ast.propertySignatures.reduce((prev, cur) => {
|
|
38
|
+
;
|
|
39
|
+
prev[cur.name] = buildFieldInfo(cur);
|
|
40
|
+
return prev;
|
|
41
|
+
}, {});
|
|
42
|
+
}
|
|
43
|
+
const f = Symbol();
|
|
44
|
+
class PhantomTypeParameter {}
|
|
45
|
+
// type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
|
|
46
|
+
// : never
|
|
47
|
+
const defaultIntl = (0, _intl.createIntl)({
|
|
48
|
+
locale: "en"
|
|
49
|
+
});
|
|
50
|
+
const translate = exports.translate = (0, _vue.ref)(defaultIntl.formatMessage.bind(defaultIntl));
|
|
51
|
+
const customSchemaErrors = exports.customSchemaErrors = (0, _vue.ref)(new Map());
|
|
52
|
+
function buildFieldInfo(property) {
|
|
53
|
+
const propertyKey = property.name;
|
|
54
|
+
const schema = _schema.S.make(property.type);
|
|
55
|
+
const metadata = getMetadataFromSchema(property.type); // TODO
|
|
56
|
+
const parse = tsplus_module_1.parseEither(schema);
|
|
57
|
+
const nullable = _schema.AST.isUnion(property.type) && property.type.types.includes(tsplus_module_2.Schema2.null.ast);
|
|
58
|
+
const realSelf = nullable && _schema.AST.isUnion(property.type) ? property.type.types.filter(_ => _ !== tsplus_module_2.Schema2.null.ast)[0] : property.type;
|
|
59
|
+
function renderError(e, v) {
|
|
60
|
+
const err = e.toString();
|
|
61
|
+
const custom = customSchemaErrors.value.get(realSelf);
|
|
62
|
+
return custom ? custom(err, e, v) : translate.value({
|
|
63
|
+
defaultMessage: "The entered value is not a valid {type}: {message}",
|
|
64
|
+
id: "validation.not_a_valid"
|
|
65
|
+
}, {
|
|
66
|
+
type: translate.value({
|
|
67
|
+
defaultMessage: (0, _vue.capitalize)(propertyKey.toString()),
|
|
68
|
+
id: `fieldNames.${String(propertyKey)}`
|
|
69
|
+
}),
|
|
70
|
+
message: metadata.description ? "expected " + metadata.description : err.slice(err.indexOf("Expected")) // TODO: this is not translated.
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
const stringRules = [v => v === null || metadata.minLength === undefined || v.length >= metadata.minLength || translate.value({
|
|
74
|
+
defaultMessage: "The field requires at least {minLength} characters",
|
|
75
|
+
id: "validation.string.minLength"
|
|
76
|
+
}, {
|
|
77
|
+
minLength: metadata.minLength
|
|
78
|
+
}), v => v === null || metadata.maxLength === undefined || v.length <= metadata.maxLength || translate.value({
|
|
79
|
+
defaultMessage: "The field cannot have more than {maxLength} characters",
|
|
80
|
+
id: "validation.string.maxLength"
|
|
81
|
+
}, {
|
|
82
|
+
maxLength: metadata.maxLength
|
|
83
|
+
})];
|
|
84
|
+
const numberRules = [v => v === null || metadata.minimum === undefined && metadata.exclusiveMinimum === undefined || metadata.exclusiveMinimum !== undefined && v > metadata.exclusiveMinimum || metadata.minimum !== undefined && v >= metadata.minimum || translate.value({
|
|
85
|
+
defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
|
|
86
|
+
id: "validation.number.min"
|
|
87
|
+
}, {
|
|
88
|
+
isExclusive: metadata.exclusiveMinimum !== undefined,
|
|
89
|
+
minimum: metadata.exclusiveMinimum ?? metadata.maximum
|
|
90
|
+
}), v => v === null || metadata.maximum === undefined && metadata.exclusiveMaximum === undefined || metadata.exclusiveMaximum !== undefined && v < metadata.exclusiveMaximum || metadata.maximum !== undefined && v <= metadata.maximum || translate.value({
|
|
91
|
+
defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
|
|
92
|
+
id: "validation.number.max"
|
|
93
|
+
}, {
|
|
94
|
+
isExclusive: metadata.exclusiveMaximum !== undefined,
|
|
95
|
+
maximum: metadata.exclusiveMaximum ?? metadata.maximum
|
|
96
|
+
})];
|
|
97
|
+
const parseRule = v => tsplus_module_4.pipe(parse(v), _ => tsplus_module_3.match(_, {
|
|
98
|
+
onLeft: _ => renderError(_, v),
|
|
99
|
+
onRight: () => true
|
|
100
|
+
}));
|
|
101
|
+
const rules = [...(metadata.type === "text" ? stringRules : numberRules), parseRule];
|
|
102
|
+
const info = {
|
|
103
|
+
type: metadata.type,
|
|
104
|
+
rules: [v => !metadata.required || v !== "" || translate.value({
|
|
105
|
+
defaultMessage: "The field cannot be empty",
|
|
106
|
+
id: "validation.empty"
|
|
107
|
+
}), v => {
|
|
108
|
+
const converted = convertOutInt(v, metadata.type);
|
|
109
|
+
for (const r of rules) {
|
|
110
|
+
const res = r(converted);
|
|
111
|
+
if (res !== true) {
|
|
112
|
+
return res;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return true;
|
|
116
|
+
}],
|
|
117
|
+
metadata
|
|
118
|
+
};
|
|
119
|
+
return info;
|
|
120
|
+
}
|
|
121
|
+
const buildFormFromSchema = (s, state, onSubmit) => {
|
|
122
|
+
const fields = buildFieldInfoFromFields(s);
|
|
123
|
+
const parse = tsplus_module_1.parseSync(s);
|
|
124
|
+
const isDirty = (0, _vue.ref)(false);
|
|
125
|
+
const isValid = (0, _vue.ref)(true);
|
|
126
|
+
const submit1 = onSubmit => async e => {
|
|
127
|
+
const r = await e;
|
|
128
|
+
if (!r.valid) return;
|
|
129
|
+
return onSubmit(parse(state.value));
|
|
130
|
+
};
|
|
131
|
+
const submit = submit1(onSubmit);
|
|
132
|
+
(0, _vue.watch)(state, v => {
|
|
133
|
+
// TODO: do better
|
|
134
|
+
isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
|
|
135
|
+
}, {
|
|
136
|
+
deep: true
|
|
137
|
+
});
|
|
138
|
+
const submitFromState = () => submit(Promise.resolve({
|
|
139
|
+
valid: isValid.value
|
|
140
|
+
}));
|
|
141
|
+
return {
|
|
142
|
+
fields,
|
|
143
|
+
submit,
|
|
144
|
+
submitFromState,
|
|
145
|
+
isDirty,
|
|
146
|
+
isValid
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
exports.buildFormFromSchema = buildFormFromSchema;
|
|
150
|
+
function getMetadataFromSchema(ast) {
|
|
151
|
+
const nullable = _schema.AST.isUnion(ast) && ast.types.includes(tsplus_module_2.Schema2.null.ast);
|
|
152
|
+
const realSelf = nullable && _schema.AST.isUnion(ast) ? ast.types.filter(_ => _ !== tsplus_module_2.Schema2.null.ast)[0] : ast;
|
|
153
|
+
let jschema;
|
|
154
|
+
try {
|
|
155
|
+
jschema = JSONSchema.to(_schema.S.make(realSelf));
|
|
156
|
+
} catch (err) {
|
|
157
|
+
jschema = {};
|
|
158
|
+
console.warn("error getting jsonschema from ", err, ast);
|
|
159
|
+
}
|
|
160
|
+
const isNumber = jschema.type === "number" || jschema.type === "integer";
|
|
161
|
+
const isInt = jschema.type === "integer";
|
|
162
|
+
return {
|
|
163
|
+
type: isInt ? "int" : isNumber ? "float" : "text",
|
|
164
|
+
minimum: jschema.minimum,
|
|
165
|
+
exclusiveMinimum: jschema.exclusiveMinimum,
|
|
166
|
+
maximum: jschema.maximum,
|
|
167
|
+
exclusiveMaximum: jschema.exclusiveMaximum,
|
|
168
|
+
minLength: jschema.minLength,
|
|
169
|
+
maxLength: jschema.maxLength,
|
|
170
|
+
description: jschema.description,
|
|
171
|
+
required: !nullable
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=form.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.cjs","names":["_schema","require","_intl","_vue","JSONSchema","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","convertIn","v","type","convertOutInt","trim","c","parseFloat","parseInt","convertOut","buildFieldInfoFromFields","fields","AST","isTypeLiteral","ast","Error","propertySignatures","reduce","prev","cur","name","buildFieldInfo","f","Symbol","PhantomTypeParameter","defaultIntl","createIntl","locale","translate","exports","ref","formatMessage","bind","customSchemaErrors","Map","property","propertyKey","schema","S","make","metadata","getMetadataFromSchema","parse","tsplus_module_1","parseEither","nullable","isUnion","types","includes","tsplus_module_2","Schema2","null","realSelf","filter","_","renderError","err","toString","custom","value","defaultMessage","id","capitalize","String","message","description","slice","indexOf","stringRules","minLength","undefined","length","maxLength","numberRules","minimum","exclusiveMinimum","isExclusive","maximum","exclusiveMaximum","parseRule","tsplus_module_4","pipe","tsplus_module_3","match","onLeft","onRight","rules","info","required","converted","res","buildFormFromSchema","s","state","onSubmit","parseSync","isDirty","isValid","submit1","valid","submit","watch","JSON","stringify","deep","submitFromState","Promise","resolve","jschema","to","console","warn","isNumber","isInt"],"sources":["../_src/form.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/_cjs/hooks.cjs
CHANGED
|
@@ -73,10 +73,16 @@ function useSafeQueryWithArg(self, arg, config) {
|
|
|
73
73
|
return useSafeQueryWithArg_(self, self.mapPath, arg, config);
|
|
74
74
|
}
|
|
75
75
|
function useSafeQuery(self, config) {
|
|
76
|
-
return useSafeQuery_(self.mapPath, self, config);
|
|
76
|
+
return useSafeQuery_(self.mapPath, () => self, config);
|
|
77
77
|
}
|
|
78
78
|
function useSafeQueryWithArg_(self, mapPath, arg, config) {
|
|
79
|
-
|
|
79
|
+
const arr = arg;
|
|
80
|
+
const r = typeof arr === "function" ? {
|
|
81
|
+
get value() {
|
|
82
|
+
return arr();
|
|
83
|
+
}
|
|
84
|
+
} : (0, _vue.ref)(arg);
|
|
85
|
+
return useSafeQuery_((0, _vue.computed)(() => mapPath(r.value)), () => self(r.value), config);
|
|
80
86
|
}
|
|
81
87
|
function useSafeQuery_(key, self, config) {
|
|
82
88
|
// const [result, latestSuccess, execute] = make(self)
|
|
@@ -107,7 +113,7 @@ function useSafeQuery_(key, self, config) {
|
|
|
107
113
|
// })
|
|
108
114
|
// }
|
|
109
115
|
// const swr = useSWRV<A, E>(key, () => execWithInterruption().then(_ => _?.body as any)) // Effect.runPromise(self.provide(Layers))
|
|
110
|
-
const swr = useSWRV(key, () => _internal.run.value(self).then(_ => _.body), config);
|
|
116
|
+
const swr = useSWRV(key, () => _internal.run.value(self()).then(_ => _.body), config);
|
|
111
117
|
const result = (0, _vue.computed)(() => swrToQuery({
|
|
112
118
|
data: swr.data.value,
|
|
113
119
|
error: swr.error.value,
|
package/_cjs/hooks.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.cjs","names":["swrv","_interopRequireWildcard","require","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useSWRV","mutate","exports","swrToQuery","error","isValidating","tsplus_module_1","Refreshing","fail","data","Done","undefined","succeed","Loading","Initial","useMutate","self","fn","run","value","then","_","body","mapPath","useMutateWithArg","arg","useSafeQueryWithArg","config","useSafeQueryWithArg_","useSafeQuery","useSafeQuery_","key","swr","result","
|
|
1
|
+
{"version":3,"file":"hooks.cjs","names":["swrv","_interopRequireWildcard","require","_vue","_internal","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","useSWRV","mutate","exports","swrToQuery","error","isValidating","tsplus_module_1","Refreshing","fail","data","Done","undefined","succeed","Loading","Initial","useMutate","self","fn","run","value","then","_","body","mapPath","useMutateWithArg","arg","useSafeQueryWithArg","config","useSafeQueryWithArg_","useSafeQuery","useSafeQuery_","arr","ref","computed","key","swr","result","latestSuccess","tsplus_module_2","isSuccess","tsplus_module_3","isRight","current","right","tsplus_module_4","isSome","previous","tsplus_module_5","tuple","useSafeQueryLegacy","execute","make","sem","tsplus_module_6","unsafeMakeSemaphore","withPermit","withPermits","fib","runNew","tap","fork","newFiber","sync","ex","flatMap","suspend","zipRight","tsplus_module_7","interrupt","pipe","await","exec","catch","err","JSON","stringify","includes","shallowRef","isInitializing","queryResult","map","hasValue","useMutation","state","_tag","handleExit","exit","tsplus_module_8","tsplus_module_9","failureOption","cause","left","died","dieOption","tsplus_module_10","getOrUndefined","interrupted","interruptOption","InterruptedException","Error","fst","snd","effect","abortSignal","f","cancel","addEventListener","console","join"],"sources":["../_src/hooks.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import { AST } from "@effect-app/schema/schema"
|
|
1
|
+
import { AST, S } from "@effect-app/schema"
|
|
2
|
+
import type { Schema } from "@effect-app/schema"
|
|
4
3
|
import { createIntl, type IntlFormatters } from "@formatjs/intl"
|
|
5
|
-
import type { Simplify } from "effect/Types"
|
|
6
4
|
import type { Ref } from "vue"
|
|
7
5
|
import { capitalize, ref, watch } from "vue"
|
|
8
6
|
|
|
7
|
+
import * as JSONSchema from "@effect/schema/JSONSchema"
|
|
8
|
+
import type { ParseError } from "@effect/schema/ParseResult"
|
|
9
|
+
|
|
9
10
|
export function convertIn(v: string | null, type?: "text" | "float" | "int") {
|
|
10
11
|
return v === null ? "" : type === "text" ? v : `${v}`
|
|
11
12
|
}
|
|
@@ -20,19 +21,17 @@ export function convertOut(v: string, set: (v: unknown | null) => void, type?: "
|
|
|
20
21
|
return set(convertOutInt(v, type))
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
export function buildFieldInfoFromFields<
|
|
24
|
-
fields:
|
|
24
|
+
export function buildFieldInfoFromFields<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(
|
|
25
|
+
fields: Schema<From, To>
|
|
25
26
|
) {
|
|
26
|
-
|
|
27
|
+
if (!AST.isTypeLiteral(fields.ast)) throw new Error("not a struct type")
|
|
28
|
+
return fields.ast.propertySignatures.reduce(
|
|
27
29
|
(prev, cur) => {
|
|
28
|
-
prev[cur] = buildFieldInfo(
|
|
30
|
+
;(prev as any)[cur.name] = buildFieldInfo(cur)
|
|
29
31
|
return prev
|
|
30
32
|
},
|
|
31
33
|
{} as {
|
|
32
|
-
[K in keyof
|
|
33
|
-
Schema.From<GetSchemaFromProp<Fields[K]>>,
|
|
34
|
-
Schema.To<GetSchemaFromProp<Fields[K]>>
|
|
35
|
-
>
|
|
34
|
+
[K in keyof To]: FieldInfo<To[K]>
|
|
36
35
|
}
|
|
37
36
|
)
|
|
38
37
|
}
|
|
@@ -52,43 +51,45 @@ abstract class PhantomTypeParameter<
|
|
|
52
51
|
readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType
|
|
53
52
|
}
|
|
54
53
|
}
|
|
55
|
-
export interface FieldInfo<
|
|
54
|
+
export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, { out: Tout }> {
|
|
56
55
|
rules: ((v: string) => boolean | string)[]
|
|
57
56
|
metadata: FieldMetadata
|
|
58
57
|
type: "text" | "float" | "int" // todo; multi-line vs single line text
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
|
|
62
|
-
|
|
60
|
+
// type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
|
|
61
|
+
// : never
|
|
63
62
|
|
|
64
63
|
const defaultIntl = createIntl({ locale: "en" })
|
|
65
64
|
export const translate = ref<IntlFormatters["formatMessage"]>(defaultIntl.formatMessage.bind(defaultIntl))
|
|
66
|
-
export const customSchemaErrors = ref<Map<
|
|
65
|
+
export const customSchemaErrors = ref<Map<AST.AST, (message: string, e: unknown, v: unknown) => string>>(
|
|
67
66
|
new Map()
|
|
68
67
|
)
|
|
69
68
|
|
|
70
69
|
function buildFieldInfo(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
const
|
|
70
|
+
property: AST.PropertySignature
|
|
71
|
+
): FieldInfo<any> {
|
|
72
|
+
const propertyKey = property.name
|
|
73
|
+
const schema = S.make(property.type)
|
|
74
|
+
const metadata = getMetadataFromSchema(property.type) // TODO
|
|
76
75
|
const parse = schema.parseEither
|
|
77
76
|
|
|
78
|
-
const nullable = AST.isUnion(
|
|
77
|
+
const nullable = AST.isUnion(property.type) && property.type.types.includes(Schema2.null.ast)
|
|
78
|
+
const realSelf = nullable && AST.isUnion(property.type)
|
|
79
|
+
? property.type.types.filter((_) => _ !== Schema2.null.ast)[0]!
|
|
80
|
+
: property.type
|
|
79
81
|
|
|
80
|
-
function renderError(e:
|
|
81
|
-
const err =
|
|
82
|
-
const custom = customSchemaErrors.value.get(
|
|
83
|
-
?? (nullable?.self ? customSchemaErrors.value.get(nullable.self) : undefined)
|
|
82
|
+
function renderError(e: ParseError, v: unknown) {
|
|
83
|
+
const err = e.toString()
|
|
84
|
+
const custom = customSchemaErrors.value.get(realSelf)
|
|
84
85
|
return custom ? custom(err, e, v) : translate.value(
|
|
85
86
|
{ defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" },
|
|
86
87
|
{
|
|
87
88
|
type: translate.value({
|
|
88
|
-
defaultMessage: capitalize(
|
|
89
|
-
id: `fieldNames.${String(
|
|
89
|
+
defaultMessage: capitalize(propertyKey.toString()),
|
|
90
|
+
id: `fieldNames.${String(propertyKey)}`
|
|
90
91
|
}),
|
|
91
|
-
message: err.slice(err.indexOf("
|
|
92
|
+
message: metadata.description ? "expected " + metadata.description : err.slice(err.indexOf("Expected")) // TODO: this is not translated.
|
|
92
93
|
}
|
|
93
94
|
)
|
|
94
95
|
}
|
|
@@ -119,22 +120,28 @@ function buildFieldInfo(
|
|
|
119
120
|
const numberRules = [
|
|
120
121
|
(v: number | null) =>
|
|
121
122
|
v === null
|
|
122
|
-
|| metadata.minimum === undefined
|
|
123
|
-
|| metadata.
|
|
124
|
-
||
|
|
123
|
+
|| (metadata.minimum === undefined && metadata.exclusiveMinimum === undefined)
|
|
124
|
+
|| metadata.exclusiveMinimum !== undefined && v > metadata.exclusiveMinimum
|
|
125
|
+
|| metadata.minimum !== undefined && v >= metadata.minimum
|
|
125
126
|
|| translate.value({
|
|
126
127
|
defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
|
|
127
128
|
id: "validation.number.min"
|
|
128
|
-
}, {
|
|
129
|
+
}, {
|
|
130
|
+
isExclusive: metadata.exclusiveMinimum !== undefined,
|
|
131
|
+
minimum: metadata.exclusiveMinimum ?? metadata.maximum
|
|
132
|
+
}),
|
|
129
133
|
(v: number | null) =>
|
|
130
134
|
v === null
|
|
131
|
-
|| metadata.maximum === undefined
|
|
132
|
-
|| metadata.
|
|
133
|
-
||
|
|
135
|
+
|| (metadata.maximum === undefined && metadata.exclusiveMaximum === undefined)
|
|
136
|
+
|| metadata.exclusiveMaximum !== undefined && v < metadata.exclusiveMaximum
|
|
137
|
+
|| metadata.maximum !== undefined && v <= metadata.maximum
|
|
134
138
|
|| translate.value({
|
|
135
139
|
defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
|
|
136
140
|
id: "validation.number.max"
|
|
137
|
-
}, {
|
|
141
|
+
}, {
|
|
142
|
+
isExclusive: metadata.exclusiveMaximum !== undefined,
|
|
143
|
+
maximum: metadata.exclusiveMaximum ?? metadata.maximum
|
|
144
|
+
})
|
|
138
145
|
]
|
|
139
146
|
|
|
140
147
|
const parseRule = (v: unknown) =>
|
|
@@ -144,10 +151,7 @@ function buildFieldInfo(
|
|
|
144
151
|
_.match(
|
|
145
152
|
{
|
|
146
153
|
onLeft: (_) => renderError(_, v),
|
|
147
|
-
onRight: (
|
|
148
|
-
optErr.isSome()
|
|
149
|
-
? renderError(optErr.value, v)
|
|
150
|
-
: true
|
|
154
|
+
onRight: () => true
|
|
151
155
|
}
|
|
152
156
|
)
|
|
153
157
|
)
|
|
@@ -187,17 +191,18 @@ function buildFieldInfo(
|
|
|
187
191
|
}
|
|
188
192
|
|
|
189
193
|
export const buildFormFromSchema = <
|
|
190
|
-
|
|
194
|
+
From extends Record<PropertyKey, any>,
|
|
195
|
+
To extends Record<PropertyKey, any>,
|
|
191
196
|
OnSubmitA
|
|
192
197
|
>(
|
|
193
198
|
s: Schema<
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
From,
|
|
200
|
+
To
|
|
196
201
|
>,
|
|
197
|
-
state: Ref<
|
|
198
|
-
onSubmit: (a:
|
|
202
|
+
state: Ref<From>,
|
|
203
|
+
onSubmit: (a: To) => Promise<OnSubmitA>
|
|
199
204
|
) => {
|
|
200
|
-
const fields = buildFieldInfoFromFields(s
|
|
205
|
+
const fields = buildFieldInfoFromFields(s)
|
|
201
206
|
const parse = s.parseSync
|
|
202
207
|
const isDirty = ref(false)
|
|
203
208
|
const isValid = ref(true)
|
|
@@ -222,3 +227,44 @@ export const buildFormFromSchema = <
|
|
|
222
227
|
|
|
223
228
|
return { fields, submit, submitFromState, isDirty, isValid }
|
|
224
229
|
}
|
|
230
|
+
|
|
231
|
+
export function getMetadataFromSchema(
|
|
232
|
+
ast: AST.AST
|
|
233
|
+
): {
|
|
234
|
+
type: "int" | "float" | "text"
|
|
235
|
+
minimum?: number
|
|
236
|
+
maximum?: number
|
|
237
|
+
exclusiveMinimum?: number
|
|
238
|
+
exclusiveMaximum?: number
|
|
239
|
+
minLength?: number
|
|
240
|
+
maxLength?: number
|
|
241
|
+
required: boolean
|
|
242
|
+
description?: string
|
|
243
|
+
} {
|
|
244
|
+
const nullable = AST.isUnion(ast) && ast.types.includes(Schema2.null.ast)
|
|
245
|
+
const realSelf = nullable && AST.isUnion(ast)
|
|
246
|
+
? ast.types.filter((_) => _ !== Schema2.null.ast)[0]!
|
|
247
|
+
: ast
|
|
248
|
+
|
|
249
|
+
let jschema: any
|
|
250
|
+
try {
|
|
251
|
+
jschema = JSONSchema.to(S.make(realSelf)) as any
|
|
252
|
+
} catch (err) {
|
|
253
|
+
jschema = {}
|
|
254
|
+
console.warn("error getting jsonschema from ", err, ast)
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const isNumber = jschema.type === "number" || jschema.type === "integer"
|
|
258
|
+
const isInt = jschema.type === "integer"
|
|
259
|
+
return {
|
|
260
|
+
type: isInt ? "int" as const : isNumber ? "float" as const : "text" as const,
|
|
261
|
+
minimum: jschema.minimum,
|
|
262
|
+
exclusiveMinimum: jschema.exclusiveMinimum,
|
|
263
|
+
maximum: jschema.maximum,
|
|
264
|
+
exclusiveMaximum: jschema.exclusiveMaximum,
|
|
265
|
+
minLength: jschema.minLength,
|
|
266
|
+
maxLength: jschema.maxLength,
|
|
267
|
+
description: jschema.description,
|
|
268
|
+
required: !nullable
|
|
269
|
+
}
|
|
270
|
+
}
|
package/_src/hooks.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ApiConfig, FetchResponse } from "@effect-app/prelude/client"
|
|
|
3
3
|
import { InterruptedException } from "effect/Cause"
|
|
4
4
|
import * as swrv from "swrv"
|
|
5
5
|
import type { fetcherFn, IKey, IResponse } from "swrv/dist/types.js"
|
|
6
|
-
import type { Ref } from "vue"
|
|
6
|
+
import type { ComputedRef, Ref } from "vue"
|
|
7
7
|
import { computed, ref, shallowRef } from "vue"
|
|
8
8
|
import { run } from "./internal.js"
|
|
9
9
|
|
|
@@ -64,10 +64,12 @@ export function useMutateWithArg<Arg, E, A>(
|
|
|
64
64
|
return (arg: Arg) => mutate(self.mapPath(arg), fn(arg))
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T)
|
|
68
|
+
|
|
67
69
|
// TODO: same trick with mutations/actions
|
|
68
70
|
export function useSafeQueryWithArg<Arg, E, A>(
|
|
69
71
|
self: ((arg: Arg) => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>) & { mapPath: (arg: Arg) => string },
|
|
70
|
-
arg: Arg
|
|
72
|
+
arg: Arg | WatchSource<Arg>,
|
|
71
73
|
config?: swrv.IConfig<A, fetcherFn<A>> | undefined
|
|
72
74
|
) {
|
|
73
75
|
return useSafeQueryWithArg_(self, self.mapPath, arg, config)
|
|
@@ -77,21 +79,29 @@ export function useSafeQuery<E, A>(
|
|
|
77
79
|
self: Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>> & { mapPath: string },
|
|
78
80
|
config?: swrv.IConfig<A, fetcherFn<A>> | undefined
|
|
79
81
|
) {
|
|
80
|
-
return useSafeQuery_(self.mapPath, self, config)
|
|
82
|
+
return useSafeQuery_(self.mapPath, () => self, config)
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export function useSafeQueryWithArg_<Arg, E, A>(
|
|
84
86
|
self: (arg: Arg) => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>,
|
|
85
87
|
mapPath: (arg: Arg) => string,
|
|
86
|
-
arg: Arg
|
|
88
|
+
arg: Arg | WatchSource<Arg>,
|
|
87
89
|
config?: swrv.IConfig<A, fetcherFn<A>> | undefined
|
|
88
90
|
) {
|
|
89
|
-
|
|
91
|
+
const arr = arg
|
|
92
|
+
const r: { value: Arg } = typeof arr === "function"
|
|
93
|
+
? {
|
|
94
|
+
get value() {
|
|
95
|
+
return (arr as any)()
|
|
96
|
+
}
|
|
97
|
+
} as any
|
|
98
|
+
: ref(arg)
|
|
99
|
+
return useSafeQuery_(computed(() => mapPath(r.value)), () => self(r.value), config)
|
|
90
100
|
}
|
|
91
101
|
|
|
92
102
|
export function useSafeQuery_<E, A>(
|
|
93
|
-
key: string
|
|
94
|
-
self: Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>,
|
|
103
|
+
key: string | WatchSource<string>,
|
|
104
|
+
self: () => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>,
|
|
95
105
|
config?: swrv.IConfig<A, fetcherFn<A>> | undefined
|
|
96
106
|
) {
|
|
97
107
|
// const [result, latestSuccess, execute] = make(self)
|
|
@@ -125,7 +135,7 @@ export function useSafeQuery_<E, A>(
|
|
|
125
135
|
// }
|
|
126
136
|
|
|
127
137
|
// const swr = useSWRV<A, E>(key, () => execWithInterruption().then(_ => _?.body as any)) // Effect.runPromise(self.provide(Layers))
|
|
128
|
-
const swr = useSWRV<A, E>(key, () => run.value(self).then((_) => _.body), config)
|
|
138
|
+
const swr = useSWRV<A, E>(key, () => run.value(self()).then((_) => _.body), config)
|
|
129
139
|
const result = computed(() =>
|
|
130
140
|
swrToQuery({ data: swr.data.value, error: swr.error.value, isValidating: swr.isValidating.value })
|
|
131
141
|
) // ref<QueryResult<E, A>>()
|
package/_src/routeParams.ts
CHANGED
package/dist/form.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AST } from "@effect-app/schema";
|
|
2
|
+
import type { Schema } from "@effect-app/schema";
|
|
3
|
+
import type { Ref } from "vue";
|
|
4
|
+
export declare function convertIn(v: string | null, type?: "text" | "float" | "int"): string;
|
|
5
|
+
export declare function convertOutInt(v: string, type?: "text" | "float" | "int"): string | number | null;
|
|
6
|
+
export declare function convertOut(v: string, set: (v: unknown | null) => void, type?: "text" | "float" | "int"): void;
|
|
7
|
+
export declare function buildFieldInfoFromFields<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>>(fields: Schema<From, To>): { [K in keyof To]: FieldInfo<To[K]>; };
|
|
8
|
+
export interface FieldMetadata {
|
|
9
|
+
minLength: number | undefined;
|
|
10
|
+
maxLength: number | undefined;
|
|
11
|
+
required: boolean;
|
|
12
|
+
}
|
|
13
|
+
declare const f: unique symbol;
|
|
14
|
+
declare abstract class PhantomTypeParameter<Identifier extends keyof any, InstantiatedType> {
|
|
15
|
+
protected abstract readonly _: {
|
|
16
|
+
readonly [NameP in Identifier]: (_: InstantiatedType) => InstantiatedType;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface FieldInfo<Tout> extends PhantomTypeParameter<typeof f, {
|
|
20
|
+
out: Tout;
|
|
21
|
+
}> {
|
|
22
|
+
rules: ((v: string) => boolean | string)[];
|
|
23
|
+
metadata: FieldMetadata;
|
|
24
|
+
type: "text" | "float" | "int";
|
|
25
|
+
}
|
|
26
|
+
export declare const translate: Ref<{
|
|
27
|
+
(descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>> | undefined, opts?: import("intl-messageformat").Options | undefined): string;
|
|
28
|
+
<T extends unknown>(descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | T | import("intl-messageformat").FormatXMLElementFn<T>> | undefined, opts?: import("intl-messageformat").Options | undefined): string | T | (string | T)[];
|
|
29
|
+
}>;
|
|
30
|
+
export declare const customSchemaErrors: Ref<Map<AST.AST, (message: string, e: unknown, v: unknown) => string>>;
|
|
31
|
+
export declare const buildFormFromSchema: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, OnSubmitA>(s: Schema<From, To>, state: Ref<From>, onSubmit: (a: To) => Promise<OnSubmitA>) => {
|
|
32
|
+
fields: { [K in keyof To]: FieldInfo<To[K]>; };
|
|
33
|
+
submit: <T extends Promise<{
|
|
34
|
+
valid: boolean;
|
|
35
|
+
}>>(e: T) => Promise<OnSubmitA | undefined>;
|
|
36
|
+
submitFromState: () => Promise<OnSubmitA | undefined>;
|
|
37
|
+
isDirty: Ref<boolean>;
|
|
38
|
+
isValid: Ref<boolean>;
|
|
39
|
+
};
|
|
40
|
+
export declare function getMetadataFromSchema(ast: AST.AST): {
|
|
41
|
+
type: "int" | "float" | "text";
|
|
42
|
+
minimum?: number;
|
|
43
|
+
maximum?: number;
|
|
44
|
+
exclusiveMinimum?: number;
|
|
45
|
+
exclusiveMaximum?: number;
|
|
46
|
+
minLength?: number;
|
|
47
|
+
maxLength?: number;
|
|
48
|
+
required: boolean;
|
|
49
|
+
description?: string;
|
|
50
|
+
};
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../_src/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAK,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAM9B,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,UAE1E;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,0BAIvE;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,QAEtG;AAED,wBAAgB,wBAAwB,CAAC,IAAI,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,EACjH,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,0CAYzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,QAAA,MAAM,CAAC,eAAW,CAAA;AAClB,uBAAe,oBAAoB,CACjC,UAAU,SAAS,MAAM,GAAG,EAC5B,gBAAgB;IAEhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC7B,QAAQ,EAAE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,gBAAgB,KAAK,gBAAgB;KAC1E,CAAA;CACF;AACD,MAAM,WAAW,SAAS,CAAC,IAAI,CAAE,SAAQ,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC;IACpF,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;IAC1C,QAAQ,EAAE,aAAa,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAA;CAC/B;AAMD,eAAO,MAAM,SAAS;;;EAAoF,CAAA;AAC1G,eAAO,MAAM,kBAAkB,6BAA8B,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM,EAErG,CAAA;AA8HD,eAAO,MAAM,mBAAmB,6FAK3B,OACD,IAAI,EACJ,EAAE,CACH,SACM,IAAI,IAAI,CAAC,gBACF,EAAE,KAAK,QAAQ,SAAS,CAAC;;;eAOmD,OAAO;;;;;CAmBlG,CAAA;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,GAAG,GACX;IACD,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CA2BA"}
|
package/dist/form.js
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import * as tsplus_module_1 from "@effect/schema/Parser";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/prelude";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Either";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/core/Function";
|
|
5
|
+
import { AST, S } from "@effect-app/schema";
|
|
6
|
+
import { createIntl } from "@formatjs/intl";
|
|
7
|
+
import { capitalize, ref, watch } from "vue";
|
|
8
|
+
import * as JSONSchema from "@effect/schema/JSONSchema";
|
|
9
|
+
export function convertIn(v, type) {
|
|
10
|
+
return v === null ? "" : type === "text" ? v : `${v}`;
|
|
11
|
+
}
|
|
12
|
+
export function convertOutInt(v, type) {
|
|
13
|
+
v = v == null ? v : v.trim();
|
|
14
|
+
const c = v === "" ? null : type === "float" ? parseFloat(v) : type === "int" ? parseInt(v) : v;
|
|
15
|
+
return c;
|
|
16
|
+
}
|
|
17
|
+
export function convertOut(v, set, type) {
|
|
18
|
+
return set(convertOutInt(v, type));
|
|
19
|
+
}
|
|
20
|
+
export function buildFieldInfoFromFields(fields) {
|
|
21
|
+
if (!AST.isTypeLiteral(fields.ast))
|
|
22
|
+
throw new Error("not a struct type");
|
|
23
|
+
return fields.ast.propertySignatures.reduce((prev, cur) => {
|
|
24
|
+
;
|
|
25
|
+
prev[cur.name] = buildFieldInfo(cur);
|
|
26
|
+
return prev;
|
|
27
|
+
}, {});
|
|
28
|
+
}
|
|
29
|
+
const f = Symbol();
|
|
30
|
+
class PhantomTypeParameter {
|
|
31
|
+
}
|
|
32
|
+
// type GetSchemaFromProp<T> = T extends Field<infer S, any, any, any> ? S
|
|
33
|
+
// : never
|
|
34
|
+
const defaultIntl = createIntl({ locale: "en" });
|
|
35
|
+
export const translate = ref(defaultIntl.formatMessage.bind(defaultIntl));
|
|
36
|
+
export const customSchemaErrors = ref(new Map());
|
|
37
|
+
function buildFieldInfo(property) {
|
|
38
|
+
const propertyKey = property.name;
|
|
39
|
+
const schema = S.make(property.type);
|
|
40
|
+
const metadata = getMetadataFromSchema(property.type); // TODO
|
|
41
|
+
const parse = tsplus_module_1.parseEither(schema);
|
|
42
|
+
const nullable = AST.isUnion(property.type) && property.type.types.includes(tsplus_module_2.Schema2.null.ast);
|
|
43
|
+
const realSelf = nullable && AST.isUnion(property.type)
|
|
44
|
+
? property.type.types.filter((_) => _ !== tsplus_module_2.Schema2.null.ast)[0]
|
|
45
|
+
: property.type;
|
|
46
|
+
function renderError(e, v) {
|
|
47
|
+
const err = e.toString();
|
|
48
|
+
const custom = customSchemaErrors.value.get(realSelf);
|
|
49
|
+
return custom ? custom(err, e, v) : translate.value({ defaultMessage: "The entered value is not a valid {type}: {message}", id: "validation.not_a_valid" }, {
|
|
50
|
+
type: translate.value({
|
|
51
|
+
defaultMessage: capitalize(propertyKey.toString()),
|
|
52
|
+
id: `fieldNames.${String(propertyKey)}`
|
|
53
|
+
}),
|
|
54
|
+
message: metadata.description ? "expected " + metadata.description : err.slice(err.indexOf("Expected")) // TODO: this is not translated.
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const stringRules = [
|
|
58
|
+
(v) => v === null
|
|
59
|
+
|| metadata.minLength === undefined
|
|
60
|
+
|| v.length >= metadata.minLength
|
|
61
|
+
|| translate.value({
|
|
62
|
+
defaultMessage: "The field requires at least {minLength} characters",
|
|
63
|
+
id: "validation.string.minLength"
|
|
64
|
+
}, {
|
|
65
|
+
minLength: metadata.minLength
|
|
66
|
+
}),
|
|
67
|
+
(v) => v === null
|
|
68
|
+
|| metadata.maxLength === undefined
|
|
69
|
+
|| v.length <= metadata.maxLength
|
|
70
|
+
|| translate.value({
|
|
71
|
+
defaultMessage: "The field cannot have more than {maxLength} characters",
|
|
72
|
+
id: "validation.string.maxLength"
|
|
73
|
+
}, {
|
|
74
|
+
maxLength: metadata.maxLength
|
|
75
|
+
})
|
|
76
|
+
];
|
|
77
|
+
const numberRules = [
|
|
78
|
+
(v) => v === null
|
|
79
|
+
|| (metadata.minimum === undefined && metadata.exclusiveMinimum === undefined)
|
|
80
|
+
|| metadata.exclusiveMinimum !== undefined && v > metadata.exclusiveMinimum
|
|
81
|
+
|| metadata.minimum !== undefined && v >= metadata.minimum
|
|
82
|
+
|| translate.value({
|
|
83
|
+
defaultMessage: "The value should be {isExclusive, select, true {larger than} other {at least}} {minimum}",
|
|
84
|
+
id: "validation.number.min"
|
|
85
|
+
}, {
|
|
86
|
+
isExclusive: metadata.exclusiveMinimum !== undefined,
|
|
87
|
+
minimum: metadata.exclusiveMinimum ?? metadata.maximum
|
|
88
|
+
}),
|
|
89
|
+
(v) => v === null
|
|
90
|
+
|| (metadata.maximum === undefined && metadata.exclusiveMaximum === undefined)
|
|
91
|
+
|| metadata.exclusiveMaximum !== undefined && v < metadata.exclusiveMaximum
|
|
92
|
+
|| metadata.maximum !== undefined && v <= metadata.maximum
|
|
93
|
+
|| translate.value({
|
|
94
|
+
defaultMessage: "The value should be {isExclusive, select, true {smaller than} other {at most}} {maximum}",
|
|
95
|
+
id: "validation.number.max"
|
|
96
|
+
}, {
|
|
97
|
+
isExclusive: metadata.exclusiveMaximum !== undefined,
|
|
98
|
+
maximum: metadata.exclusiveMaximum ?? metadata.maximum
|
|
99
|
+
})
|
|
100
|
+
];
|
|
101
|
+
const parseRule = (v) => tsplus_module_4.pipe(parse(v), (_) => tsplus_module_3.match(_, {
|
|
102
|
+
onLeft: (_) => renderError(_, v),
|
|
103
|
+
onRight: () => true
|
|
104
|
+
}));
|
|
105
|
+
const rules = [
|
|
106
|
+
...(metadata.type === "text"
|
|
107
|
+
? stringRules
|
|
108
|
+
: numberRules),
|
|
109
|
+
parseRule
|
|
110
|
+
];
|
|
111
|
+
const info = {
|
|
112
|
+
type: metadata.type,
|
|
113
|
+
rules: [
|
|
114
|
+
(v) => !metadata.required
|
|
115
|
+
|| v !== ""
|
|
116
|
+
|| translate.value({ defaultMessage: "The field cannot be empty", id: "validation.empty" }),
|
|
117
|
+
(v) => {
|
|
118
|
+
const converted = convertOutInt(v, metadata.type);
|
|
119
|
+
for (const r of rules) {
|
|
120
|
+
const res = r(converted);
|
|
121
|
+
if (res !== true) {
|
|
122
|
+
return res;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
metadata
|
|
129
|
+
};
|
|
130
|
+
return info;
|
|
131
|
+
}
|
|
132
|
+
export const buildFormFromSchema = (s, state, onSubmit) => {
|
|
133
|
+
const fields = buildFieldInfoFromFields(s);
|
|
134
|
+
const parse = tsplus_module_1.parseSync(s);
|
|
135
|
+
const isDirty = ref(false);
|
|
136
|
+
const isValid = ref(true);
|
|
137
|
+
const submit1 = (onSubmit) => async (e) => {
|
|
138
|
+
const r = await e;
|
|
139
|
+
if (!r.valid)
|
|
140
|
+
return;
|
|
141
|
+
return onSubmit(parse(state.value));
|
|
142
|
+
};
|
|
143
|
+
const submit = submit1(onSubmit);
|
|
144
|
+
watch(state, (v) => {
|
|
145
|
+
// TODO: do better
|
|
146
|
+
isDirty.value = JSON.stringify(v) !== JSON.stringify(state.value);
|
|
147
|
+
}, { deep: true });
|
|
148
|
+
const submitFromState = () => submit(Promise.resolve({ valid: isValid.value }));
|
|
149
|
+
return { fields, submit, submitFromState, isDirty, isValid };
|
|
150
|
+
};
|
|
151
|
+
export function getMetadataFromSchema(ast) {
|
|
152
|
+
const nullable = AST.isUnion(ast) && ast.types.includes(tsplus_module_2.Schema2.null.ast);
|
|
153
|
+
const realSelf = nullable && AST.isUnion(ast)
|
|
154
|
+
? ast.types.filter((_) => _ !== tsplus_module_2.Schema2.null.ast)[0]
|
|
155
|
+
: ast;
|
|
156
|
+
let jschema;
|
|
157
|
+
try {
|
|
158
|
+
jschema = JSONSchema.to(S.make(realSelf));
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
jschema = {};
|
|
162
|
+
console.warn("error getting jsonschema from ", err, ast);
|
|
163
|
+
}
|
|
164
|
+
const isNumber = jschema.type === "number" || jschema.type === "integer";
|
|
165
|
+
const isInt = jschema.type === "integer";
|
|
166
|
+
return {
|
|
167
|
+
type: isInt ? "int" : isNumber ? "float" : "text",
|
|
168
|
+
minimum: jschema.minimum,
|
|
169
|
+
exclusiveMinimum: jschema.exclusiveMinimum,
|
|
170
|
+
maximum: jschema.maximum,
|
|
171
|
+
exclusiveMaximum: jschema.exclusiveMaximum,
|
|
172
|
+
minLength: jschema.minLength,
|
|
173
|
+
maxLength: jschema.maxLength,
|
|
174
|
+
description: jschema.description,
|
|
175
|
+
required: !nullable
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUF1QixNQUFNLGdCQUFnQixDQUFBO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQTtBQUU1QyxPQUFPLEtBQUssVUFBVSxNQUFNLDJCQUEyQixDQUFBO0FBR3ZELE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBZ0IsRUFBRSxJQUErQjtJQUN6RSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFBO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLENBQVMsRUFBRSxJQUErQjtJQUN0RSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9GLE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsQ0FBUyxFQUFFLEdBQWdDLEVB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
|
package/dist/hooks.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { Done, Initial, Loading } from "@effect-app/prelude/client";
|
|
|
8
8
|
import type { ApiConfig, FetchResponse } from "@effect-app/prelude/client";
|
|
9
9
|
import * as swrv from "swrv";
|
|
10
10
|
import type { fetcherFn, IResponse } from "swrv/dist/types.js";
|
|
11
|
-
import type { Ref } from "vue";
|
|
11
|
+
import type { ComputedRef, Ref } from "vue";
|
|
12
12
|
export { isFailed, isInitializing, isSuccess } from "@effect-app/prelude/client";
|
|
13
13
|
type MutateType = {
|
|
14
14
|
<Data>(key: string, res: Data | Promise<Data>, cache?: swrv.SWRVCache<Omit<IResponse<any, any>, "mutate">>, ttl?: number): Promise<{
|
|
@@ -32,16 +32,17 @@ export declare function useMutateWithArg<Arg, E, A>(self: ((arg: Arg) => Effect<
|
|
|
32
32
|
error: any;
|
|
33
33
|
isValidating: any;
|
|
34
34
|
}>;
|
|
35
|
+
export type WatchSource<T = any> = Ref<T> | ComputedRef<T> | (() => T);
|
|
35
36
|
export declare function useSafeQueryWithArg<Arg, E, A>(self: ((arg: Arg) => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>) & {
|
|
36
37
|
mapPath: (arg: Arg) => string;
|
|
37
|
-
}, arg: Arg
|
|
38
|
+
}, arg: Arg | WatchSource<Arg>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
38
39
|
export declare function useSafeQuery<E, A>(self: Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>> & {
|
|
39
40
|
mapPath: string;
|
|
40
|
-
}, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [
|
|
41
|
-
export declare function useSafeQueryWithArg_<Arg, E, A>(self: (arg: Arg) => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>, mapPath: (arg: Arg) => string, arg: Arg
|
|
42
|
-
export declare function useSafeQuery_<E, A>(key: string
|
|
43
|
-
export declare function useSafeQueryLegacy<E, A>(self: Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").QueryResult<E, A>>,
|
|
44
|
-
export declare function make<R, E, A>(self: Effect<R, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").QueryResult<E, A>>,
|
|
41
|
+
}, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
42
|
+
export declare function useSafeQueryWithArg_<Arg, E, A>(self: (arg: Arg) => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>, mapPath: (arg: Arg) => string, arg: Arg | WatchSource<Arg>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
43
|
+
export declare function useSafeQuery_<E, A>(key: string | WatchSource<string>, self: () => Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>, config?: swrv.IConfig<A, fetcherFn<A>> | undefined): readonly [ComputedRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void>, IResponse<A, E>];
|
|
44
|
+
export declare function useSafeQueryLegacy<E, A>(self: Effect<ApiConfig | HttpClient.Default, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, () => Promise<void | import("effect/Exit").Exit<never, Initial | Loading | import("@effect-app/prelude/client").Refreshing<E, A> | Done<E, A>>>];
|
|
45
|
+
export declare function make<R, E, A>(self: Effect<R, E, FetchResponse<A>>): readonly [import("vue").ShallowRef<import("@effect-app/prelude/client").QueryResult<E, A>>, ComputedRef<A | undefined>, import("effect/Effect").Effect<R, never, Initial | Loading | import("@effect-app/prelude/client").Refreshing<E, A> | Done<E, A>>];
|
|
45
46
|
export interface MutationInitial {
|
|
46
47
|
readonly _tag: "Initial";
|
|
47
48
|
}
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../_src/hooks.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1E,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAQ,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../_src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.js
CHANGED
|
@@ -43,10 +43,18 @@ export function useSafeQueryWithArg(self, arg, config) {
|
|
|
43
43
|
return useSafeQueryWithArg_(self, self.mapPath, arg, config);
|
|
44
44
|
}
|
|
45
45
|
export function useSafeQuery(self, config) {
|
|
46
|
-
return useSafeQuery_(self.mapPath, self, config);
|
|
46
|
+
return useSafeQuery_(self.mapPath, () => self, config);
|
|
47
47
|
}
|
|
48
48
|
export function useSafeQueryWithArg_(self, mapPath, arg, config) {
|
|
49
|
-
|
|
49
|
+
const arr = arg;
|
|
50
|
+
const r = typeof arr === "function"
|
|
51
|
+
? {
|
|
52
|
+
get value() {
|
|
53
|
+
return arr();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
: ref(arg);
|
|
57
|
+
return useSafeQuery_(computed(() => mapPath(r.value)), () => self(r.value), config);
|
|
50
58
|
}
|
|
51
59
|
export function useSafeQuery_(key, self, config) {
|
|
52
60
|
// const [result, latestSuccess, execute] = make(self)
|
|
@@ -77,7 +85,7 @@ export function useSafeQuery_(key, self, config) {
|
|
|
77
85
|
// })
|
|
78
86
|
// }
|
|
79
87
|
// const swr = useSWRV<A, E>(key, () => execWithInterruption().then(_ => _?.body as any)) // Effect.runPromise(self.provide(Layers))
|
|
80
|
-
const swr = useSWRV(key, () => run.value(self).then((_) => _.body), config);
|
|
88
|
+
const swr = useSWRV(key, () => run.value(self()).then((_) => _.body), config);
|
|
81
89
|
const result = computed(() => swrToQuery({ data: swr.data.value, error: swr.error.value, isValidating: swr.isValidating.value })); // ref<QueryResult<E, A>>()
|
|
82
90
|
const latestSuccess = computed(() => {
|
|
83
91
|
const value = result.value;
|
|
@@ -184,4 +192,4 @@ export const useMutation = (self) => {
|
|
|
184
192
|
};
|
|
185
193
|
return tsplus_module_5.tuple(state, exec);
|
|
186
194
|
};
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9fc3JjL2hvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUVuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFHNUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFzQmhGLHNFQUFzRTtBQUN0RSxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBMkIsQ0FBQTtBQUN0RyxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQTBCLENBQUE7QUFFeEcsU0FBUyxVQUFVLENBQ2pCLENBQXVFO0lBRXZFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1osT0FBTyxDQUFDLENBQUMsWUFBWTtZQUNuQixDQUFDLENBQUMsZ0JBQUEsVUFBVSxDQUFDLElBQUksQ0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDeEMsQ0FBQyxDQUFDLElBQUksQ0FB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
|
package/dist/routeParams.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Option } from "@effect-app/core/Option";
|
|
2
|
-
import type { REST, Schema } from "@effect-app/
|
|
2
|
+
import type { REST, Schema } from "@effect-app/schema";
|
|
3
3
|
import type { ParsedQuery } from "query-string";
|
|
4
4
|
export declare function getQueryParam(search: ParsedQuery, param: string): string | null | undefined;
|
|
5
5
|
export declare const getQueryParamO: (search: ParsedQuery, param: string) => import("effect/Option").Option<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../_src/routeParams.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"routeParams.d.ts","sourceRoot":"","sources":["../_src/routeParams.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,6BAM/D;AAED,eAAO,MAAM,cAAc,gFAA2C,CAAA;AAEtE,eAAO,MAAM,QAAQ,YAAa,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,uJAMlD,CAAA;AAED,eAAO,MAAM,eAAe,YAAa,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,uJAMzD,CAAA;AAED,wBAAgB,sBAAsB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACjF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAYA;AAED,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC3E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,CAAC,EAAE,GAAG,GACL;KACA,CAAC,IAAI,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpC,CAYA"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect-app/vue",
|
|
3
|
-
"version": "0.87.0-next.
|
|
3
|
+
"version": "0.87.0-next.21",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@effect/platform-browser": "^0.25.0",
|
|
8
|
-
"@effect/schema": "
|
|
8
|
+
"@effect/schema": "npm:@effect-app/schema-fork@0.0.0-20231227111019",
|
|
9
9
|
"@fp-ts/optic": "^0.21.0",
|
|
10
10
|
"@formatjs/intl": "^2.9.9",
|
|
11
11
|
"effect": "^2.0.0-next.62",
|
|
12
12
|
"query-string": "^8.1.0",
|
|
13
13
|
"swrv": "^1.0.4",
|
|
14
14
|
"vue": "^3.3.13",
|
|
15
|
-
"@effect-app/prelude": "0.107.0-next.
|
|
16
|
-
"@effect-app/vue": "0.87.0-next.
|
|
17
|
-
"@effect-app/core": "0.97.0-next.
|
|
18
|
-
"@effect-app/schema": "0.150.0-next.
|
|
15
|
+
"@effect-app/prelude": "0.107.0-next.17",
|
|
16
|
+
"@effect-app/vue": "0.87.0-next.21",
|
|
17
|
+
"@effect-app/core": "0.97.0-next.4",
|
|
18
|
+
"@effect-app/schema": "0.150.0-next.14"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@rollup/pluginutils": "^5.1.0",
|
|
@@ -56,6 +56,16 @@
|
|
|
56
56
|
"default": "./_cjs/_global.cjs"
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
|
+
"./form": {
|
|
60
|
+
"import": {
|
|
61
|
+
"types": "./dist/form.d.ts",
|
|
62
|
+
"default": "./dist/form.js"
|
|
63
|
+
},
|
|
64
|
+
"require": {
|
|
65
|
+
"types": "./dist/form.d.ts",
|
|
66
|
+
"default": "./_cjs/form.cjs"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
59
69
|
"./hooks": {
|
|
60
70
|
"import": {
|
|
61
71
|
"types": "./dist/hooks.d.ts",
|