packages/store/schematics/src/starter-kit/starter-kit.factory.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import { Rule, Tree, url } from '@angular-devkit/schematics';
import { generateFiles } from '../utils/generate-utils';
import { isStandaloneApp } from '../utils/ng-utils/ng-ast-utils';
import { getProjectMainFile } from '../utils/ng-utils/project';
import { normalizePath } from '../utils/normalize-options';
import { StarterKitSchema } from './starter-kit.schema';

export function starterKit(options: StarterKitSchema): Rule {
  return (host: Tree) => {
    let isStandalone = options.standalone;
    if (typeof isStandalone !== 'boolean') {
      const mainFile = getProjectMainFile(host, options.project);
      isStandalone = !!mainFile && isStandaloneApp(host, mainFile);
    }

    const normalizedPath = normalizePath(options.path);

    return generateFiles(
      url('./files'),
      normalizedPath,
      { ...options, isStandalone },
      options.spec
    );
  };
}