Skip to content

Commit

Permalink
fix(dependencies): Optional methods/property for TS interfaces/classes
Browse files Browse the repository at this point in the history
fix #484
  • Loading branch information
vogloblinsky committed Mar 4, 2018
1 parent eece547 commit a3ce87f
Show file tree
Hide file tree
Showing 9 changed files with 288 additions and 167 deletions.
404 changes: 246 additions & 158 deletions src/app/compiler/deps/helpers/class-helper.ts

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions src/templates/partials/block-method.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
{{name}}
</b>
<a href="#{{name}}"><span class="fa fa-link"></span></a>
Expand Down
3 changes: 3 additions & 0 deletions src/templates/partials/block-property.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
{{name}}
</b>
<a href="#{{name}}"><span class="fa fa-link"></span></a>
Expand Down
6 changes: 6 additions & 0 deletions src/templates/partials/index-directive.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
</li>
{{/each}}
Expand All @@ -37,6 +40,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
</li>
{{/each}}
Expand Down
6 changes: 6 additions & 0 deletions src/templates/partials/index.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
</li>
{{/each}}
Expand All @@ -37,6 +40,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
</li>
{{/each}}
Expand Down
6 changes: 6 additions & 0 deletions src/templates/partials/interface.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@
{{#each interface.properties}}
<li>
{{#if name}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
{{else}}
<a href="#{{id}}">Unamed property</a>
Expand All @@ -89,6 +92,9 @@
{{#each modifierKind}}
<span class="modifier">{{modifKind this}}</span>
{{/each}}
{{#if optional}}
<span class="modifier">Optional</span>
{{/if}}
<a href="#{{name}}">{{name}}</a>
</li>
{{/each}}
Expand Down
12 changes: 11 additions & 1 deletion test/src/cli/cli-generation-big-app.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -527,18 +527,28 @@ describe('CLI simple generation - big app', () => {
expect(dependencies).to.contain('typescript');
});

it('should disaply project peerDependencies', () => {
/*it('should display project peerDependencies', () => {
const file = exists(distFolder + '/dependencies.html');
expect(file).to.be.true;
let dependencies = read(distFolder + '/dependencies.html');
expect(dependencies).to.contain('angular/forms');
});*/

it('should support optional for classes', () => {
let file = read(distFolder + '/classes/Todo.html');
expect(file).to.contain('Optional');
});

it('should support optional for interfaces', () => {
let file = read(distFolder + '/interfaces/LabelledTodo.html');
expect(file).to.contain('Optional');
});

it('should support optional for interfaces / methods', () => {
let file = read(distFolder + '/interfaces/TimeInterface.html');
expect(file).to.contain('Optional');
});

it('should support private for constructor', () => {
let file = read(distFolder + '/classes/PrivateConstructor.html');
expect(file).to.contain('<span class="modifier">Private</span>');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ export interface TimeInterface {
* The zone
*/
zone: string;
foo?(): string;
}
14 changes: 6 additions & 8 deletions test/src/todomvc-ng2/src/app/shared/models/todo.model.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
import {
ElementRef
} from "@angular/core";
import { ElementRef } from '@angular/core';

import { Direction } from '../miscellaneous/miscellaneous';

export class Tada {

}
export class Tada {}

/**
* The todo class
Expand All @@ -24,6 +20,8 @@ export class Todo extends Tada {

pos?: PopupPosition;

private optionalProperty?: boolean;

[index: number]: string;

testCommentFunction(dig: number, str: string, bool: boolean): object {
Expand Down Expand Up @@ -59,7 +57,7 @@ export class Todo extends Tada {
* @returns {string}
*/
get runtimePath() {
return this._options.runtimePath;
return this._options.runtimePath;
}

/**
Expand All @@ -83,7 +81,7 @@ export class Todo extends Tada {
}

azert() {
return 5;
return 5;
}
}

Expand Down

0 comments on commit a3ce87f

Please sign in to comment.