frontend
frontend copied to clipboard
More strict projectModel.json validation on app generation
- checkout https://github.com/cuba-platform/sample-sales-cuba7
- add REST API add-on
- add jpql query as described https://doc.cuba-platform.com/restapi-7.2/#rest_api_v2_ex_query_get
<?xml version="1.0"?>
<queries xmlns="http://schemas.haulmont.com/cuba/rest-queries.xsd">
<query name="ordersAfterDate" entity="sales$Order" view="order-edit-view">
<jpql><![CDATA[select o from sales$Order o where o.date >= :startDate and o.date <= :endDate]]></jpql>
<params>
<param name="startDate" type="java.util.Date"/>
<param name="endDate" type="java.util.Date"/>
</params>
</query>
</queries>
(note: jpql query contains incorrect relation to Order class sales$Order but should be sales_Order, and view order-edit-view/order-edit)
- export project model
- try to generate react app with exported model from cli
AR: Obscure exception on app generation
Generating sdk:all to /p/t/ssf/src/cuba
Unhandled Rejection Promise {
<rejected> TypeError: Cannot read property 'replace' of undefined
at escapeString (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:12905:18)
at escapeNonAsciiString (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:12950:13)
at Object.getLiteralText (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:10288:34)
at getLiteralTextOfNode (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:93326:23)
at emitLiteral (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:91079:24)
at pipelineEmitWithHint (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:90890:32)
at pipelineEmitWithComments (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:93731:17)
at pipelineEmit (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:90537:13)
at emitExpression (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:90529:20)
at emitNodeList (/home/vadim/.nvm/versions/node/v12.14.1/lib/node_modules/@cuba-platform/front-generator/node_modules/typescript/lib/typescript.js:93047:21)
}
The cause of exception is that projectModel.json
contains restQueries
with missing parameters entity
and view
.
"restQueries": [
{
"name": "ordersAfterDate",
"jpql": "select o from sales$Orderhttps://github.com/cuba-platform/sample-sales-cuba7 o where o.date >= :startDate and o.date <= :endDate",
"params": [...]
}]
ER: Error message should contains information about incorrect content in projectModel.json
. Also may be it make sense to add validation in Studio on project model export (project model export should fail with error).