Skip to content
This repository was archived by the owner on May 1, 2020. It is now read-only.

feat(generators): add --minimal flag #1273

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/generators/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export const SUPPLIEDNAME_VARIABLE = '$SUPPLIEDNAME';
export const IMPORTSTATEMENT_VARIABLE = '$IMPORTSTATEMENT';
export const IONICPAGE_VARIABLE = '$IONICPAGE';
export const KNOWN_FILE_EXTENSION = '.tmpl';
export const MINIMAL_FILE_PRE_EXTENSION = '.minimal';

export const SPEC_FILE_EXTENSION = 'spec.ts';
export const NG_MODULE_FILE_EXTENSION = 'module.ts';
Expand Down
33 changes: 33 additions & 0 deletions src/generators/util.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,39 @@ describe('util', () => {
expect(newMap.get(join(templateDir, knownValues[3]))).toBeTruthy();
expect(newMap.get(join(templateDir, knownValues[4]))).toBeFalsy();
});

it('should apply minimal flag', () => {
const map = new Map<string, string>();
const templateDir =
'/Users/noone/project/node_modules/ionic-angular/templates/component';
const fileContent = 'SomeContent';
const knownValues = [
'html.tmpl',
'scss.tmpl',
'spec.ts.tmpl',
'ts.tmpl',
'ts.minimal.tmpl',
'module.ts.tmpl'
];
map.set(join(templateDir, knownValues[0]), fileContent);
map.set(join(templateDir, knownValues[1]), fileContent);
map.set(join(templateDir, knownValues[2]), fileContent);
map.set(join(templateDir, knownValues[3]), fileContent);
map.set(join(templateDir, knownValues[4]), fileContent);
map.set(join(templateDir, knownValues[5]), fileContent);

const newMap = util.filterOutTemplates(
{ includeNgModule: true, includeSpec: true, minimal: true },
map
);
expect(newMap.size).toEqual(1);
expect(newMap.get(join(templateDir, knownValues[0]))).toBeFalsy();
expect(newMap.get(join(templateDir, knownValues[1]))).toBeFalsy();
expect(newMap.get(join(templateDir, knownValues[2]))).toBeFalsy();
expect(newMap.get(join(templateDir, knownValues[3]))).toBeFalsy();
expect(newMap.get(join(templateDir, knownValues[4]))).toBeTruthy();
expect(newMap.get(join(templateDir, knownValues[5]))).toBeFalsy();
});
});

describe('applyTemplates', () => {
Expand Down
7 changes: 6 additions & 1 deletion src/generators/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ export function filterOutTemplates(request: HydratedGeneratorRequest, templates:
const templatesToUseMap = new Map<string, string>();
templates.forEach((fileContent: string, filePath: string) => {
const newFileExtension = basename(filePath, GeneratorConstants.KNOWN_FILE_EXTENSION);
const shouldSkip = (!request.includeNgModule && newFileExtension === GeneratorConstants.NG_MODULE_FILE_EXTENSION) || (!request.includeSpec && newFileExtension === GeneratorConstants.SPEC_FILE_EXTENSION);
const isMinimalTemplate = newFileExtension.endsWith(GeneratorConstants.MINIMAL_FILE_PRE_EXTENSION);
const shouldSkip = (!request.includeNgModule && newFileExtension === GeneratorConstants.NG_MODULE_FILE_EXTENSION)
|| (!request.includeSpec && newFileExtension === GeneratorConstants.SPEC_FILE_EXTENSION)
|| (!request.minimal && isMinimalTemplate)
|| (request.minimal && !isMinimalTemplate);
if (!shouldSkip) {
templatesToUseMap.set(filePath, fileContent);
}
Expand Down Expand Up @@ -291,6 +295,7 @@ export interface GeneratorRequest {
name?: string;
includeSpec?: boolean;
includeNgModule?: boolean;
minimal?: boolean;
}

export interface GeneratorTabRequest extends GeneratorRequest {
Expand Down