mirror of https://github.com/abpframework/abp.git
2 changed files with 44 additions and 0 deletions
@ -0,0 +1,43 @@ |
|||
import { strings } from '@angular-devkit/core'; |
|||
import { Tree } from '@angular-devkit/schematics'; |
|||
import { PROXY_PATH } from '../constants'; |
|||
import { createFileSaver } from './file'; |
|||
|
|||
export function createProxyIndexGenerator(targetPath: string) { |
|||
return createBarrelsGenerator(targetPath + PROXY_PATH); |
|||
} |
|||
|
|||
export function createBarrelsGenerator(rootPath: string) { |
|||
return (tree: Tree) => { |
|||
generateBarrelFromPath(tree, rootPath); |
|||
return tree; |
|||
}; |
|||
} |
|||
|
|||
export function generateBarrelFromPath(tree: Tree, indexPath: string) { |
|||
const saveFile = createFileSaver(tree); |
|||
const dir = tree.getDir(indexPath); |
|||
|
|||
let _exports = ''; |
|||
|
|||
dir.subfiles.forEach(fragment => { |
|||
if (!fragment.endsWith('.ts')) return; |
|||
|
|||
_exports += `export * from './${fragment.replace(/\.ts$/, '')}';
|
|||
`;
|
|||
}); |
|||
|
|||
dir.subdirs.forEach(fragment => { |
|||
const subDirPath = indexPath + '/' + fragment; |
|||
const subDir = tree.getDir(subDirPath); |
|||
let hasFiles = false; |
|||
subDir.visit(() => (hasFiles = true)); |
|||
if (!hasFiles) return; |
|||
|
|||
_exports += `export * as ${strings.classify(fragment)} from './${fragment}';
|
|||
`;
|
|||
generateBarrelFromPath(tree, subDirPath); |
|||
}); |
|||
|
|||
if (_exports) saveFile(indexPath + '/index.ts', _exports); |
|||
} |
|||
Loading…
Reference in new issue