@ng-doc/builder 16.1.0 → 16.2.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 (112) hide show
  1. package/classes/observable-set.d.ts +1 -0
  2. package/classes/observable-set.js +3 -0
  3. package/classes/observable-set.js.map +1 -1
  4. package/engine/.cache/apps/ng-doc/src/app/pages/docs/develop/ng-doc.page.js +2 -1
  5. package/engine/.cache/apps/ng-doc/src/app/pages/docs/features/cache/ng-doc.page.js +41 -0
  6. package/engine/builder.d.ts +4 -0
  7. package/engine/builder.js +21 -4
  8. package/engine/builder.js.map +1 -1
  9. package/engine/entities/abstractions/entity.d.ts +11 -6
  10. package/engine/entities/abstractions/entity.js +162 -125
  11. package/engine/entities/abstractions/entity.js.map +1 -1
  12. package/engine/entities/api-page.entity.js +107 -94
  13. package/engine/entities/api-page.entity.js.map +1 -1
  14. package/engine/entities/api-scope.entity.d.ts +1 -0
  15. package/engine/entities/api-scope.entity.js +93 -76
  16. package/engine/entities/api-scope.entity.js.map +1 -1
  17. package/engine/entities/api.entity.js +103 -90
  18. package/engine/entities/api.entity.js.map +1 -1
  19. package/engine/entities/cache/cache.d.ts +19 -0
  20. package/engine/entities/cache/cache.js +47 -0
  21. package/engine/entities/cache/cache.js.map +1 -0
  22. package/engine/entities/cache/cached-files-initializer.d.ts +7 -0
  23. package/engine/entities/cache/cached-files-initializer.js +20 -0
  24. package/engine/entities/cache/cached-files-initializer.js.map +1 -0
  25. package/engine/entities/cache/cached-props-initializer.d.ts +8 -0
  26. package/engine/entities/cache/cached-props-initializer.js +24 -0
  27. package/engine/entities/cache/cached-props-initializer.js.map +1 -0
  28. package/engine/entities/cache/decorators/cached-entity.d.ts +12 -0
  29. package/engine/entities/cache/decorators/cached-entity.js +34 -0
  30. package/engine/entities/cache/decorators/cached-entity.js.map +1 -0
  31. package/engine/entities/cache/decorators/cached-files-getter.d.ts +5 -0
  32. package/engine/entities/cache/decorators/cached-files-getter.js +20 -0
  33. package/engine/entities/cache/decorators/cached-files-getter.js.map +1 -0
  34. package/engine/entities/cache/decorators/cached-property.d.ts +7 -0
  35. package/engine/entities/cache/decorators/cached-property.js +21 -0
  36. package/engine/entities/cache/decorators/cached-property.js.map +1 -0
  37. package/engine/entities/cache/decorators/index.d.ts +3 -0
  38. package/engine/entities/cache/decorators/index.js +7 -0
  39. package/engine/entities/cache/decorators/index.js.map +1 -0
  40. package/engine/entities/cache/helpers/create-cache-for-file.d.ts +6 -0
  41. package/engine/entities/cache/helpers/create-cache-for-file.js +21 -0
  42. package/engine/entities/cache/helpers/create-cache-for-file.js.map +1 -0
  43. package/engine/entities/cache/helpers/create-cache.d.ts +9 -0
  44. package/engine/entities/cache/helpers/create-cache.js +23 -0
  45. package/engine/entities/cache/helpers/create-cache.js.map +1 -0
  46. package/engine/entities/cache/helpers/get-cache-dir-path.d.ts +4 -0
  47. package/engine/entities/cache/helpers/get-cache-dir-path.js +18 -0
  48. package/engine/entities/cache/helpers/get-cache-dir-path.js.map +1 -0
  49. package/engine/entities/cache/helpers/get-cache-file-path.d.ts +6 -0
  50. package/engine/entities/cache/helpers/get-cache-file-path.js +17 -0
  51. package/engine/entities/cache/helpers/get-cache-file-path.js.map +1 -0
  52. package/engine/entities/cache/helpers/index.d.ts +8 -0
  53. package/engine/entities/cache/helpers/index.js +12 -0
  54. package/engine/entities/cache/helpers/index.js.map +1 -0
  55. package/engine/entities/cache/helpers/invalidate-cache-if-needed.d.ts +6 -0
  56. package/engine/entities/cache/helpers/invalidate-cache-if-needed.js +29 -0
  57. package/engine/entities/cache/helpers/invalidate-cache-if-needed.js.map +1 -0
  58. package/engine/entities/cache/helpers/is-cache-valid.d.ts +8 -0
  59. package/engine/entities/cache/helpers/is-cache-valid.js +21 -0
  60. package/engine/entities/cache/helpers/is-cache-valid.js.map +1 -0
  61. package/engine/entities/cache/helpers/load-cache.d.ts +7 -0
  62. package/engine/entities/cache/helpers/load-cache.js +23 -0
  63. package/engine/entities/cache/helpers/load-cache.js.map +1 -0
  64. package/engine/entities/cache/helpers/update-cache.d.ts +9 -0
  65. package/engine/entities/cache/helpers/update-cache.js +24 -0
  66. package/engine/entities/cache/helpers/update-cache.js.map +1 -0
  67. package/engine/entities/cache/index.d.ts +4 -0
  68. package/engine/entities/cache/index.js +8 -0
  69. package/engine/entities/cache/index.js.map +1 -0
  70. package/engine/entities/cache/interfaces/cache-accessor.d.ts +5 -0
  71. package/engine/entities/cache/interfaces/cache-accessor.js +3 -0
  72. package/engine/entities/cache/interfaces/cache-accessor.js.map +1 -0
  73. package/engine/entities/cache/interfaces/cached-data.d.ts +5 -0
  74. package/engine/entities/cache/interfaces/cached-data.js +3 -0
  75. package/engine/entities/cache/interfaces/cached-data.js.map +1 -0
  76. package/engine/entities/cache/interfaces/index.d.ts +2 -0
  77. package/engine/entities/cache/interfaces/index.js +6 -0
  78. package/engine/entities/cache/interfaces/index.js.map +1 -0
  79. package/engine/entities/category.entity.js +97 -84
  80. package/engine/entities/category.entity.js.map +1 -1
  81. package/engine/entities/dependencies.entity.js +137 -125
  82. package/engine/entities/dependencies.entity.js.map +1 -1
  83. package/engine/entities/index.d.ts +1 -0
  84. package/engine/entities/index.js +1 -0
  85. package/engine/entities/index.js.map +1 -1
  86. package/engine/entities/indexes.entity.d.ts +13 -0
  87. package/engine/entities/indexes.entity.js +38 -0
  88. package/engine/entities/indexes.entity.js.map +1 -0
  89. package/engine/entities/page.entity.js +131 -115
  90. package/engine/entities/page.entity.js.map +1 -1
  91. package/engine/entities/skeleton.entity.d.ts +0 -1
  92. package/engine/entities/skeleton.entity.js +1 -19
  93. package/engine/entities/skeleton.entity.js.map +1 -1
  94. package/engine/entity-life-cycle.js +2 -4
  95. package/engine/entity-life-cycle.js.map +1 -1
  96. package/engine/functions/build-candidates.d.ts +3 -1
  97. package/engine/functions/build-candidates.js +8 -4
  98. package/engine/functions/build-candidates.js.map +1 -1
  99. package/helpers/create-builder-context.js +2 -1
  100. package/helpers/create-builder-context.js.map +1 -1
  101. package/helpers/get-component-asset.js +3 -5
  102. package/helpers/get-component-asset.js.map +1 -1
  103. package/helpers/load-config.d.ts +1 -1
  104. package/helpers/load-config.js +2 -1
  105. package/helpers/load-config.js.map +1 -1
  106. package/helpers/process-html.js +1 -0
  107. package/helpers/process-html.js.map +1 -1
  108. package/helpers/typescript/create-project.js +1 -1
  109. package/helpers/typescript/create-project.js.map +1 -1
  110. package/interfaces/builder-context.d.ts +1 -0
  111. package/interfaces/configuration.d.ts +4 -0
  112. package/package.json +6 -4
@@ -2,6 +2,7 @@ import { Observable } from 'rxjs';
2
2
  export declare class ObservableSet<T> {
3
3
  private collection;
4
4
  private changes$;
5
+ asArray(): T[];
5
6
  changes(): Observable<T[]>;
6
7
  add(...values: T[]): void;
7
8
  delete(value: T): void;
@@ -9,6 +9,9 @@ class ObservableSet {
9
9
  this.collection = new Set();
10
10
  this.changes$ = new rxjs_1.ReplaySubject();
11
11
  }
12
+ asArray() {
13
+ return (0, core_1.asArray)(this.collection);
14
+ }
12
15
  changes() {
13
16
  return this.changes$.pipe((0, operators_1.map)(() => (0, core_1.asArray)(this.collection)));
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"observable-set.js","sourceRoot":"","sources":["../../../../libs/builder/classes/observable-set.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,+BAA+C;AAC/C,8CAAmC;AAEnC,MAAa,aAAa;IAA1B;QACS,eAAU,GAAW,IAAI,GAAG,EAAE,CAAC;QAC/B,aAAQ,GAAwB,IAAI,oBAAa,EAAQ,CAAC;IAoBnE,CAAC;IAlBA,OAAO;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,eAAG,EAAC,GAAG,EAAE,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,GAAG,MAAW;QACjB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACD;AAtBD,sCAsBC"}
1
+ {"version":3,"file":"observable-set.js","sourceRoot":"","sources":["../../../../libs/builder/classes/observable-set.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,+BAA+C;AAC/C,8CAAmC;AAEnC,MAAa,aAAa;IAA1B;QACS,eAAU,GAAW,IAAI,GAAG,EAAE,CAAC;QAC/B,aAAQ,GAAwB,IAAI,oBAAa,EAAQ,CAAC;IAuBnE,CAAC;IArBA,OAAO;QACN,OAAO,IAAA,cAAO,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IACD,OAAO;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAA,eAAG,EAAC,GAAG,EAAE,CAAC,IAAA,cAAO,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,GAAG,MAAW;QACjB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAQ;QACd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;CACD;AAzBD,sCAyBC"}
@@ -42,6 +42,7 @@ var DevelopPage = {
42
42
  typescript: NgDocDeclarations,
43
43
  angular: NgDocAngularEntities
44
44
  }
45
- }
45
+ },
46
+ keyword: "DevelopPage"
46
47
  };
47
48
  var ng_doc_page_default = DevelopPage;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // apps/ng-doc/src/app/pages/docs/features/cache/ng-doc.page.ts
21
+ var ng_doc_page_exports = {};
22
+ __export(ng_doc_page_exports, {
23
+ default: () => ng_doc_page_default
24
+ });
25
+ module.exports = __toCommonJS(ng_doc_page_exports);
26
+
27
+ // apps/ng-doc/src/app/pages/docs/features/ng-doc.category.ts
28
+ var FeaturesCategory = {
29
+ title: "Features",
30
+ order: 5
31
+ };
32
+ var ng_doc_category_default = FeaturesCategory;
33
+
34
+ // apps/ng-doc/src/app/pages/docs/features/cache/ng-doc.page.ts
35
+ var CachePage = {
36
+ title: `Cache`,
37
+ mdFile: "./index.md",
38
+ category: ng_doc_category_default,
39
+ order: 1
40
+ };
41
+ var ng_doc_page_default = CachePage;
@@ -3,13 +3,17 @@ import { Project, SourceFile } from 'ts-morph';
3
3
  import { NgDocBuilderContext } from '../interfaces';
4
4
  import { NgDocSkeletonEntity } from './entities';
5
5
  import { NgDocEntity } from './entities/abstractions/entity';
6
+ import { NgDocCache } from './entities/cache';
7
+ import { NgDocIndexesEntity } from './entities/indexes.entity';
6
8
  import { NgDocEntityStore } from './entity-store';
7
9
  import { NgDocRenderer } from './renderer';
8
10
  export declare class NgDocBuilder {
9
11
  readonly context: NgDocBuilderContext;
10
12
  readonly entities: NgDocEntityStore;
11
13
  readonly skeleton: NgDocSkeletonEntity;
14
+ readonly indexes: NgDocIndexesEntity;
12
15
  readonly renderer: NgDocRenderer;
16
+ readonly cache: NgDocCache;
13
17
  readonly project: Project;
14
18
  constructor(context: NgDocBuilderContext);
15
19
  run(): Observable<void>;
package/engine/builder.js CHANGED
@@ -13,6 +13,8 @@ const operators_2 = require("../operators");
13
13
  const buffer_until_once_1 = require("../operators/buffer-until-once");
14
14
  const fork_join_or_empty_1 = require("../operators/fork-join-or-empty");
15
15
  const entities_1 = require("./entities");
16
+ const cache_1 = require("./entities/cache");
17
+ const indexes_entity_1 = require("./entities/indexes.entity");
16
18
  const entity_life_cycle_1 = require("./entity-life-cycle");
17
19
  const entity_store_1 = require("./entity-store");
18
20
  const build_candidates_1 = require("./functions/build-candidates");
@@ -21,14 +23,23 @@ const variables_1 = require("./variables");
21
23
  const watcher_1 = require("./watcher");
22
24
  class NgDocBuilder {
23
25
  constructor(context) {
26
+ var _a;
24
27
  this.context = context;
25
28
  this.entities = new entity_store_1.NgDocEntityStore();
26
29
  this.skeleton = new entities_1.NgDocSkeletonEntity(this, this.context);
30
+ this.indexes = new indexes_entity_1.NgDocIndexesEntity(this, this.context);
27
31
  this.renderer = new renderer_1.NgDocRenderer();
32
+ this.cache = new cache_1.NgDocCache(((_a = this.context.config) === null || _a === void 0 ? void 0 : _a.cache) !== false);
28
33
  this.project = (0, helpers_1.createProject)({ tsConfigFilePath: this.context.tsConfig });
29
34
  }
30
35
  run() {
31
- fs.rmSync(this.context.buildPath, { recursive: true, force: true });
36
+ var _a;
37
+ if (((_a = this.context.config) === null || _a === void 0 ? void 0 : _a.cache) !== false && (0, cache_1.invalidateCacheIfNeeded)(this.context.cachedFiles)) {
38
+ // do nothing
39
+ }
40
+ else {
41
+ fs.rmSync(this.context.buildPath, { recursive: true, force: true });
42
+ }
32
43
  const watcher = new watcher_1.NgDocWatcher(this.context.pagesPaths
33
44
  .map((pagesPath) => [
34
45
  path.join(pagesPath, variables_1.PAGE_PATTERN),
@@ -67,10 +78,16 @@ class NgDocBuilder {
67
78
  }))), (0, operators_1.startWith)(null), (0, operators_1.mapTo)(entity), (0, operators_1.takeUntil)((0, rxjs_1.merge)(entity.onDestroy(), watcher.onChange(...entity.rootFiles))))))
68
79
  : (0, rxjs_1.of)(null)));
69
80
  }), (0, operators_2.bufferDebounce)(50), (0, operators_2.progress)('Building documentation...'), (0, operators_1.map)((entities) => entities.filter(core_1.isPresent)), (0, operators_1.tap)(() => this.entities.updateKeywordMap(this.context.config.keywords)),
81
+ // Build only entities that are not cached or have changed
82
+ (0, operators_1.map)((entities) => entities.filter((entity) => !this.cache.isCacheValid(entity))),
70
83
  // Build touched entities and their dependencies
71
- (0, operators_1.concatMap)((entities) => (0, fork_join_or_empty_1.forkJoinOrEmpty)((0, build_candidates_1.buildCandidates)(entities).map((entity) => {
84
+ (0, operators_1.concatMap)((entities) => (0, fork_join_or_empty_1.forkJoinOrEmpty)((0, build_candidates_1.buildCandidates)(this.entities, entities).map((entity) => {
72
85
  return entity.destroyed ? (0, rxjs_1.of)([]) : entity.buildArtifacts();
73
- })).pipe((0, operators_1.switchMap)((output) => this.skeleton.buildArtifacts().pipe((0, operators_1.map)((skeleton) => [...output.flat(), ...skeleton]))), (0, operators_2.progress)('Emitting files...'), (0, operators_1.tap)((output) => {
86
+ })).pipe((0, operators_1.switchMap)((output) => (0, rxjs_1.forkJoin)([this.skeleton.buildArtifacts(), this.indexes.buildArtifacts()]).pipe((0, operators_1.map)(([skeleton, indexes]) => [
87
+ ...output.flat(),
88
+ ...skeleton,
89
+ ...indexes,
90
+ ]))), (0, operators_2.progress)('Emitting files...'), (0, operators_1.tap)((output) => {
74
91
  /*
75
92
  We emit files and only after that delete destroyed ones, because otherwise
76
93
  angular compiler can raise an error that these items are not exist
@@ -79,7 +96,7 @@ class NgDocBuilder {
79
96
  this.collectGarbage();
80
97
  }))), (0, operators_2.progress)(), (0, operators_1.mapTo)(void 0), (0, operators_1.catchError)((e) => {
81
98
  this.context.context.logger.error(`NgDoc error: ${e.message}\n${e.stack}`);
82
- return (0, rxjs_1.of)(void 0);
99
+ return (0, rxjs_1.of)(void 0).pipe((0, operators_2.progress)());
83
100
  }), (0, operators_1.finalize)(() => watcher.close()));
84
101
  }
85
102
  get(id, canBeBuilt) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../libs/builder/engine/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../libs/builder/engine/builder.ts"],"names":[],"mappings":"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"}
@@ -10,15 +10,23 @@ import { NgDocBuilder } from '../../builder';
10
10
  export declare abstract class NgDocEntity {
11
11
  readonly builder: NgDocBuilder;
12
12
  readonly context: NgDocBuilderContext;
13
+ /**
14
+ * The key by which the entity will be stored in the store
15
+ */
16
+ abstract readonly id: string;
13
17
  /** Indicates when entity was destroyed */
14
18
  destroyed: boolean;
15
19
  /** Search indexes for the current entity */
16
20
  indexes: NgDocPageIndex[];
17
21
  /**
18
- * List of keywords that are used by the entity
19
- * (they will be sat by Keywords Processor, and used to indicate when this entity should be re-build if one of them appears)
22
+ * List of keywords that were linked to the entity
20
23
  */
21
24
  usedKeywords: Set<string>;
25
+ /**
26
+ * List of potential keywords that are used by the entity but not linked yet
27
+ * (they will be sat by Keywords Processor, and used to indicate when this entity should be re-build if one of them appears)
28
+ */
29
+ potentialKeywords: Set<string>;
22
30
  /**
23
31
  * Collection of all file dependencies of the current entity.
24
32
  * This property is using to watch for changes in this dependencies list and rebuild current buildable.
@@ -34,10 +42,6 @@ export declare abstract class NgDocEntity {
34
42
  private destroy$;
35
43
  /** Indicates when current entity could be built */
36
44
  protected readyToBuild: boolean;
37
- /**
38
- * The key by which the entity will be stored in the store
39
- */
40
- abstract readonly id: string;
41
45
  /**
42
46
  * Files that are watched for changes to rebuild entity or remove it
43
47
  */
@@ -92,6 +96,7 @@ export declare abstract class NgDocEntity {
92
96
  */
93
97
  get isReadyForBuild(): boolean;
94
98
  get logger(): logging.LoggerApi;
99
+ get cachedFilePaths(): string[];
95
100
  /**
96
101
  * Build all artifacts that need for application.
97
102
  * This is the last method in the build process, should return output that should be emitted to the file system
@@ -1,135 +1,172 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NgDocEntity = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const rxjs_1 = require("rxjs");
5
6
  const operators_1 = require("rxjs/operators");
6
7
  const classes_1 = require("../../../classes");
8
+ const decorators_1 = require("../cache/decorators");
7
9
  /**
8
10
  * Base entity class that all entities should extend.
9
11
  */
10
- class NgDocEntity {
11
- constructor(builder, context) {
12
- this.builder = builder;
13
- this.context = context;
14
- /** Indicates when entity was destroyed */
15
- this.destroyed = false;
16
- /** Search indexes for the current entity */
17
- this.indexes = [];
18
- /**
19
- * List of keywords that are used by the entity
20
- * (they will be sat by Keywords Processor, and used to indicate when this entity should be re-build if one of them appears)
21
- */
22
- this.usedKeywords = new Set();
23
- /**
24
- * Collection of all file dependencies of the current entity.
25
- * This property is using to watch for changes in this dependencies list and rebuild current buildable.
26
- */
27
- this.dependencies = new classes_1.ObservableSet();
28
- /**
29
- * Indicates if this entity has physical file in file system
30
- * If this entity was generated by another Entity, this property should be `false`
31
- *
32
- * NgDoc destroys all child elements of non-physical entities when they are destroyed
33
- */
34
- this.physical = true;
35
- this.destroy$ = new rxjs_1.Subject();
36
- /** Indicates when current entity could be built */
37
- this.readyToBuild = false;
38
- }
39
- /** Indicates if the current entity can be built */
40
- get canBeBuilt() {
41
- return true;
42
- }
43
- /**
44
- * Recursively returns parents for the current entity
45
- *
46
- * @type {Array<NgDocEntity>}
47
- */
48
- get parentEntities() {
49
- var _a, _b, _c;
50
- return [(_a = this.parent) !== null && _a !== void 0 ? _a : [], (_c = (_b = this.parent) === null || _b === void 0 ? void 0 : _b.parentEntities) !== null && _c !== void 0 ? _c : []].flat();
51
- }
52
- /**
53
- * The children of the entity.
54
- * Contains all children of the current entity.
55
- */
56
- get children() {
57
- return this.builder.entities.asArray().filter((entity) => entity.parent === this && !entity.destroyed);
58
- }
59
- /**
60
- * Returns children that are ready to build or already built
61
- */
62
- get builtChildren() {
63
- return this.children.filter((entity) => entity.isReadyForBuild);
64
- }
65
- /**
66
- * Recursively returns children for the current entity
67
- *
68
- * @type {Array<NgDocEntity>}
69
- */
70
- get childEntities() {
71
- return [...this.children, ...this.children.map((child) => child.childEntities).flat()];
72
- }
73
- /**
74
- * Returns `true` if current entity has children
75
- *
76
- * @type {boolean}
77
- */
78
- get hasChildren() {
79
- return this.children.length > 0;
80
- }
81
- /**
82
- * Should return if this entity is ready to build
83
- * Using for build process to skip entityStore that is not ready for build
84
- *
85
- * @type {boolean}
86
- */
87
- get isReadyForBuild() {
88
- return this.readyToBuild && !this.destroyed && this.canBeBuilt;
89
- }
90
- get logger() {
91
- return this.context.context.logger;
92
- }
93
- /**
94
- * Method called by NgDocBuilder when one or more dependencies have changed
95
- */
96
- dependenciesChanged() {
97
- this.readyToBuild = true;
98
- }
99
- childrenGenerator() {
100
- return (0, rxjs_1.of)([]);
101
- }
102
- buildArtifacts() {
103
- // Clear all indexes and used keywords before build
104
- this.usedKeywords.clear();
105
- this.indexes = [];
106
- return (0, rxjs_1.of)(null).pipe((0, operators_1.switchMap)(() => this.build()), (0, operators_1.catchError)((e) => {
107
- this.logger.error(`Error during processing "${this.id}"\n${e.message}\n${e.stack}`);
108
- this.readyToBuild = false;
109
- return (0, rxjs_1.of)([]);
110
- }));
111
- }
112
- emit() {
113
- // No implementation
114
- return (0, rxjs_1.of)(void 0);
115
- }
116
- removeArtifacts() {
117
- // No implementation
118
- }
119
- /**
120
- * Destroys current entity and clear all references
121
- *
122
- * @type {void}
123
- */
124
- destroy() {
125
- this.children.forEach((entity) => !entity.physical && entity.destroy());
126
- this.readyToBuild = false;
127
- this.destroyed = true;
128
- this.destroy$.next();
129
- }
130
- onDestroy() {
131
- return this.destroy$.asObservable().pipe((0, operators_1.take)(1));
132
- }
133
- }
134
- exports.NgDocEntity = NgDocEntity;
12
+ exports.NgDocEntity = (() => {
13
+ var _a;
14
+ let _instanceExtraInitializers = [];
15
+ let _indexes_decorators;
16
+ let _indexes_initializers = [];
17
+ let _usedKeywords_decorators;
18
+ let _usedKeywords_initializers = [];
19
+ let _potentialKeywords_decorators;
20
+ let _potentialKeywords_initializers = [];
21
+ let _get_cachedFilePaths_decorators;
22
+ return _a = class NgDocEntity {
23
+ constructor(builder, context) {
24
+ this.builder = (tslib_1.__runInitializers(this, _instanceExtraInitializers), builder);
25
+ this.context = context;
26
+ /** Indicates when entity was destroyed */
27
+ this.destroyed = false;
28
+ /** Search indexes for the current entity */
29
+ this.indexes = tslib_1.__runInitializers(this, _indexes_initializers, []);
30
+ /**
31
+ * List of keywords that were linked to the entity
32
+ */
33
+ this.usedKeywords = tslib_1.__runInitializers(this, _usedKeywords_initializers, new Set());
34
+ /**
35
+ * List of potential keywords that are used by the entity but not linked yet
36
+ * (they will be sat by Keywords Processor, and used to indicate when this entity should be re-build if one of them appears)
37
+ */
38
+ this.potentialKeywords = tslib_1.__runInitializers(this, _potentialKeywords_initializers, new Set());
39
+ /**
40
+ * Collection of all file dependencies of the current entity.
41
+ * This property is using to watch for changes in this dependencies list and rebuild current buildable.
42
+ */
43
+ this.dependencies = new classes_1.ObservableSet();
44
+ /**
45
+ * Indicates if this entity has physical file in file system
46
+ * If this entity was generated by another Entity, this property should be `false`
47
+ *
48
+ * NgDoc destroys all child elements of non-physical entities when they are destroyed
49
+ */
50
+ this.physical = true;
51
+ this.destroy$ = new rxjs_1.Subject();
52
+ /** Indicates when current entity could be built */
53
+ this.readyToBuild = false;
54
+ }
55
+ /** Indicates if the current entity can be built */
56
+ get canBeBuilt() {
57
+ return true;
58
+ }
59
+ /**
60
+ * Recursively returns parents for the current entity
61
+ *
62
+ * @type {Array<NgDocEntity>}
63
+ */
64
+ get parentEntities() {
65
+ var _a, _b, _c;
66
+ return [(_a = this.parent) !== null && _a !== void 0 ? _a : [], (_c = (_b = this.parent) === null || _b === void 0 ? void 0 : _b.parentEntities) !== null && _c !== void 0 ? _c : []].flat();
67
+ }
68
+ /**
69
+ * The children of the entity.
70
+ * Contains all children of the current entity.
71
+ */
72
+ get children() {
73
+ return this.builder.entities.asArray().filter((entity) => entity.parent === this && !entity.destroyed);
74
+ }
75
+ /**
76
+ * Returns children that are ready to build or already built
77
+ */
78
+ get builtChildren() {
79
+ return this.children.filter((entity) => entity.isReadyForBuild);
80
+ }
81
+ /**
82
+ * Recursively returns children for the current entity
83
+ *
84
+ * @type {Array<NgDocEntity>}
85
+ */
86
+ get childEntities() {
87
+ return [...this.children, ...this.children.map((child) => child.childEntities).flat()];
88
+ }
89
+ /**
90
+ * Returns `true` if current entity has children
91
+ *
92
+ * @type {boolean}
93
+ */
94
+ get hasChildren() {
95
+ return this.children.length > 0;
96
+ }
97
+ /**
98
+ * Should return if this entity is ready to build
99
+ * Using for build process to skip entityStore that is not ready for build
100
+ *
101
+ * @type {boolean}
102
+ */
103
+ get isReadyForBuild() {
104
+ return this.readyToBuild && !this.destroyed && this.canBeBuilt;
105
+ }
106
+ get logger() {
107
+ return this.context.context.logger;
108
+ }
109
+ get cachedFilePaths() {
110
+ return this.rootFiles.concat(this.dependencies.asArray());
111
+ }
112
+ /**
113
+ * Method called by NgDocBuilder when one or more dependencies have changed
114
+ */
115
+ dependenciesChanged() {
116
+ this.readyToBuild = true;
117
+ }
118
+ childrenGenerator() {
119
+ return (0, rxjs_1.of)([]);
120
+ }
121
+ buildArtifacts() {
122
+ // Clear all indexes and used keywords before build
123
+ this.usedKeywords.clear();
124
+ this.potentialKeywords.clear();
125
+ this.indexes = [];
126
+ return this.build().pipe((0, operators_1.tap)(() => this.builder.cache.cache(this)), (0, operators_1.catchError)((e) => {
127
+ this.logger.error(`Error during processing "${this.id}"\n${e.message}\n${e.stack}`);
128
+ this.readyToBuild = false;
129
+ return (0, rxjs_1.of)([]);
130
+ }));
131
+ }
132
+ emit() {
133
+ // No implementation
134
+ return (0, rxjs_1.of)(void 0);
135
+ }
136
+ removeArtifacts() {
137
+ // No implementation
138
+ }
139
+ /**
140
+ * Destroys current entity and clear all references
141
+ *
142
+ * @type {void}
143
+ */
144
+ destroy() {
145
+ this.children.forEach((entity) => !entity.physical && entity.destroy());
146
+ this.readyToBuild = false;
147
+ this.destroyed = true;
148
+ this.destroy$.next();
149
+ }
150
+ onDestroy() {
151
+ return this.destroy$.asObservable().pipe((0, operators_1.take)(1));
152
+ }
153
+ },
154
+ (() => {
155
+ _indexes_decorators = [(0, decorators_1.CachedProperty)()];
156
+ _usedKeywords_decorators = [(0, decorators_1.CachedProperty)({
157
+ get: (value) => new Set(value),
158
+ set: (value) => Array.from(value),
159
+ })];
160
+ _potentialKeywords_decorators = [(0, decorators_1.CachedProperty)({
161
+ get: (value) => new Set(value),
162
+ set: (value) => Array.from(value),
163
+ })];
164
+ _get_cachedFilePaths_decorators = [(0, decorators_1.CachedFilesGetter)()];
165
+ tslib_1.__esDecorate(_a, null, _get_cachedFilePaths_decorators, { kind: "getter", name: "cachedFilePaths", static: false, private: false, access: { has: obj => "cachedFilePaths" in obj, get: obj => obj.cachedFilePaths } }, null, _instanceExtraInitializers);
166
+ tslib_1.__esDecorate(null, null, _indexes_decorators, { kind: "field", name: "indexes", static: false, private: false, access: { has: obj => "indexes" in obj, get: obj => obj.indexes, set: (obj, value) => { obj.indexes = value; } } }, _indexes_initializers, _instanceExtraInitializers);
167
+ tslib_1.__esDecorate(null, null, _usedKeywords_decorators, { kind: "field", name: "usedKeywords", static: false, private: false, access: { has: obj => "usedKeywords" in obj, get: obj => obj.usedKeywords, set: (obj, value) => { obj.usedKeywords = value; } } }, _usedKeywords_initializers, _instanceExtraInitializers);
168
+ tslib_1.__esDecorate(null, null, _potentialKeywords_decorators, { kind: "field", name: "potentialKeywords", static: false, private: false, access: { has: obj => "potentialKeywords" in obj, get: obj => obj.potentialKeywords, set: (obj, value) => { obj.potentialKeywords = value; } } }, _potentialKeywords_initializers, _instanceExtraInitializers);
169
+ })(),
170
+ _a;
171
+ })();
135
172
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../../libs/builder/engine/entities/abstractions/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../../../libs/builder/engine/entities/abstractions/entity.ts"],"names":[],"mappings":"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"}