@luvio/compiler 0.52.0 → 0.55.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/dist/codegen/adapter/adapter-browser-factory.js +9 -17
- package/dist/codegen/adapter/adapter-browser-factory.js.map +1 -1
- package/dist/codegen/adapter/adapter-build-snapshot-context.d.ts +4 -0
- package/dist/codegen/adapter/adapter-build-snapshot-context.js +29 -0
- package/dist/codegen/adapter/adapter-build-snapshot-context.js.map +1 -0
- package/dist/codegen/adapter/adapter-memory-cache-policy.d.ts +4 -0
- package/dist/codegen/adapter/adapter-memory-cache-policy.js +48 -0
- package/dist/codegen/adapter/adapter-memory-cache-policy.js.map +1 -0
- package/dist/codegen/adapter/adapter-network-cache-policy.d.ts +4 -0
- package/dist/codegen/adapter/adapter-network-cache-policy.js +28 -0
- package/dist/codegen/adapter/adapter-network-cache-policy.js.map +1 -0
- package/dist/codegen/adapter/constants.d.ts +7 -0
- package/dist/codegen/adapter/constants.js +8 -1
- package/dist/codegen/adapter/constants.js.map +1 -1
- package/dist/codegen/adapter/index.js +6 -0
- package/dist/codegen/adapter/index.js.map +1 -1
- package/dist/codegen/pagination-utils/constants.d.ts +4 -0
- package/dist/codegen/pagination-utils/constants.js +8 -0
- package/dist/codegen/pagination-utils/constants.js.map +1 -0
- package/dist/codegen/pagination-utils/cursor-based.d.ts +0 -3
- package/dist/codegen/pagination-utils/cursor-based.js +23 -25
- package/dist/codegen/pagination-utils/cursor-based.js.map +1 -1
- package/dist/codegen/resource/key-builder.js +1 -1
- package/dist/codegen/resource/key-builder.js.map +1 -1
- package/dist/codegen/resource/pagination/create-pagination-params.js +2 -2
- package/dist/codegen/resource/pagination/create-pagination-params.js.map +1 -1
- package/dist/codegen/resource/pagination/select.js +8 -9
- package/dist/codegen/resource/pagination/select.js.map +1 -1
- package/dist/codegen/resource/select.js +4 -4
- package/dist/codegen/resource/select.js.map +1 -1
- package/dist/codegen/shape/constants.d.ts +5 -0
- package/dist/codegen/shape/constants.js +6 -1
- package/dist/codegen/shape/constants.js.map +1 -1
- package/dist/codegen/shape/shape-dynamic-select.d.ts +1 -1
- package/dist/codegen/shape/shape-dynamic-select.js.map +1 -1
- package/dist/codegen/shape/shape-select-discriminator.js +2 -2
- package/dist/codegen/shape/shape-select-discriminator.js.map +1 -1
- package/dist/codegen/shape/shape-select-utils.d.ts +19 -0
- package/dist/codegen/shape/shape-select-utils.js +381 -0
- package/dist/codegen/shape/shape-select-utils.js.map +1 -0
- package/dist/codegen/shape/shape-select.d.ts +0 -1
- package/dist/codegen/shape/shape-select.js +25 -381
- package/dist/codegen/shape/shape-select.js.map +1 -1
- package/dist/parser/annotation-paginationParams.js +5 -0
- package/dist/parser/annotation-paginationParams.js.map +1 -1
- package/package.json +3 -3
|
@@ -6,17 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.generatePaginationSelect = void 0;
|
|
7
7
|
const deindent_1 = __importDefault(require("../../../utils/deindent"));
|
|
8
8
|
const create_pagination_params_1 = require("./create-pagination-params");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
9
|
+
const constants_1 = require("../../pagination-utils/constants");
|
|
10
|
+
const constants_2 = require("../constants");
|
|
11
|
+
const constants_3 = require("../../shared/constants");
|
|
12
|
+
const constants_4 = require("../../adapter/constants");
|
|
13
13
|
function generatePaginationSelect(importContext, paginationParams, resourceRequestConfig, typeSelect) {
|
|
14
|
-
const paginationParamsType = importContext.importPaginationUtil(paginationParams.strategy,
|
|
15
|
-
// TODO (W-9770603): uncomment 'paginationParams' when type select is generated
|
|
14
|
+
const paginationParamsType = importContext.importPaginationUtil(paginationParams.strategy, constants_1.PAGINATION_PARAMS_INTERFACE_IDENTIFIER);
|
|
16
15
|
return deindent_1.default `
|
|
17
|
-
export function ${
|
|
18
|
-
const
|
|
19
|
-
return ${typeSelect}(
|
|
16
|
+
export function ${constants_2.RESOURCE_SELECT_IDENTIFIER}(${constants_3.LUVIO_IDENTIFIER}: ${constants_3.LUVIO_IMPORT}, ${constants_2.RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}): ${constants_4.ADAPTER_FRAGMENT_IDENTIFIER} {
|
|
17
|
+
const ${constants_1.PAGINATION_PARAMS_IDENTIFIER}: ${paginationParamsType} = ${create_pagination_params_1.CREATE_PAGINATION_PARAMS_IDENTIFIER}(${constants_2.RESOURCE_PARAMS_IDENTIFIER});
|
|
18
|
+
return ${typeSelect}(${constants_1.PAGINATION_PARAMS_IDENTIFIER});
|
|
20
19
|
}
|
|
21
20
|
`;
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/resource/pagination/select.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAG/C,yEAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/codegen/resource/pagination/select.ts"],"names":[],"mappings":";;;;;;AAAA,uEAA+C;AAG/C,yEAAiF;AACjF,gEAG0C;AAC1C,4CAAsF;AACtF,sDAAwE;AACxE,uDAAsE;AAGtE,SAAgB,wBAAwB,CACpC,aAA4B,EAC5B,gBAAkC,EAClC,qBAA6B,EAC7B,UAAkB;IAElB,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAC3D,gBAAgB,CAAC,QAAQ,EACzB,kDAAsC,CACzC,CAAC;IAEF,OAAO,kBAAQ,CAAA;0BACO,sCAA0B,IAAI,4BAAgB,KAAK,wBAAY,KAAK,sCAA0B,KAAK,qBAAqB,MAAM,uCAA2B;oBAC/J,wCAA4B,KAAK,oBAAoB,MAAM,8DAAmC,IAAI,sCAA0B;qBAC3H,UAAU,IAAI,wCAA4B;;KAE1D,CAAC;AACN,CAAC;AAjBD,4DAiBC"}
|
|
@@ -7,14 +7,14 @@ exports.generateSelect = void 0;
|
|
|
7
7
|
const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
8
8
|
const constants_1 = require("../adapter/constants");
|
|
9
9
|
const constants_2 = require("../shared/constants");
|
|
10
|
-
const constants_3 = require("
|
|
11
|
-
const shape_select_1 = require("../shape/shape-select");
|
|
10
|
+
const constants_3 = require("../shape/constants");
|
|
12
11
|
const shape_select_discriminator_1 = require("../shape/shape-select-discriminator");
|
|
13
12
|
const select_1 = require("./composite/select");
|
|
14
13
|
const select_child_resource_params_1 = require("./composite/select-child-resource-params");
|
|
15
14
|
const create_pagination_params_1 = require("./pagination/create-pagination-params");
|
|
16
15
|
const select_2 = require("./pagination/select");
|
|
17
16
|
const resource_params_1 = require("./resource-params");
|
|
17
|
+
const constants_4 = require("./constants");
|
|
18
18
|
function generateSelect(importContext, resource, modelInfo) {
|
|
19
19
|
const { importRamlArtifact } = importContext;
|
|
20
20
|
const { id: resourceId, endPointId, returnShape, paginationParams } = resource;
|
|
@@ -30,7 +30,7 @@ function generateSelect(importContext, resource, modelInfo) {
|
|
|
30
30
|
const returnShapeId = returnShape.id;
|
|
31
31
|
const typeSelect = modelInfo.shapeDiscriminatorTypes[returnShapeId]
|
|
32
32
|
? importRamlArtifact(returnShapeId, shape_select_discriminator_1.SHAPE_SELECT_CHILDREN_IDENTIFIER)
|
|
33
|
-
: importRamlArtifact(returnShapeId,
|
|
33
|
+
: importRamlArtifact(returnShapeId, constants_3.SHAPE_SELECT_IDENTIFIER);
|
|
34
34
|
const resourceRequestConfig = importRamlArtifact(resourceId, resource_params_1.RESOURCE_PARAMS_INTERFACE);
|
|
35
35
|
if (paginationParams !== undefined) {
|
|
36
36
|
return [
|
|
@@ -39,7 +39,7 @@ function generateSelect(importContext, resource, modelInfo) {
|
|
|
39
39
|
].join('\n\n');
|
|
40
40
|
}
|
|
41
41
|
return deindent_1.default `
|
|
42
|
-
export function ${
|
|
42
|
+
export function ${constants_4.RESOURCE_SELECT_IDENTIFIER}(${constants_2.LUVIO_IDENTIFIER}: ${constants_2.LUVIO_IMPORT}, ${constants_4.RESOURCE_PARAMS_IDENTIFIER}: ${resourceRequestConfig}): ${constants_1.ADAPTER_FRAGMENT_IDENTIFIER} {
|
|
43
43
|
return ${typeSelect}();
|
|
44
44
|
}
|
|
45
45
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/codegen/resource/select.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/codegen/resource/select.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAI5C,oDAAmE;AACnE,mDAAqE;AACrE,kDAA6D;AAC7D,oFAAuF;AACvF,+CAA6D;AAC7D,2FAA6F;AAC7F,oFAAuF;AACvF,gDAA+D;AAC/D,uDAA8D;AAC9D,2CAAqF;AAErF,SAAgB,cAAc,CAC1B,aAA4B,EAC5B,QAAkB,EAClB,SAAoB;IAEpB,MAAM,EAAE,kBAAkB,EAAE,GAAG,aAAa,CAAC;IAC7C,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAE/E,IAAI,WAAW,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,CAAC;KACb;IAED,IAAI,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE;QAC1C,OAAO;YACH,gEAAiC,CAC7B,aAAa,EACb,QAAQ,EACR,SAAS,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACxC,WAAW,EACX,SAAS,CACZ;YACD,gCAAuB,CAAC,aAAa,EAAE,QAAQ,CAAC;SACnD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClB;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,SAAS,CAAC,uBAAuB,CAAC,aAAa,CAAC;QAC/D,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,6DAAgC,CAAC;QACrE,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,mCAAuB,CAAC,CAAC;IAEjE,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,UAAU,EAAE,2CAAyB,CAAC,CAAC;IAExF,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAChC,OAAO;YACH,yDAA8B,CAAC,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,CAAC;YACtF,iCAAwB,CACpB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,CACb;SACJ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClB;IAED,OAAO,kBAAQ,CAAA;0BACO,sCAA0B,IAAI,4BAAgB,KAAK,wBAAY,KAAK,sCAA0B,KAAK,qBAAqB,MAAM,uCAA2B;qBAC9J,UAAU;;KAE1B,CAAC;AACN,CAAC;AAjDD,wCAiDC"}
|
|
@@ -3,3 +3,8 @@ export declare const EXISTING_RECORD_IDENTIFIER = "existingRecord";
|
|
|
3
3
|
export declare const INCOMING_RECORD_IDENTIFIER = "incomingRecord";
|
|
4
4
|
export declare const INPUT_IDENTIFIER = "input";
|
|
5
5
|
export declare const KEY_IDENTIFIER = "key";
|
|
6
|
+
/** shape-select */
|
|
7
|
+
export declare const SHAPE_SELECT_IDENTIFIER = "select";
|
|
8
|
+
export declare const READER_IDENTIFIER = "reader";
|
|
9
|
+
export declare const SINK_IDENTIFIER = "sink";
|
|
10
|
+
export declare const SOURCE_IDENTIFIER = "source";
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/* Shared Identifiers */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.KEY_IDENTIFIER = exports.INPUT_IDENTIFIER = exports.INCOMING_RECORD_IDENTIFIER = exports.EXISTING_RECORD_IDENTIFIER = void 0;
|
|
4
|
+
exports.SOURCE_IDENTIFIER = exports.SINK_IDENTIFIER = exports.READER_IDENTIFIER = exports.SHAPE_SELECT_IDENTIFIER = exports.KEY_IDENTIFIER = exports.INPUT_IDENTIFIER = exports.INCOMING_RECORD_IDENTIFIER = exports.EXISTING_RECORD_IDENTIFIER = void 0;
|
|
5
5
|
/** shape-ingest */
|
|
6
6
|
exports.EXISTING_RECORD_IDENTIFIER = 'existingRecord';
|
|
7
7
|
exports.INCOMING_RECORD_IDENTIFIER = 'incomingRecord';
|
|
8
8
|
exports.INPUT_IDENTIFIER = 'input';
|
|
9
9
|
exports.KEY_IDENTIFIER = 'key';
|
|
10
|
+
/** shape-select */
|
|
11
|
+
exports.SHAPE_SELECT_IDENTIFIER = 'select';
|
|
12
|
+
exports.READER_IDENTIFIER = 'reader';
|
|
13
|
+
exports.SINK_IDENTIFIER = 'sink';
|
|
14
|
+
exports.SOURCE_IDENTIFIER = 'source';
|
|
10
15
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/codegen/shape/constants.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;AAExB,mBAAmB;AACN,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,cAAc,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/codegen/shape/constants.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;AAExB,mBAAmB;AACN,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,0BAA0B,GAAG,gBAAgB,CAAC;AAC9C,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAC3B,QAAA,cAAc,GAAG,KAAK,CAAC;AAEpC,mBAAmB;AACN,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,iBAAiB,GAAG,QAAQ,CAAC;AAC7B,QAAA,eAAe,GAAG,MAAM,CAAC;AACzB,QAAA,iBAAiB,GAAG,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-dynamic-select.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-dynamic-select.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"shape-dynamic-select.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-dynamic-select.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA4C;AAE5C,iDAAwD;AACxD,+EAAsE;AACtE,+EAAyE;AAE5D,QAAA,+BAA+B,GAAG,eAAe,CAAC;AAC/D,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEnC,SAAgB,0BAA0B,CAAC,WAA+B;IACtE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAExD,MAAM,YAAY,GAAG,sDAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC;KACb;IAED,MAAM,kBAAkB,GAAG,UAAU,KAAK,CAAC,IAAI,QAAQ,CAAC;IACxD,MAAM,gBAAgB,GAAG,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,mDAAqB,CAAC,CAAC;IAE3F,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,qCAAsB,CAAC;QACrD,kBAAkB;QAClB,WAAW;QACX,uBAAuB,EAAE,iBAAiB;KAC7C,CAAC,CAAC;IAEH,OAAO,kBAAQ,CAAA;uBACI,uCAA+B,eAAe,kBAAkB,IAAI,iBAAiB,KAAK,gBAAgB,MAAM,eAAe;cACxI,IAAI;;KAEb,CAAC;AACN,CAAC;AAtBD,gEAsBC"}
|
|
@@ -9,7 +9,7 @@ const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
|
9
9
|
const format_1 = require("../../utils/format");
|
|
10
10
|
const inheritance_2 = require("../../utils/inheritance");
|
|
11
11
|
const constants_1 = require("../adapter/constants");
|
|
12
|
-
const
|
|
12
|
+
const constants_2 = require("./constants");
|
|
13
13
|
exports.SHAPE_SELECT_CHILDREN_IDENTIFIER = 'selectChildren';
|
|
14
14
|
const DISCRIMINATOR_VALUES_IDENTIFIER = 'DiscriminatorValues';
|
|
15
15
|
function generateSelect(shapeConfig) {
|
|
@@ -20,7 +20,7 @@ function generateSelect(shapeConfig) {
|
|
|
20
20
|
const unionSelections = Object.keys(discriminator.references).map((prop) => {
|
|
21
21
|
const shape = discriminator.references[prop];
|
|
22
22
|
const ref = shape.name;
|
|
23
|
-
const childSelectIdentifier = importContext.importRamlArtifact(shape.id,
|
|
23
|
+
const childSelectIdentifier = importContext.importRamlArtifact(shape.id, constants_2.SHAPE_SELECT_IDENTIFIER);
|
|
24
24
|
const identifier = format_1.camelCase(`${ref}-selections`);
|
|
25
25
|
const hoistStatement = deindent_1.default `
|
|
26
26
|
const ${identifier} = ${childSelectIdentifier}()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape-select-discriminator.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-select-discriminator.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAsE;AACtE,oEAA4C;AAC5C,+CAA+C;AAC/C,yDAAqF;AACrF,oDAA6F;AAE7F,
|
|
1
|
+
{"version":3,"file":"shape-select-discriminator.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-select-discriminator.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAsE;AACtE,oEAA4C;AAC5C,+CAA+C;AAC/C,yDAAqF;AACrF,oDAA6F;AAE7F,2CAAsD;AAEzC,QAAA,gCAAgC,GAAG,gBAAgB,CAAC;AAEjE,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AAE9D,SAAS,cAAc,CAAC,WAA+B;IACnD,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAC;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IACzC,MAAM,aAAa,GAAG,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACvE,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,MAAM,qBAAqB,GAAG,aAAa,CAAC,kBAAkB,CAC1D,KAAK,CAAC,EAAE,EACR,mCAAuB,CAC1B,CAAC;QACF,MAAM,UAAU,GAAG,kBAAS,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,kBAAQ,CAAA;oBACnB,UAAU,MAAM,qBAAqB;SAChD,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,OAAO,kBAAQ,CAAA;eACR,wDAA0C,CACzC,+BAA+B,EAC/B,IAAI,EACJ,aAAa,CAAC,IAAI,CACrB,MAAM,UAAU;SACpB,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,kBAAQ,CAAA;;;;8BAIJ,aAAa,CAAC,yBAAyB;;kBAEnD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;;;KAGxC,CAAC;IAEF,MAAM,kBAAkB,GAAG,GAAG,KAAK,CAAC,IAAI,gBAAgB,CAAC;IAEzD,OAAO,kBAAQ,CAAA;uBACI,wCAAgC,eAAe,kBAAkB,OAAO,iEAAqD;cACtI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;qBAEV,aAAa;;KAE7B,CAAC;AACN,CAAC;AAED,SAAgB,2BAA2B,CAAC,WAA+B;IACvE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IACzC,IAAI,kCAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;QACxC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC;KACtC;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAPD,kEAOC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ImportContext } from '../../utils/imports';
|
|
2
|
+
import { ModelInfo } from '../../intermediate/model-info';
|
|
3
|
+
import { NodeShapeDefinition, ShapeDefinition } from '../../intermediate/definitions';
|
|
4
|
+
export interface SelectState {
|
|
5
|
+
rootShape: ShapeDefinition;
|
|
6
|
+
modelInfo: ModelInfo;
|
|
7
|
+
propertyName: string;
|
|
8
|
+
isMap: boolean;
|
|
9
|
+
isArray: boolean;
|
|
10
|
+
nullable: boolean;
|
|
11
|
+
optional: boolean;
|
|
12
|
+
hoist: string[];
|
|
13
|
+
hoistPrivate: string[];
|
|
14
|
+
importContext: ImportContext;
|
|
15
|
+
dynamicParamsIdentifier: string | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function selectShape(shape: ShapeDefinition, state: SelectState): string;
|
|
18
|
+
export declare function selectOpaque(nodeShape: NodeShapeDefinition, state: SelectState): string;
|
|
19
|
+
export declare function selectNonOpaque(nodeShape: NodeShapeDefinition, state: SelectState): string;
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.selectNonOpaque = exports.selectOpaque = exports.selectShape = void 0;
|
|
7
|
+
const deindent_1 = __importDefault(require("../../utils/deindent"));
|
|
8
|
+
const utils_1 = require("../../intermediate/utils");
|
|
9
|
+
const inheritance_1 = require("../../intermediate/inheritance");
|
|
10
|
+
const shape_select_discriminator_1 = require("./shape-select-discriminator");
|
|
11
|
+
const constants_1 = require("../adapter/constants");
|
|
12
|
+
const constants_2 = require("../shape/constants");
|
|
13
|
+
function selectShape(shape, state) {
|
|
14
|
+
if (shape.isLink) {
|
|
15
|
+
return selectLink(shape, state);
|
|
16
|
+
}
|
|
17
|
+
if (utils_1.isNodeShape(shape)) {
|
|
18
|
+
return selectObject(shape, state);
|
|
19
|
+
}
|
|
20
|
+
else if (utils_1.isScalarShape(shape) || utils_1.isNilShape(shape)) {
|
|
21
|
+
return selectScalar(state);
|
|
22
|
+
}
|
|
23
|
+
else if (utils_1.isArrayShape(shape)) {
|
|
24
|
+
return selectArray(shape, state);
|
|
25
|
+
}
|
|
26
|
+
else if (utils_1.isUnionShape(shape)) {
|
|
27
|
+
return selectUnion(shape, state);
|
|
28
|
+
}
|
|
29
|
+
else if (utils_1.isAnyShape(shape)) {
|
|
30
|
+
return selectAny(state);
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`Unsupported shape "${shape.name}"`);
|
|
33
|
+
}
|
|
34
|
+
exports.selectShape = selectShape;
|
|
35
|
+
function selectAny(state) {
|
|
36
|
+
return deindent_1.default `
|
|
37
|
+
{
|
|
38
|
+
name: ${state.propertyName},
|
|
39
|
+
kind: 'Object',
|
|
40
|
+
// any
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
44
|
+
function selectUnion(shape, state) {
|
|
45
|
+
let nullableScalar = null;
|
|
46
|
+
let nonScalar = null;
|
|
47
|
+
shape.anyOf.forEach((anyOf) => {
|
|
48
|
+
if (utils_1.isScalarShape(anyOf) || utils_1.isNilShape(anyOf)) {
|
|
49
|
+
if (utils_1.isNilShape(anyOf)) {
|
|
50
|
+
nullableScalar = anyOf;
|
|
51
|
+
}
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
nonScalar = anyOf;
|
|
55
|
+
});
|
|
56
|
+
// Union pointing to another shape
|
|
57
|
+
if (nonScalar !== null && nullableScalar !== null) {
|
|
58
|
+
return selectShape(nonScalar, {
|
|
59
|
+
...state,
|
|
60
|
+
nullable: true,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// We have a union between scalars
|
|
64
|
+
if (nonScalar === null) {
|
|
65
|
+
return selectShape(shape.anyOf[0], {
|
|
66
|
+
...state,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// We have a union between non-null scalar and a link shape.
|
|
70
|
+
// The only way we can codegen this today is with a greedy, deep selector
|
|
71
|
+
return deindent_1.default `
|
|
72
|
+
{
|
|
73
|
+
kind: 'Object',
|
|
74
|
+
name: ${state.propertyName},
|
|
75
|
+
// Complex union deep
|
|
76
|
+
}
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
function selectArray(shape, state) {
|
|
80
|
+
return selectShape(shape.items, {
|
|
81
|
+
...state,
|
|
82
|
+
isArray: true,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function selectInheritedLink(shape, state) {
|
|
86
|
+
const { importContext } = state;
|
|
87
|
+
const linkName = shape.linkLabel;
|
|
88
|
+
const isNormalizable = state.modelInfo.normalizableShapeDefinitions[shape.id];
|
|
89
|
+
if (isNormalizable) {
|
|
90
|
+
return deindent_1.default `
|
|
91
|
+
{
|
|
92
|
+
kind: 'Link',
|
|
93
|
+
name: ${state.propertyName},
|
|
94
|
+
fragment: ${importContext.importRamlArtifact(shape.linkTarget.id, shape_select_discriminator_1.SHAPE_SELECT_CHILDREN_IDENTIFIER)}()
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
}
|
|
98
|
+
const selectionsIdentifier = `${linkName}__unionSelections`;
|
|
99
|
+
const hoistStatement = deindent_1.default `
|
|
100
|
+
const ${selectionsIdentifier} = ${importContext.importRamlArtifact(shape.linkTarget.id, shape_select_discriminator_1.SHAPE_SELECT_CHILDREN_IDENTIFIER)}()
|
|
101
|
+
`;
|
|
102
|
+
state.hoist.push(hoistStatement);
|
|
103
|
+
const statements = [
|
|
104
|
+
`kind: 'Object'`,
|
|
105
|
+
`name: ${state.propertyName}`,
|
|
106
|
+
`discriminator: ${selectionsIdentifier}.discriminator`,
|
|
107
|
+
`union: true`,
|
|
108
|
+
`nullable: ${state.nullable}`,
|
|
109
|
+
`unionSelections: ${selectionsIdentifier}.unionSelections`,
|
|
110
|
+
].filter((item) => item !== undefined);
|
|
111
|
+
return deindent_1.default `
|
|
112
|
+
{
|
|
113
|
+
${statements.join(',\n')}
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
}
|
|
117
|
+
function selectInlineObject(shape, state) {
|
|
118
|
+
const { importContext, modelInfo } = state;
|
|
119
|
+
const shapeName = shape.name;
|
|
120
|
+
const linkIsOpaque = modelInfo.shapeOpaque[shape.id];
|
|
121
|
+
const linkPrivateProps = modelInfo.shapePrivate[shape.id];
|
|
122
|
+
let statements = [`name: ${state.propertyName}`, `kind: 'Object'`];
|
|
123
|
+
const selectionsIdentifier = `${shapeName}__selections`;
|
|
124
|
+
const opaqueIdentifier = `${shapeName}__opaque`;
|
|
125
|
+
const hoistStatement = deindent_1.default `
|
|
126
|
+
const {
|
|
127
|
+
selections: ${selectionsIdentifier},
|
|
128
|
+
opaque: ${opaqueIdentifier},
|
|
129
|
+
} = ${importContext.importRamlArtifact(shape.id, constants_2.SHAPE_SELECT_IDENTIFIER)}()
|
|
130
|
+
`;
|
|
131
|
+
// Theres a chance we've already imported this shape, lets reuse if thats the case
|
|
132
|
+
if (state.hoist.indexOf(hoistStatement) === -1) {
|
|
133
|
+
state.hoist.push(hoistStatement);
|
|
134
|
+
}
|
|
135
|
+
statements = [
|
|
136
|
+
...statements,
|
|
137
|
+
state.nullable === true ? 'nullable: true' : undefined,
|
|
138
|
+
state.isMap === true ? 'map: true' : undefined,
|
|
139
|
+
state.isArray === true ? 'plural: true' : undefined,
|
|
140
|
+
linkIsOpaque === true && linkPrivateProps === undefined
|
|
141
|
+
? undefined
|
|
142
|
+
: `selections: ${selectionsIdentifier}`,
|
|
143
|
+
linkIsOpaque === true && linkPrivateProps === undefined
|
|
144
|
+
? `opaque: ${opaqueIdentifier}`
|
|
145
|
+
: undefined,
|
|
146
|
+
state.optional === true ? 'required: false' : undefined,
|
|
147
|
+
];
|
|
148
|
+
return deindent_1.default `
|
|
149
|
+
{
|
|
150
|
+
${statements.filter((value) => value !== undefined).join(',\n')}
|
|
151
|
+
}
|
|
152
|
+
`;
|
|
153
|
+
}
|
|
154
|
+
function selectNormalizable(shape, state) {
|
|
155
|
+
const { importContext, dynamicParamsIdentifier, propertyName, hoist } = state;
|
|
156
|
+
const statements = [
|
|
157
|
+
`name: ${propertyName}`,
|
|
158
|
+
`kind: 'Link'`,
|
|
159
|
+
state.nullable === true ? 'nullable: true' : undefined,
|
|
160
|
+
state.isMap === true ? 'map: true' : undefined,
|
|
161
|
+
state.isArray === true ? 'plural: true' : undefined,
|
|
162
|
+
`fragment: ${importContext.importRamlArtifact(shape.id, constants_2.SHAPE_SELECT_IDENTIFIER)}()`,
|
|
163
|
+
];
|
|
164
|
+
const filteredStatements = statements.filter(Boolean).join(',\n');
|
|
165
|
+
if (dynamicParamsIdentifier !== null) {
|
|
166
|
+
const formattedPropertyName = propertyName.replace(/'/g, '');
|
|
167
|
+
const dynamicParamIdentifier = `${dynamicParamsIdentifier}.${formattedPropertyName}`;
|
|
168
|
+
const propertySelectionIdentifier = `${formattedPropertyName}PathSelection`;
|
|
169
|
+
hoist.push(deindent_1.default `
|
|
170
|
+
const ${propertySelectionIdentifier}: ${constants_1.ADAPTER_PATH_SELECTION_IDENTIFIER} = ${dynamicParamIdentifier} === undefined ? {
|
|
171
|
+
${filteredStatements}
|
|
172
|
+
} : ${dynamicParamIdentifier};
|
|
173
|
+
`);
|
|
174
|
+
return deindent_1.default `
|
|
175
|
+
${propertySelectionIdentifier}
|
|
176
|
+
`;
|
|
177
|
+
}
|
|
178
|
+
return deindent_1.default `
|
|
179
|
+
{
|
|
180
|
+
${filteredStatements}
|
|
181
|
+
}
|
|
182
|
+
`;
|
|
183
|
+
}
|
|
184
|
+
function selectLink(shape, state) {
|
|
185
|
+
const linkTarget = shape.linkTarget;
|
|
186
|
+
if (inheritance_1.isDiscriminatorShape(linkTarget, state.modelInfo)) {
|
|
187
|
+
return selectInheritedLink(shape, state);
|
|
188
|
+
}
|
|
189
|
+
if (state.modelInfo.normalizableShapeDefinitions[shape.id]) {
|
|
190
|
+
return selectNormalizable(linkTarget, state);
|
|
191
|
+
}
|
|
192
|
+
return selectInlineObject(linkTarget, state);
|
|
193
|
+
}
|
|
194
|
+
function selectScalar(state) {
|
|
195
|
+
if (state.isMap) {
|
|
196
|
+
return deindent_1.default `
|
|
197
|
+
{
|
|
198
|
+
${[`name: ${state.propertyName}`, `kind: 'Scalar'`, `map: true`].join(',\n')}
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
}
|
|
202
|
+
if (state.isArray) {
|
|
203
|
+
return deindent_1.default `
|
|
204
|
+
{
|
|
205
|
+
${[`name: ${state.propertyName}`, `kind: 'Scalar'`, `plural: true`].join(',\n')}
|
|
206
|
+
}
|
|
207
|
+
`;
|
|
208
|
+
}
|
|
209
|
+
return deindent_1.default `
|
|
210
|
+
{
|
|
211
|
+
${[
|
|
212
|
+
`name: ${state.propertyName}`,
|
|
213
|
+
`kind: 'Scalar'`,
|
|
214
|
+
...(state.optional === true ? [`required: false`] : []),
|
|
215
|
+
].join(',\n')}
|
|
216
|
+
}
|
|
217
|
+
`;
|
|
218
|
+
}
|
|
219
|
+
function selectObject(shape, state) {
|
|
220
|
+
var _a;
|
|
221
|
+
const privates = (_a = state.modelInfo.shapePrivate[shape.id]) !== null && _a !== void 0 ? _a : [];
|
|
222
|
+
state.hoistPrivate.push(...privates);
|
|
223
|
+
const statements = filterPrivateProperties(shape, state.modelInfo).map((propertyShape) => {
|
|
224
|
+
const propertyName = propertyShape.name;
|
|
225
|
+
const patternName = propertyShape.patternName;
|
|
226
|
+
const propertyValueShape = propertyShape.range;
|
|
227
|
+
const isOptional = propertyShape.isOptional;
|
|
228
|
+
if (patternName !== null) {
|
|
229
|
+
// unknown keys
|
|
230
|
+
if (state.propertyName === '') {
|
|
231
|
+
// empty top level object in RAML?
|
|
232
|
+
return '';
|
|
233
|
+
}
|
|
234
|
+
// for now we just use the "map" property on Links and Scalars
|
|
235
|
+
const isMap = !!state.modelInfo.normalizableShapeDefinitions[shape.id] ||
|
|
236
|
+
utils_1.isScalarShape(propertyValueShape);
|
|
237
|
+
return selectShape(propertyValueShape, {
|
|
238
|
+
propertyName: state.propertyName,
|
|
239
|
+
modelInfo: state.modelInfo,
|
|
240
|
+
isMap,
|
|
241
|
+
isArray: state.isArray,
|
|
242
|
+
rootShape: state.rootShape,
|
|
243
|
+
nullable: state.nullable,
|
|
244
|
+
optional: state.optional,
|
|
245
|
+
hoist: state.hoist,
|
|
246
|
+
hoistPrivate: state.hoistPrivate,
|
|
247
|
+
importContext: state.importContext,
|
|
248
|
+
dynamicParamsIdentifier: state.dynamicParamsIdentifier,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
return selectShape(propertyValueShape, {
|
|
252
|
+
propertyName: `'${propertyName}'`,
|
|
253
|
+
modelInfo: state.modelInfo,
|
|
254
|
+
isMap: state.isMap,
|
|
255
|
+
isArray: state.isArray,
|
|
256
|
+
rootShape: state.rootShape,
|
|
257
|
+
nullable: state.nullable,
|
|
258
|
+
optional: isOptional,
|
|
259
|
+
hoist: state.hoist,
|
|
260
|
+
hoistPrivate: state.hoistPrivate,
|
|
261
|
+
importContext: state.importContext,
|
|
262
|
+
dynamicParamsIdentifier: state.dynamicParamsIdentifier,
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
return statements.join(',\n');
|
|
266
|
+
}
|
|
267
|
+
function filterPrivateProperties(nodeShape, modelInfo) {
|
|
268
|
+
const privates = modelInfo.shapePrivate[nodeShape.id];
|
|
269
|
+
// Nothing to filter
|
|
270
|
+
if (privates === undefined) {
|
|
271
|
+
return nodeShape.properties;
|
|
272
|
+
}
|
|
273
|
+
return nodeShape.properties.filter((property) => {
|
|
274
|
+
const name = property.name;
|
|
275
|
+
return privates.includes(name) === false;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
function getPropertyKind(property) {
|
|
279
|
+
let propertyRange = property.range;
|
|
280
|
+
if (utils_1.isUnionShape(propertyRange)) {
|
|
281
|
+
// Filter out non-scalars
|
|
282
|
+
const nonScalar = propertyRange.anyOf.find((union) => {
|
|
283
|
+
return !utils_1.isScalarShape(union) && !utils_1.isNilShape(union);
|
|
284
|
+
});
|
|
285
|
+
// If the entire union is a scalar, report the type as a Scalar
|
|
286
|
+
if (nonScalar === undefined) {
|
|
287
|
+
return 'Scalar';
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return utils_1.isScalarShape(propertyRange) ? 'Scalar' : 'Object';
|
|
291
|
+
}
|
|
292
|
+
function selectOpaque(nodeShape, state) {
|
|
293
|
+
const { modelInfo, hoistPrivate } = state;
|
|
294
|
+
const privates = modelInfo.shapePrivate[nodeShape.id];
|
|
295
|
+
// We don't have to filter anything
|
|
296
|
+
if (privates === undefined) {
|
|
297
|
+
return `
|
|
298
|
+
opaque: true
|
|
299
|
+
`;
|
|
300
|
+
}
|
|
301
|
+
const statements = filterPrivateProperties(nodeShape, modelInfo).map((property) => {
|
|
302
|
+
const name = property.name;
|
|
303
|
+
const kind = getPropertyKind(property);
|
|
304
|
+
const selection = [
|
|
305
|
+
`name: '${name}'`,
|
|
306
|
+
`kind: '${kind}'`,
|
|
307
|
+
...(kind === 'Object' ? [`opaque: true`] : []),
|
|
308
|
+
...(property.isOptional === true ? [`required: false`] : []),
|
|
309
|
+
];
|
|
310
|
+
return deindent_1.default `
|
|
311
|
+
{
|
|
312
|
+
${selection.join(',\n')}
|
|
313
|
+
}
|
|
314
|
+
`;
|
|
315
|
+
});
|
|
316
|
+
hoistPrivate.push(...privates);
|
|
317
|
+
return deindent_1.default `
|
|
318
|
+
selections: [
|
|
319
|
+
${statements.join(',\n')}
|
|
320
|
+
]
|
|
321
|
+
`;
|
|
322
|
+
}
|
|
323
|
+
exports.selectOpaque = selectOpaque;
|
|
324
|
+
function selectInherited(nodeShape, state) {
|
|
325
|
+
var _a;
|
|
326
|
+
const { modelInfo, importContext, hoist, hoistPrivate, dynamicParamsIdentifier } = state;
|
|
327
|
+
const parent = inheritance_1.getParentShape(nodeShape, modelInfo);
|
|
328
|
+
const parentName = parent.shapeName;
|
|
329
|
+
const parentImport = importContext.importRamlArtifact(parent.shapeId, constants_2.SHAPE_SELECT_IDENTIFIER);
|
|
330
|
+
const parentSelectionsIdentifier = `${parentName}Selections`;
|
|
331
|
+
const privates = (_a = modelInfo.shapePrivate[parent.shapeId]) !== null && _a !== void 0 ? _a : [];
|
|
332
|
+
hoist.push(deindent_1.default `
|
|
333
|
+
const { selections: ${parentSelectionsIdentifier} } = ${parentImport}();
|
|
334
|
+
`);
|
|
335
|
+
hoistPrivate.push(...privates);
|
|
336
|
+
const code = selectObject(nodeShape, {
|
|
337
|
+
rootShape: nodeShape,
|
|
338
|
+
propertyName: '',
|
|
339
|
+
modelInfo,
|
|
340
|
+
isMap: false,
|
|
341
|
+
isArray: false,
|
|
342
|
+
nullable: false,
|
|
343
|
+
optional: false,
|
|
344
|
+
hoist,
|
|
345
|
+
hoistPrivate,
|
|
346
|
+
importContext,
|
|
347
|
+
dynamicParamsIdentifier,
|
|
348
|
+
});
|
|
349
|
+
return deindent_1.default `
|
|
350
|
+
selections: [
|
|
351
|
+
...${parentSelectionsIdentifier},
|
|
352
|
+
${code}
|
|
353
|
+
]
|
|
354
|
+
`;
|
|
355
|
+
}
|
|
356
|
+
function selectNonOpaque(nodeShape, state) {
|
|
357
|
+
const { modelInfo, importContext, hoist, hoistPrivate, dynamicParamsIdentifier } = state;
|
|
358
|
+
if (inheritance_1.hasInheritance(nodeShape, modelInfo)) {
|
|
359
|
+
return selectInherited(nodeShape, state);
|
|
360
|
+
}
|
|
361
|
+
const code = selectShape(nodeShape, {
|
|
362
|
+
rootShape: nodeShape,
|
|
363
|
+
propertyName: '',
|
|
364
|
+
modelInfo,
|
|
365
|
+
isMap: false,
|
|
366
|
+
isArray: false,
|
|
367
|
+
nullable: false,
|
|
368
|
+
optional: false,
|
|
369
|
+
hoist,
|
|
370
|
+
hoistPrivate,
|
|
371
|
+
importContext,
|
|
372
|
+
dynamicParamsIdentifier,
|
|
373
|
+
});
|
|
374
|
+
return deindent_1.default `
|
|
375
|
+
selections: [
|
|
376
|
+
${code}
|
|
377
|
+
]
|
|
378
|
+
`;
|
|
379
|
+
}
|
|
380
|
+
exports.selectNonOpaque = selectNonOpaque;
|
|
381
|
+
//# sourceMappingURL=shape-select-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape-select-utils.js","sourceRoot":"","sources":["../../../src/codegen/shape/shape-select-utils.ts"],"names":[],"mappings":"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"}
|