@weclapp/sdk 2.0.0-dev.48 → 2.0.0-dev.49
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/dist/cli.js +9 -8
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -256,14 +256,15 @@ const createObjectType = (value, required = []) => ({
|
|
|
256
256
|
.filter((v) => v?.type === 'object')
|
|
257
257
|
.every((v) => v.isFullyOptional()));
|
|
258
258
|
},
|
|
259
|
-
toString: (
|
|
259
|
+
toString: (propertyPropagationOption = 'ignore') => {
|
|
260
260
|
const properties = Object.entries(value)
|
|
261
261
|
.filter((v) => v[1])
|
|
262
262
|
.map((v) => {
|
|
263
263
|
const name = v[0];
|
|
264
264
|
const value = v[1];
|
|
265
265
|
const isRequired = required.includes(name) ||
|
|
266
|
-
|
|
266
|
+
propertyPropagationOption === 'force' ||
|
|
267
|
+
(value.type === 'object' && !value.isFullyOptional() && propertyPropagationOption === 'propagate');
|
|
267
268
|
return `${name + (isRequired ? '' : '?')}: ${value.toString()};`;
|
|
268
269
|
});
|
|
269
270
|
return properties.length ? `{\n${indent(properties.join('\n'))}\n}` : '{}';
|
|
@@ -360,7 +361,7 @@ const generateInterfaceProperties = (entries) => {
|
|
|
360
361
|
.join('\n');
|
|
361
362
|
return properties.length ? `{\n${indent(properties)}\n}` : `{}`;
|
|
362
363
|
};
|
|
363
|
-
const generateInterfaceFromObject = (name, obj,
|
|
364
|
+
const generateInterfaceFromObject = (name, obj, propertyPropagationOption) => `export interface ${name} ${obj.toString(propertyPropagationOption)}`;
|
|
364
365
|
const generateInterface = (name, entries, extend) => {
|
|
365
366
|
const signature = `${name} ${extend ? `extends ${arrayify(extend).join(', ')}` : ''}`.trim();
|
|
366
367
|
const body = generateInterfaceProperties(entries);
|
|
@@ -637,7 +638,7 @@ const generateCountEndpoint = ({ aliases, path, target, endpoint }) => {
|
|
|
637
638
|
const parametersType = createObjectType({
|
|
638
639
|
params: convertToTypeScriptType(convertParametersToSchema(path.parameters))
|
|
639
640
|
});
|
|
640
|
-
const parametersTypeSource = generateInterfaceFromObject(parametersTypeName, parametersType,
|
|
641
|
+
const parametersTypeSource = generateInterfaceFromObject(parametersTypeName, parametersType, 'propagate');
|
|
641
642
|
const filterTypeName = `${functionTypeName}_Filter`;
|
|
642
643
|
const filterTypeSource = generateInterfaceType(filterTypeName, [], [`${entity}_${FILTER_PROPS_SUFFIX}`]);
|
|
643
644
|
const functionTypeSource = generateArrowFunctionType({
|
|
@@ -676,7 +677,7 @@ const generateBodyType = (body) => {
|
|
|
676
677
|
types.push(convertToTypeScriptType(schema));
|
|
677
678
|
}
|
|
678
679
|
}
|
|
679
|
-
return types.length ? createTupleType(types) : undefined;
|
|
680
|
+
return types.length ? (types.length === 1 ? types[0] : createTupleType(types)) : undefined;
|
|
680
681
|
};
|
|
681
682
|
|
|
682
683
|
const generateRequestBodyType = ({ requestBody }) => {
|
|
@@ -736,7 +737,7 @@ const generateGenericEndpoint = (suffix) => ({ target, method, path, endpoint })
|
|
|
736
737
|
`query${params.isFullyOptional() ? '?' : ''}: ${entityQuery}`,
|
|
737
738
|
'requestOptions?: RequestOptions'
|
|
738
739
|
],
|
|
739
|
-
returns: `${resolveResponseType(target)}<${wrapBody(responseBody, target).toString()}>`
|
|
740
|
+
returns: `${resolveResponseType(target)}<${wrapBody(responseBody, target).toString('force')}>`
|
|
740
741
|
});
|
|
741
742
|
const functionSource = generateArrowFunction({
|
|
742
743
|
name: functionName,
|
|
@@ -752,7 +753,7 @@ const generateGenericEndpoint = (suffix) => ({ target, method, path, endpoint })
|
|
|
752
753
|
interfaces: [
|
|
753
754
|
{
|
|
754
755
|
name: entityQuery,
|
|
755
|
-
source: generateInterfaceFromObject(entityQuery, params,
|
|
756
|
+
source: generateInterfaceFromObject(entityQuery, params, 'propagate')
|
|
756
757
|
}
|
|
757
758
|
]
|
|
758
759
|
};
|
|
@@ -849,7 +850,7 @@ const generateSomeEndpoint = ({ endpoint, target, path, entities, aliases }) =>
|
|
|
849
850
|
const parametersType = createObjectType({
|
|
850
851
|
params: convertToTypeScriptType(convertParametersToSchema(parameters))
|
|
851
852
|
});
|
|
852
|
-
const parametersTypeSource = generateInterfaceFromObject(parametersTypeName, parametersType,
|
|
853
|
+
const parametersTypeSource = generateInterfaceFromObject(parametersTypeName, parametersType, 'propagate');
|
|
853
854
|
const filterTypeName = `${functionTypeName}_Filter`;
|
|
854
855
|
const filterTypeSource = generateInterfaceType(filterTypeName, [], [`${entity}_${FILTER_PROPS_SUFFIX}`]);
|
|
855
856
|
const referencesTypeName = `${functionTypeName}_References`;
|