angular-odata 0.140.1 → 0.142.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.
Files changed (67) hide show
  1. package/fesm2022/angular-odata.mjs +58 -44
  2. package/fesm2022/angular-odata.mjs.map +1 -1
  3. package/package.json +5 -5
  4. package/schematics/apigen/angular/api-config.d.ts +2 -1
  5. package/schematics/apigen/angular/api-config.js +9 -3
  6. package/schematics/apigen/angular/api-config.js.map +1 -1
  7. package/schematics/apigen/angular/base.d.ts +13 -4
  8. package/schematics/apigen/angular/base.js +104 -14
  9. package/schematics/apigen/angular/base.js.map +1 -1
  10. package/schematics/apigen/angular/collection.d.ts +23 -0
  11. package/schematics/apigen/angular/collection.js +76 -0
  12. package/schematics/apigen/angular/collection.js.map +1 -0
  13. package/schematics/apigen/angular/entity.d.ts +8 -2
  14. package/schematics/apigen/angular/entity.js +45 -14
  15. package/schematics/apigen/angular/entity.js.map +1 -1
  16. package/schematics/apigen/angular/enum.d.ts +2 -1
  17. package/schematics/apigen/angular/enum.js +2 -2
  18. package/schematics/apigen/angular/enum.js.map +1 -1
  19. package/schematics/apigen/angular/import.d.ts +3 -1
  20. package/schematics/apigen/angular/import.js +16 -2
  21. package/schematics/apigen/angular/import.js.map +1 -1
  22. package/schematics/apigen/angular/model.d.ts +40 -0
  23. package/schematics/apigen/angular/model.js +267 -0
  24. package/schematics/apigen/angular/model.js.map +1 -0
  25. package/schematics/apigen/angular/module.d.ts +3 -1
  26. package/schematics/apigen/angular/module.js +3 -2
  27. package/schematics/apigen/angular/module.js.map +1 -1
  28. package/schematics/apigen/angular/package.d.ts +38 -0
  29. package/schematics/apigen/angular/package.js +166 -0
  30. package/schematics/apigen/angular/package.js.map +1 -0
  31. package/schematics/apigen/angular/service.d.ts +2 -1
  32. package/schematics/apigen/angular/service.js +2 -2
  33. package/schematics/apigen/angular/service.js.map +1 -1
  34. package/schematics/apigen/files/api-config/__fileName__.ts +9 -2
  35. package/schematics/apigen/files/collection/__fileName__.ts +20 -0
  36. package/schematics/apigen/files/entity/__fileName__.ts +3 -2
  37. package/schematics/apigen/files/entitycontainer-service/__fileName__.ts +1 -1
  38. package/schematics/apigen/files/entityset-service/__fileName__.ts +1 -1
  39. package/schematics/apigen/files/model/__fileName__.ts +31 -0
  40. package/schematics/apigen/files/module/__fileName__.ts +1 -1
  41. package/schematics/apigen/files/singleton-service/__fileName__.ts +1 -1
  42. package/schematics/apigen/index.js +18 -97
  43. package/schematics/apigen/index.js.map +1 -1
  44. package/schematics/apigen/metadata/csdl/csdl-entity-set.js +1 -1
  45. package/schematics/apigen/metadata/csdl/csdl-entity-set.js.map +1 -1
  46. package/schematics/apigen/metadata/csdl/csdl-function-action.d.ts +1 -0
  47. package/schematics/apigen/metadata/csdl/csdl-function-action.js +6 -0
  48. package/schematics/apigen/metadata/csdl/csdl-function-action.js.map +1 -1
  49. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.d.ts +9 -1
  50. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js +36 -1
  51. package/schematics/apigen/metadata/csdl/csdl-navigation-property-binding.js.map +1 -1
  52. package/schematics/apigen/metadata/csdl/csdl-singleton.js +1 -1
  53. package/schematics/apigen/metadata/csdl/csdl-singleton.js.map +1 -1
  54. package/schematics/apigen/metadata/csdl/csdl-structural-property.d.ts +8 -3
  55. package/schematics/apigen/metadata/csdl/csdl-structural-property.js +11 -5
  56. package/schematics/apigen/metadata/csdl/csdl-structural-property.js.map +1 -1
  57. package/schematics/apigen/metadata/csdl/csdl-structured-type.d.ts +1 -0
  58. package/schematics/apigen/metadata/csdl/csdl-structured-type.js +16 -2
  59. package/schematics/apigen/metadata/csdl/csdl-structured-type.js.map +1 -1
  60. package/schematics/apigen/metadata/metadata.d.ts +12 -1
  61. package/schematics/apigen/metadata/metadata.js +44 -2
  62. package/schematics/apigen/metadata/metadata.js.map +1 -1
  63. package/schematics/apigen/schema.d.ts +1 -0
  64. package/schematics/apigen/schema.json +5 -0
  65. package/schematics/random.js +1 -1
  66. package/schematics/random.js.map +1 -1
  67. package/{index.d.ts → types/angular-odata.d.ts} +1440 -1404
@@ -2,6 +2,7 @@ import { CsdlEnumType, CsdlMember } from '../metadata/csdl/csdl-enum-type';
2
2
  import { Base } from './base';
3
3
  import { Source } from '@angular-devkit/schematics';
4
4
  import { Schema as ApiGenSchema } from '../schema';
5
+ import { Package } from './package';
5
6
  export declare class EnumValue {
6
7
  private edmType;
7
8
  constructor(edmType: CsdlMember);
@@ -10,7 +11,7 @@ export declare class EnumValue {
10
11
  }
11
12
  export declare class Enum extends Base {
12
13
  protected edmType: CsdlEnumType;
13
- constructor(options: ApiGenSchema, edmType: CsdlEnumType);
14
+ constructor(pkg: Package, options: ApiGenSchema, edmType: CsdlEnumType);
14
15
  template(): Source;
15
16
  variables(): {
16
17
  [name: string]: any;
@@ -17,8 +17,8 @@ class EnumValue {
17
17
  }
18
18
  exports.EnumValue = EnumValue;
19
19
  class Enum extends base_1.Base {
20
- constructor(options, edmType) {
21
- super(options);
20
+ constructor(pkg, options, edmType) {
21
+ super(pkg, options);
22
22
  this.edmType = edmType;
23
23
  }
24
24
  template() {
@@ -1 +1 @@
1
- {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/enum.ts"],"names":[],"mappings":";;;AACA,+CAA+C;AAC/C,iCAA8B;AAE9B,2DAAyD;AAGzD,MAAa,SAAS;IACpB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IACpC,IAAI;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AARD,8BAQC;AACD,MAAa,IAAK,SAAQ,WAAI;IAC5B,YACE,OAAqB,EACX,OAAqB;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFL,YAAO,GAAP,OAAO,CAAc;IAGjC,CAAC;IACe,QAAQ;QACtB,OAAO,IAAA,gBAAG,EAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IACe,SAAS;;QACvB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU;YAC9B,MAAM,EAAE,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;IACe,IAAI;QAClB,OAAO,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACe,QAAQ;QACtB,OAAO,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1D,CAAC;IACe,SAAS;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IACe,QAAQ;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IACM,OAAO;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IACe,WAAW;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AArCD,oBAqCC"}
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/enum.ts"],"names":[],"mappings":";;;AACA,+CAA+C;AAC/C,iCAA8B;AAE9B,2DAAyD;AAIzD,MAAa,SAAS;IACpB,YAAoB,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IACpC,IAAI;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;CACF;AARD,8BAQC;AACD,MAAa,IAAK,SAAQ,WAAI;IAC5B,YACE,GAAY,EACZ,OAAqB,EACX,OAAqB;QAE/B,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAFV,YAAO,GAAP,OAAO,CAAc;IAGjC,CAAC;IACe,QAAQ;QACtB,OAAO,IAAA,gBAAG,EAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IACe,SAAS;;QACvB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU;YAC9B,MAAM,EAAE,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;IACe,IAAI;QAClB,OAAO,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACe,QAAQ;QACtB,OAAO,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IAC1D,CAAC;IACe,SAAS;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IACe,QAAQ;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IACM,OAAO;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IACM,KAAK;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IACe,WAAW;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAtCD,oBAsCC"}
@@ -1,6 +1,8 @@
1
1
  export declare class Import {
2
2
  names: string[];
3
+ aliases: string[];
3
4
  from: string;
4
- constructor(names: string[], from: string);
5
+ constructor(names: string[], aliases: string[], from: string);
5
6
  path(): string;
7
+ resolve(): string[];
6
8
  }
@@ -2,17 +2,31 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Import = void 0;
4
4
  class Import {
5
- constructor(names, from) {
5
+ constructor(names, aliases, from) {
6
6
  this.names = [];
7
+ this.aliases = [];
7
8
  this.names = names;
9
+ this.aliases = aliases;
8
10
  this.from = from;
9
11
  }
10
12
  path() {
11
- var path = this.from.toString();
13
+ let path = this.from.toString();
12
14
  if (!path.startsWith('../'))
13
15
  path = `./${path}`;
14
16
  return path;
15
17
  }
18
+ resolve() {
19
+ let names = [];
20
+ for (let i = 0; i < this.names.length; i++) {
21
+ if (this.names[i] !== this.aliases[i]) {
22
+ names.push(`${this.names[i]} as ${this.aliases[i]}`);
23
+ }
24
+ else {
25
+ names.push(this.names[i]);
26
+ }
27
+ }
28
+ return names;
29
+ }
16
30
  }
17
31
  exports.Import = Import;
18
32
  //# sourceMappingURL=import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/import.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAGjB,YAAmB,KAAe,EAAE,IAAY;QAFzC,UAAK,GAAa,EAAE,CAAC;QAG1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAbD,wBAaC"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/import.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAIjB,YAAmB,KAAe,EAAE,OAAiB,EAAE,IAAY;QAH5D,UAAK,GAAa,EAAE,CAAC;QACrB,YAAO,GAAa,EAAE,CAAC;QAG5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAEM,IAAI;QACT,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO;QACZ,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA3BD,wBA2BC"}
@@ -0,0 +1,40 @@
1
+ import { Base } from './base';
2
+ import { CsdlComplexType, CsdlEntityType } from '../metadata/csdl/csdl-structured-type';
3
+ import { Source } from '@angular-devkit/schematics';
4
+ import { Schema as ApiGenSchema } from '../schema';
5
+ import { CsdlNavigationProperty, CsdlProperty } from '../metadata/csdl/csdl-structural-property';
6
+ import { Entity } from './entity';
7
+ import { Package } from './package';
8
+ import { CsdlNavigationPropertyBinding } from '../metadata/csdl/csdl-navigation-property-binding';
9
+ export declare class ModelField {
10
+ protected model: Model;
11
+ protected edmType: CsdlProperty | CsdlNavigationProperty;
12
+ constructor(model: Model, edmType: CsdlProperty | CsdlNavigationProperty);
13
+ name(): string;
14
+ type(): string;
15
+ resource(): string;
16
+ getter(): string;
17
+ setter(): string;
18
+ fetch(): string;
19
+ isGeoSpatial(): boolean;
20
+ }
21
+ export declare class Model extends Base {
22
+ protected edmType: CsdlEntityType | CsdlComplexType;
23
+ protected entity: Entity;
24
+ constructor(pkg: Package, options: ApiGenSchema, edmType: CsdlEntityType | CsdlComplexType, entity: Entity);
25
+ entityType(): string;
26
+ template(): Source;
27
+ variables(): {
28
+ [name: string]: any;
29
+ };
30
+ name(): string;
31
+ fileName(): string;
32
+ directory(): string;
33
+ fullName(): string;
34
+ importTypes(): string[];
35
+ navitations(): string[];
36
+ renderNavigationPropertyBindings(bindings: CsdlNavigationPropertyBinding[] | undefined): string[];
37
+ fields(): ModelField[];
38
+ geoFields(): ModelField[];
39
+ hasGeoFields(): boolean;
40
+ }
@@ -0,0 +1,267 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Model = exports.ModelField = void 0;
4
+ const core_1 = require("@angular-devkit/core");
5
+ const base_1 = require("./base");
6
+ const schematics_1 = require("@angular-devkit/schematics");
7
+ const csdl_structural_property_1 = require("../metadata/csdl/csdl-structural-property");
8
+ const utils_1 = require("../utils");
9
+ class ModelField {
10
+ constructor(model, edmType) {
11
+ this.model = model;
12
+ this.edmType = edmType;
13
+ }
14
+ name() {
15
+ const required = !(this.edmType instanceof csdl_structural_property_1.CsdlNavigationProperty || this.edmType.Nullable);
16
+ const name = this.edmType.Name;
17
+ return name + (!required ? '?' : '');
18
+ }
19
+ type() {
20
+ const pkg = this.model.getPackage();
21
+ const enumType = pkg.findEnum(this.edmType.Type);
22
+ const entityType = pkg.findEntity(this.edmType.Type);
23
+ let type = 'any';
24
+ if (enumType !== undefined) {
25
+ type = enumType.importedName;
26
+ type += this.edmType.Collection ? '[]' : '';
27
+ }
28
+ else if (entityType !== undefined) {
29
+ if (this.edmType.Collection) {
30
+ const collection = pkg.findCollection(this.edmType.Type);
31
+ const model = pkg.findModel(this.edmType.Type);
32
+ type = `${collection.importedName}<${entityType.importedName}, ${model.importedName}<${entityType.importedName}>>`;
33
+ }
34
+ else {
35
+ const model = pkg.findModel(this.edmType.Type);
36
+ type = `${model.importedName}<${entityType.importedName}>`;
37
+ }
38
+ }
39
+ else {
40
+ type = (0, utils_1.toTypescriptType)(this.edmType.Type);
41
+ type += this.edmType.Collection ? '[]' : '';
42
+ }
43
+ if (this.edmType.Nullable && !this.edmType.Collection) {
44
+ type += ' | null';
45
+ }
46
+ return type;
47
+ }
48
+ resource() {
49
+ const pkg = this.model.getPackage();
50
+ const resourceName = `$$${this.edmType.Name}`;
51
+ if (this.edmType instanceof csdl_structural_property_1.CsdlNavigationProperty) {
52
+ const entity = pkg.findEntity(this.edmType.Type);
53
+ return `public ${resourceName}() {
54
+ return this.navigationProperty<${entity === null || entity === void 0 ? void 0 : entity.importedName}>('${this.edmType.Name}');
55
+ }
56
+ `;
57
+ }
58
+ else {
59
+ return `public ${resourceName}() {
60
+ return this.property<${this.type()}>('${this.edmType.Name}');
61
+ }
62
+ `;
63
+ }
64
+ }
65
+ getter() {
66
+ const pkg = this.model.getPackage();
67
+ const getterName = `$${this.edmType.Name}`;
68
+ if (this.edmType instanceof csdl_structural_property_1.CsdlNavigationProperty) {
69
+ const entity = pkg.findEntity(this.edmType.Type);
70
+ return `public ${getterName}() {
71
+ return this.getAttribute<${entity === null || entity === void 0 ? void 0 : entity.importedName}>('${this.edmType.Name}') as ${entity === null || entity === void 0 ? void 0 : entity.importedName};
72
+ }
73
+ `;
74
+ }
75
+ else {
76
+ return `public ${getterName}() {
77
+ return this.getAttribute<${this.type()}>('${this.edmType.Name}') as ${this.type()};
78
+ }
79
+ `;
80
+ }
81
+ }
82
+ setter() {
83
+ const pkg = this.model.getPackage();
84
+ const setterName = `${this.edmType.Name}$$`;
85
+ if (this.edmType instanceof csdl_structural_property_1.CsdlNavigationProperty) {
86
+ const entity = pkg.findEntity(this.edmType.Type);
87
+ return `public ${setterName}(model: ${this.type()} | null, options?: ODataOptions) {
88
+ return this.setReference<${entity === null || entity === void 0 ? void 0 : entity.importedName}>('${this.edmType.Name}', model, options);
89
+ }
90
+ `;
91
+ }
92
+ else {
93
+ return `
94
+ `;
95
+ }
96
+ }
97
+ fetch() {
98
+ const pkg = this.model.getPackage();
99
+ const fetchName = `${this.edmType.Name}$`;
100
+ if (this.edmType instanceof csdl_structural_property_1.CsdlNavigationProperty) {
101
+ const entity = pkg.findEntity(this.edmType.Type);
102
+ return `public ${fetchName}(options?: ODataQueryArgumentsOptions<${entity === null || entity === void 0 ? void 0 : entity.importedName}>) {
103
+ return this.fetchAttribute<${entity === null || entity === void 0 ? void 0 : entity.importedName}>('${this.edmType.Name}', options) as Observable<${entity === null || entity === void 0 ? void 0 : entity.importedName}>;
104
+ }
105
+ `;
106
+ }
107
+ else {
108
+ return `public ${fetchName}(options?: ODataQueryArgumentsOptions<${this.type()}>) {
109
+ return this.fetchAttribute<${this.type()}>('${this.edmType.Name}', options) as Observable<${this.type()}>;
110
+ }
111
+ `;
112
+ }
113
+ }
114
+ isGeoSpatial() {
115
+ return (this.edmType.Type.startsWith('Edm.Geography') || this.edmType.Type.startsWith('Edm.Geometry'));
116
+ }
117
+ }
118
+ exports.ModelField = ModelField;
119
+ class Model extends base_1.Base {
120
+ constructor(pkg, options, edmType, entity) {
121
+ super(pkg, options);
122
+ this.edmType = edmType;
123
+ this.entity = entity;
124
+ }
125
+ entityType() {
126
+ return this.edmType.fullName();
127
+ }
128
+ template() {
129
+ return (0, schematics_1.url)('./files/model');
130
+ }
131
+ variables() {
132
+ var _a;
133
+ return {
134
+ type: this.name() + 'Model',
135
+ baseType: this.edmType.BaseType ? this.edmType.BaseType + 'Model' : null,
136
+ entity: this.entity,
137
+ fields: this.fields(),
138
+ hasGeoFields: this.hasGeoFields(),
139
+ geoFields: this.geoFields(),
140
+ callables: (_a = this.callables) !== null && _a !== void 0 ? _a : [],
141
+ navigations: this.navitations(),
142
+ };
143
+ }
144
+ name() {
145
+ return core_1.strings.classify(this.edmType.name()) + 'Model';
146
+ }
147
+ fileName() {
148
+ return core_1.strings.dasherize(this.edmType.name()) + '.model';
149
+ }
150
+ directory() {
151
+ return this.edmType.namespace().replace(/\./g, '/');
152
+ }
153
+ fullName() {
154
+ return this.edmType.fullName() + 'Model';
155
+ }
156
+ importTypes() {
157
+ var _a, _b, _c, _d, _e, _f, _g, _h;
158
+ const pkg = this.getPackage();
159
+ const imports = [this.entity.fullName()];
160
+ if (this.edmType.BaseType) {
161
+ imports.push(this.edmType.BaseType);
162
+ imports.push(this.edmType.BaseType + 'Model');
163
+ }
164
+ for (let prop of (_b = (_a = this.edmType) === null || _a === void 0 ? void 0 : _a.Property) !== null && _b !== void 0 ? _b : []) {
165
+ if (!prop.Type.startsWith('Edm.')) {
166
+ imports.push(prop.Type);
167
+ imports.push(prop.Type + 'Model');
168
+ if (prop.Collection) {
169
+ imports.push(prop.Type + 'Collection');
170
+ }
171
+ }
172
+ }
173
+ for (let prop of (_d = (_c = this.edmType) === null || _c === void 0 ? void 0 : _c.NavigationProperty) !== null && _d !== void 0 ? _d : []) {
174
+ if (!prop.Type.startsWith('Edm.')) {
175
+ imports.push(prop.Type);
176
+ imports.push(prop.Type + 'Model');
177
+ if (prop.Collection) {
178
+ imports.push(prop.Type + 'Collection');
179
+ }
180
+ }
181
+ }
182
+ for (let callable of (_e = this.callables) !== null && _e !== void 0 ? _e : []) {
183
+ imports.push(...callable.importTypes());
184
+ }
185
+ const service = pkg.findEntitySet(this.edmType.fullName());
186
+ if (service) {
187
+ imports.push(...((_f = service.NavigationPropertyBinding) !== null && _f !== void 0 ? _f : []).map((b) => b.entityType()));
188
+ imports.push(...((_g = service.NavigationPropertyBinding) !== null && _g !== void 0 ? _g : [])
189
+ .map((b) => b.resolvePropertyType((fullName) => pkg.findEntityType(fullName)))
190
+ .filter((e) => e)
191
+ .map((e) => e.fullName()));
192
+ imports.push(...((_h = service.NavigationPropertyBinding) !== null && _h !== void 0 ? _h : [])
193
+ .map((b) => b.resolveNavigationPropertyType((fullName) => pkg.findEntityType(fullName)))
194
+ .filter((e) => e)
195
+ .map((e) => e.Type));
196
+ }
197
+ return imports;
198
+ }
199
+ navitations() {
200
+ var _a, _b;
201
+ const pkg = this.getPackage();
202
+ const service = pkg.findEntitySet(this.edmType.fullName());
203
+ if (service) {
204
+ const navigations = [];
205
+ let properties = [];
206
+ let entity = this.edmType;
207
+ while (entity) {
208
+ properties = [...properties, ...((_a = this.edmType.NavigationProperty) !== null && _a !== void 0 ? _a : [])];
209
+ if (!entity.BaseType) {
210
+ break;
211
+ }
212
+ entity = this.getPackage().findEntityType(entity.BaseType);
213
+ }
214
+ let bindings = (_b = service.NavigationPropertyBinding) === null || _b === void 0 ? void 0 : _b.filter((binding) => properties.every((p) => {
215
+ const nav = binding.resolveNavigationPropertyType((fullName) => pkg.findEntityType(fullName));
216
+ return p.Name !== (nav === null || nav === void 0 ? void 0 : nav.Name);
217
+ }));
218
+ return this.renderNavigationPropertyBindings(bindings);
219
+ }
220
+ return [];
221
+ }
222
+ renderNavigationPropertyBindings(bindings) {
223
+ const pkg = this.getPackage();
224
+ let result = [];
225
+ let casts = [];
226
+ for (let binding of bindings !== null && bindings !== void 0 ? bindings : []) {
227
+ const nav = binding.resolveNavigationPropertyType((fullName) => pkg.findEntityType(fullName));
228
+ const isCollection = nav ? nav.Collection : false;
229
+ const navEntity = nav ? pkg.findEntityType(nav.Type) : undefined;
230
+ const bindingEntity = pkg.findEntityType(binding.entityType());
231
+ const propertyEntity = binding.resolvePropertyType((fullName) => pkg.findEntityType(fullName));
232
+ const entity = pkg.findEntity((navEntity === null || navEntity === void 0 ? void 0 : navEntity.fullName()) || '');
233
+ if (propertyEntity && bindingEntity && false) {
234
+ }
235
+ else {
236
+ const returnType = isCollection
237
+ ? `ODataCollection<${entity === null || entity === void 0 ? void 0 : entity.importedName}, ODataModel<${entity === null || entity === void 0 ? void 0 : entity.importedName}>>`
238
+ : `ODataModel<${entity === null || entity === void 0 ? void 0 : entity.importedName}>`;
239
+ var responseType = isCollection ? 'collection' : 'model';
240
+ var methodName = `as${propertyEntity === null || propertyEntity === void 0 ? void 0 : propertyEntity.Name}` +
241
+ (nav === null || nav === void 0 ? void 0 : nav.Name.substring(0, 1).toUpperCase()) +
242
+ (nav === null || nav === void 0 ? void 0 : nav.Name.substring(1));
243
+ var castEntity = pkg.findEntity((propertyEntity === null || propertyEntity === void 0 ? void 0 : propertyEntity.fullName()) || '');
244
+ // Navigation
245
+ result.push(`public ${methodName}(options?: ODataQueryArgumentsOptions<${entity === null || entity === void 0 ? void 0 : entity.importedName}>) {
246
+ return this.fetchNavigationProperty<${entity === null || entity === void 0 ? void 0 : entity.importedName}>('${binding.Path}', '${responseType}', options) as Observable<${returnType}>;
247
+ }`);
248
+ }
249
+ }
250
+ return result;
251
+ }
252
+ fields() {
253
+ var _a, _b;
254
+ return [
255
+ ...((_a = this.edmType.Property) !== null && _a !== void 0 ? _a : []).map((p) => new ModelField(this, p)),
256
+ ...((_b = this.edmType.NavigationProperty) !== null && _b !== void 0 ? _b : []).map((p) => new ModelField(this, p)),
257
+ ];
258
+ }
259
+ geoFields() {
260
+ return this.fields().filter((p) => p.isGeoSpatial());
261
+ }
262
+ hasGeoFields() {
263
+ return this.geoFields().length > 0;
264
+ }
265
+ }
266
+ exports.Model = Model;
267
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/model.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,iCAA8B;AAE9B,2DAAyD;AAEzD,wFAAiG;AACjG,oCAA4C;AAK5C,MAAa,UAAU;IACrB,YACY,KAAY,EACZ,OAA8C;QAD9C,UAAK,GAAL,KAAK,CAAO;QACZ,YAAO,GAAP,OAAO,CAAuC;IACvD,CAAC;IAEJ,IAAI;QACF,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,YAAY,iDAAsB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC/B,OAAO,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,GAAG,QAAQ,CAAC,YAAa,CAAC;YAC9B,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,GAAG,GAAG,UAAW,CAAC,YAAY,IAAI,UAAW,CAAC,YAAY,KAAK,KAAM,CAAC,YAAY,IAAI,UAAW,CAAC,YAAY,IAAI,CAAC;YACzH,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,GAAG,GAAG,KAAM,CAAC,YAAY,IAAI,UAAW,CAAC,YAAY,GAAG,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YACtD,IAAI,IAAI,SAAS,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,YAAY,iDAAsB,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,UAAU,YAAY;qCACE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI;;GAE7E,CAAC;QACA,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,YAAY;2BACR,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI;;GAE1D,CAAC;QACA,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,YAAY,iDAAsB,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,UAAU,UAAU;+BACF,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY;;GAEpG,CAAC;QACA,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,UAAU;+BACF,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE;;GAElF,CAAC;QACA,CAAC;IACH,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC5C,IAAI,IAAI,CAAC,OAAO,YAAY,iDAAsB,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,UAAU,UAAU,WAAW,IAAI,CAAC,IAAI,EAAE;+BACxB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI;;GAEvE,CAAC;QACA,CAAC;aAAM,CAAC;YACN,OAAO;GACV,CAAC;QACA,CAAC;IACH,CAAC;IAED,KAAK;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO,YAAY,iDAAsB,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,UAAU,SAAS,yCAAyC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY;iCAC5D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,6BAA6B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY;;CAE5H,CAAC;QACE,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,SAAS,yCAAyC,IAAI,CAAC,IAAI,EAAE;iCACnD,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,6BAA6B,IAAI,CAAC,IAAI,EAAE;;CAE1G,CAAC;QACE,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,CACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAC9F,CAAC;IACJ,CAAC;CACF;AA9GD,gCA8GC;AAED,MAAa,KAAM,SAAQ,WAAI;IAC7B,YACE,GAAY,EACZ,OAAqB,EACX,OAAyC,EACzC,MAAc;QAExB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAHV,YAAO,GAAP,OAAO,CAAkC;QACzC,WAAM,GAAN,MAAM,CAAQ;IAG1B,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAEe,QAAQ;QACtB,OAAO,IAAA,gBAAG,EAAC,eAAe,CAAC,CAAC;IAC9B,CAAC;IACe,SAAS;;QACvB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO;YAC3B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI;YACxE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;YAC3B,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;SAChC,CAAC;IACJ,CAAC;IACe,IAAI;QAClB,OAAO,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;IACzD,CAAC;IACe,QAAQ;QACtB,OAAO,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;IAC3D,CAAC;IACe,SAAS;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IACe,QAAQ;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC3C,CAAC;IACe,WAAW;;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,IAAI,IAAI,IAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,mCAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,IAAI,IAAI,IAAI,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,kBAAkB,mCAAI,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK,IAAI,QAAQ,IAAI,MAAA,IAAI,CAAC,SAAS,mCAAI,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,OAAO,CAAC,yBAAyB,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,MAAA,OAAO,CAAC,yBAAyB,mCAAI,EAAE,CAAC;iBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACrF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC,CAC7B,CAAC;YACF,OAAO,CAAC,IAAI,CACV,GAAG,CAAC,MAAA,OAAO,CAAC,yBAAyB,mCAAI,EAAE,CAAC;iBACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,6BAA6B,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CACpF;iBACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;iBAChB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,CAAC,IAAI,CAAC,CACvB,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,WAAW;;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,UAAU,GAA6B,EAAE,CAAC;YAC9C,IAAI,MAAM,GAAiD,IAAI,CAAC,OAAO,CAAC;YACxE,OAAO,MAAM,EAAE,CAAC;gBACd,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,mCAAI,EAAE,CAAC,CAAC,CAAC;gBACzE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACrB,MAAM;gBACR,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,QAAQ,GAAG,MAAA,OAAO,CAAC,yBAAyB,0CAAE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CACnE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrB,MAAM,GAAG,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,QAAgB,EAAE,EAAE,CACrE,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC7B,CAAC;gBACF,OAAO,CAAC,CAAC,IAAI,MAAK,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAA,CAAC;YAC9B,CAAC,CAAC,CACH,CAAC;YACF,OAAO,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,gCAAgC,CAC9B,QAAqD;QAErD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAa,EAAE,CAAC;QAC1B,IAAI,KAAK,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,OAAO,IAAI,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,QAAgB,EAAE,EAAE,CACrE,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC7B,CAAC;YACF,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,QAAgB,EAAE,EAAE,CACtE,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC7B,CAAC;YAEF,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,cAAc,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,YAAY;oBAC7B,CAAC,CAAC,mBAAmB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,gBAAgB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,IAAI;oBACjF,CAAC,CAAC,cAAc,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,GAAG,CAAC;gBAC1C,IAAI,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,IAAI,UAAU,GACZ,KAAK,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE;qBAC3B,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAA;qBACvC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC;gBACzB,IAAI,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC,CAAC;gBAElE,aAAa;gBACb,MAAM,CAAC,IAAI,CAAC,UAAU,UAAU,yCAAyC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY;0CAC3D,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,MAAM,OAAO,CAAC,IAAI,OAAO,YAAY,6BAA6B,UAAU;IACtI,CAAC,CAAC;YACA,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACM,MAAM;;QACX,OAAO;YACL,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpE,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC/E,CAAC;IACJ,CAAC;IACM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IACM,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;CACF;AAvKD,sBAuKC"}
@@ -2,9 +2,11 @@ import { Base } from './base';
2
2
  import { Source } from '@angular-devkit/schematics';
3
3
  import { Schema as ApiGenSchema } from '../schema';
4
4
  import { Service } from './service';
5
+ import { Package } from './package';
5
6
  export declare class Module extends Base {
7
+ protected pkg: Package;
6
8
  services: Service[];
7
- constructor(options: ApiGenSchema);
9
+ constructor(pkg: Package, options: ApiGenSchema);
8
10
  template(): Source;
9
11
  variables(): {
10
12
  [name: string]: any;
@@ -5,8 +5,9 @@ const core_1 = require("@angular-devkit/core");
5
5
  const base_1 = require("./base");
6
6
  const schematics_1 = require("@angular-devkit/schematics");
7
7
  class Module extends base_1.Base {
8
- constructor(options) {
9
- super(options);
8
+ constructor(pkg, options) {
9
+ super(pkg, options);
10
+ this.pkg = pkg;
10
11
  this.services = [];
11
12
  }
12
13
  template() {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/module.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,iCAA8B;AAC9B,2DAAyD;AAIzD,MAAa,MAAO,SAAQ,WAAI;IAE9B,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFjB,aAAQ,GAAc,EAAE,CAAC;IAGzB,CAAC;IACe,QAAQ;QACtB,OAAO,IAAA,gBAAG,EAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IACe,SAAS;QACvB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IACM,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACe,IAAI;QAClB,OAAO,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACxD,CAAC;IACe,QAAQ;QACtB,OAAO,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,CAAC;IACe,SAAS;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACe,QAAQ;QACtB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACe,WAAW;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAhCD,wBAgCC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../projects/angular-odata/schematics/apigen/angular/module.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,iCAA8B;AAC9B,2DAAyD;AAKzD,MAAa,MAAO,SAAQ,WAAI;IAE9B,YACY,GAAY,EACtB,OAAqB;QAErB,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAHV,QAAG,GAAH,GAAG,CAAS;QAFxB,aAAQ,GAAc,EAAE,CAAC;IAMzB,CAAC;IACe,QAAQ;QACtB,OAAO,IAAA,gBAAG,EAAC,gBAAgB,CAAC,CAAC;IAC/B,CAAC;IACe,SAAS;QACvB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IACM,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACe,IAAI;QAClB,OAAO,cAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;IACxD,CAAC;IACe,QAAQ;QACtB,OAAO,cAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,CAAC;IACe,SAAS;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACe,QAAQ;QACtB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IACe,WAAW;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAnCD,wBAmCC"}
@@ -0,0 +1,38 @@
1
+ import { Base, Callable, Index, Metadata } from './base';
2
+ import { Schema as ApiGenSchema } from '../schema';
3
+ import { Module } from './module';
4
+ import { ApiConfig } from './api-config';
5
+ import { ODataMetadata } from '../metadata';
6
+ import { Enum } from './enum';
7
+ import { Entity } from './entity';
8
+ import { Model } from './model';
9
+ import { Collection } from './collection';
10
+ import { Service } from './service';
11
+ import { CsdlEnumType } from '../metadata/csdl/csdl-enum-type';
12
+ import { CsdlComplexType, CsdlEntityType } from '../metadata/csdl/csdl-structured-type';
13
+ import { CsdlEntitySet } from '../metadata/csdl/csdl-entity-set';
14
+ export declare class Package {
15
+ protected options: ApiGenSchema;
16
+ metadata: Metadata;
17
+ module: Module;
18
+ config: ApiConfig;
19
+ index: Index;
20
+ enums: Enum[];
21
+ entities: Entity[];
22
+ services: Service[];
23
+ models: Model[];
24
+ collections: Collection[];
25
+ functions: Callable[];
26
+ actions: Callable[];
27
+ constructor(options: ApiGenSchema, meta: ODataMetadata);
28
+ resolveImports(): void;
29
+ sources(): Base[];
30
+ findEnum(fullName: string): Enum | undefined;
31
+ findEnumType(fullName: string): CsdlEnumType | undefined;
32
+ findEntity(fullName: string): Entity | undefined;
33
+ findEntityType(fullName: string): CsdlEntityType | undefined;
34
+ findEntitySet(fullName: string): CsdlEntitySet | undefined;
35
+ findComplexType(fullName: string): CsdlComplexType | undefined;
36
+ findModel(fullName: string): Model | undefined;
37
+ findCollection(fullName: string): Collection | undefined;
38
+ }
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Package = void 0;
4
+ const base_1 = require("./base");
5
+ const module_1 = require("./module");
6
+ const api_config_1 = require("./api-config");
7
+ const enum_1 = require("./enum");
8
+ const entity_1 = require("./entity");
9
+ const model_1 = require("./model");
10
+ const collection_1 = require("./collection");
11
+ const service_1 = require("./service");
12
+ class Package {
13
+ constructor(options, meta) {
14
+ var _a, _b, _c, _d, _e, _f;
15
+ this.options = options;
16
+ this.enums = [];
17
+ this.entities = [];
18
+ this.services = [];
19
+ this.models = [];
20
+ this.collections = [];
21
+ this.functions = [];
22
+ this.actions = [];
23
+ this.metadata = new base_1.Metadata(this, options, meta);
24
+ this.module = new module_1.Module(this, options);
25
+ this.config = new api_config_1.ApiConfig(this, options);
26
+ this.index = new base_1.Index(this, options);
27
+ this.index.addDependency(this.module);
28
+ this.index.addDependency(this.config);
29
+ for (let s of meta.Schemas) {
30
+ const namespace = s.Namespace;
31
+ // Enum
32
+ for (const enumType of (_a = s.EnumType) !== null && _a !== void 0 ? _a : []) {
33
+ const enu = new enum_1.Enum(this, options, enumType);
34
+ this.enums.push(enu);
35
+ this.index.addDependency(enu);
36
+ }
37
+ // Entity
38
+ for (let entityType of (_b = s.EntityType) !== null && _b !== void 0 ? _b : []) {
39
+ const entity = new entity_1.Entity(this, options, entityType);
40
+ this.entities.push(entity);
41
+ this.index.addDependency(entity);
42
+ if (options.models) {
43
+ const model = new model_1.Model(this, options, entityType, entity);
44
+ this.index.addDependency(model);
45
+ this.models.push(model);
46
+ const collection = new collection_1.Collection(this, options, entityType, entity, model);
47
+ this.index.addDependency(collection);
48
+ this.collections.push(collection);
49
+ }
50
+ }
51
+ // Complex
52
+ for (let complexType of (_c = s.ComplexType) !== null && _c !== void 0 ? _c : []) {
53
+ const entity = new entity_1.Entity(this, options, complexType);
54
+ this.index.addDependency(entity);
55
+ this.entities.push(entity);
56
+ if (options.models) {
57
+ const model = new model_1.Model(this, options, complexType, entity);
58
+ this.index.addDependency(model);
59
+ this.models.push(model);
60
+ const collection = new collection_1.Collection(this, options, complexType, entity, model);
61
+ this.index.addDependency(collection);
62
+ this.collections.push(collection);
63
+ }
64
+ }
65
+ // Container
66
+ for (let entityContainer of (_d = s.EntityContainer) !== null && _d !== void 0 ? _d : []) {
67
+ const service = new service_1.Service(this, options, entityContainer);
68
+ this.module.addService(service);
69
+ this.index.addDependency(service);
70
+ this.services.push(service);
71
+ for (let entitySet of (_e = entityContainer.EntitySet) !== null && _e !== void 0 ? _e : []) {
72
+ const service = new service_1.Service(this, options, entitySet);
73
+ this.module.addService(service);
74
+ this.index.addDependency(service);
75
+ this.services.push(service);
76
+ }
77
+ for (let singleton of (_f = entityContainer.Singleton) !== null && _f !== void 0 ? _f : []) {
78
+ const service = new service_1.Service(this, options, singleton);
79
+ this.module.addService(service);
80
+ this.index.addDependency(service);
81
+ this.services.push(service);
82
+ }
83
+ }
84
+ }
85
+ this.functions = meta.functions().reduce((callables, f) => {
86
+ const callable = callables.find((c) => c.name() == f.Name);
87
+ if (callable !== undefined) {
88
+ callable.addOverload(f);
89
+ }
90
+ else {
91
+ callables.push(new base_1.Callable(f));
92
+ }
93
+ return callables;
94
+ }, []);
95
+ this.actions = meta.actions().reduce((callables, a) => {
96
+ const callable = callables.find((c) => c.name() == a.Name);
97
+ if (callable !== undefined) {
98
+ callable.addOverload(a);
99
+ }
100
+ else {
101
+ callables.push(new base_1.Callable(a));
102
+ }
103
+ return callables;
104
+ }, []);
105
+ this.services.forEach((s) => {
106
+ s.addCallables(this.functions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === s.entityType(); }));
107
+ s.addCallables(this.actions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === s.entityType(); }));
108
+ });
109
+ this.models.forEach((m) => {
110
+ m.addCallables(this.functions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === m.entityType(); }));
111
+ m.addCallables(this.actions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === m.entityType(); }));
112
+ });
113
+ this.collections.forEach((c) => {
114
+ c.addCallables(this.functions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === c.entityType(); }));
115
+ c.addCallables(this.actions.filter((f) => { var _a; return f.isBound() && ((_a = f.bindingParameter()) === null || _a === void 0 ? void 0 : _a.Type) === c.entityType(); }));
116
+ });
117
+ }
118
+ resolveImports() {
119
+ const sources = this.sources();
120
+ for (let s of sources) {
121
+ for (let t of s.importTypes()) {
122
+ s.addDependencies(sources.filter((s) => s.fullName() === t));
123
+ }
124
+ }
125
+ }
126
+ sources() {
127
+ const sources = [
128
+ ...this.enums,
129
+ ...this.entities,
130
+ ...this.models,
131
+ ...this.collections,
132
+ ...this.services,
133
+ this.metadata,
134
+ this.index,
135
+ this.module,
136
+ this.config,
137
+ ];
138
+ return sources;
139
+ }
140
+ findEnum(fullName) {
141
+ return this.enums.find((e) => e.fullName() === fullName);
142
+ }
143
+ findEnumType(fullName) {
144
+ return this.metadata.findEnumType(fullName);
145
+ }
146
+ findEntity(fullName) {
147
+ return this.entities.find((e) => e.fullName() === fullName);
148
+ }
149
+ findEntityType(fullName) {
150
+ return this.metadata.findEntityType(fullName);
151
+ }
152
+ findEntitySet(fullName) {
153
+ return this.metadata.findEntitySet(fullName);
154
+ }
155
+ findComplexType(fullName) {
156
+ return this.metadata.findComplexType(fullName);
157
+ }
158
+ findModel(fullName) {
159
+ return this.models.find((m) => m.entityType() === fullName);
160
+ }
161
+ findCollection(fullName) {
162
+ return this.collections.find((c) => c.entityType() === fullName);
163
+ }
164
+ }
165
+ exports.Package = Package;
166
+ //# sourceMappingURL=package.js.map