Closed nfMalde closed 1 year ago
Added single file mode as option to generate files like Modules or index files. Here are a few example of use cases:
Example 1: I want to generate an NG Module out of my generated files. I use the same helper functions to generate the class names etc.
The TST File looks like this:
${ Template(Settings settings) { settings.SingleFileMode("api.module.ts"); } string GenerateServiceNameOutOfControllerClass(Class cls) { string name = cls.Name.Substring(0, cls.Name.IndexOf("Controller")); return name; } } import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; @NgModule({ imports: [ CommonModule ], declarations: [], providers: [ $Classes(x => x.Namespace.StartsWith("TypewriterTestApp.Controllers"))[ $GenerateServiceNameOutOfControllerClass][,] ] }) export class CustomerDashboardModule { }
Please note: Single File Mode is activated by Settings.SingleFileMode("filename")
Settings.SingleFileMode("filename")
Given I have 2 Controllers in the Namespace TypewriterTestApp.Controllers the file results as "api.module.ts" like:
TypewriterTestApp.Controllers
import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; @NgModule({ imports: [ CommonModule ], declarations: [], providers: [ Settings, UserApi ] }) export class CustomerDashboardModule { }
Example 2 I want to create an index.d.ts. I use the same path helper and name helper
The Template looking like this:
${ Template(Settings settings) { settings.SingleFileMode("index.ts"); } string GenerateServiceNameOutOfControllerClass(Class cls) { string name = cls.Name.Substring(0, cls.Name.IndexOf("Controller")); return name; } string GetTsPath(Class cls) { return $"./clients/{cls.name}.client.ts"; } } // Index TS for all api clients $Classes(x => x.Namespace.StartsWith("TypewriterTestApp.Controllers"))[ export * from '$GetTsPath'; ]
Will result in index.ts like:
// Index TS for all api clients export * from './clients/settingsController.client.ts'; export * from './clients/userApiController.client.ts';
Please note: Single File Usage can demand more RAM depending on the filter set.
The SingleFileParser is fully tested.
@nfMalde thanks for implementation I will try to release this weekend
Added single file mode as option to generate files like Modules or index files. Here are a few example of use cases:
Example 1: I want to generate an NG Module out of my generated files. I use the same helper functions to generate the class names etc.
The TST File looks like this:
Please note: Single File Mode is activated by
Settings.SingleFileMode("filename")
Given I have 2 Controllers in the Namespace
TypewriterTestApp.Controllers
the file results as "api.module.ts" like:Example 2 I want to create an index.d.ts. I use the same path helper and name helper
The Template looking like this:
Will result in index.ts like:
Please note: Single File Usage can demand more RAM depending on the filter set.
The SingleFileParser is fully tested.