UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

93 lines 3.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const core_1 = require("@angular-devkit/core"); /** * Find the module referred by a set of options passed to the schematics. */ function findModuleFromOptions(host, options) { if (options.hasOwnProperty('skipImport') && options.skipImport) { return undefined; } if (!options.module) { const pathToCheck = (options.path || '') + (options.flat ? '' : '/' + core_1.strings.dasherize(options.name)); return core_1.normalize(findModule(host, pathToCheck)); } else { const modulePath = core_1.normalize('/' + (options.path) + '/' + options.module); const moduleBaseName = core_1.normalize(modulePath).split('/').pop(); if (host.exists(modulePath)) { return core_1.normalize(modulePath); } else if (host.exists(modulePath + '.ts')) { return core_1.normalize(modulePath + '.ts'); } else if (host.exists(modulePath + '.module.ts')) { return core_1.normalize(modulePath + '.module.ts'); } else if (host.exists(modulePath + '/' + moduleBaseName + '.module.ts')) { return core_1.normalize(modulePath + '/' + moduleBaseName + '.module.ts'); } else { throw new Error('Specified module does not exist'); } } } exports.findModuleFromOptions = findModuleFromOptions; /** * Function to find the "closest" module to a generated file's path. */ function findModule(host, generateDir) { let dir = host.getDir('/' + generateDir); const moduleRe = /\.module\.ts$/; const routingModuleRe = /-routing\.module\.ts/; while (dir) { const matches = dir.subfiles.filter(p => moduleRe.test(p) && !routingModuleRe.test(p)); if (matches.length == 1) { return core_1.join(dir.path, matches[0]); } else if (matches.length > 1) { throw new Error('More than one module matches. Use skip-import option to skip importing ' + 'the component into the closest module.'); } dir = dir.parent; } throw new Error('Could not find an NgModule. Use the skip-import ' + 'option to skip importing in NgModule.'); } exports.findModule = findModule; /** * Build a relative path from one file path to another file path. */ function buildRelativePath(from, to) { from = core_1.normalize(from); to = core_1.normalize(to); // Convert to arrays. const fromParts = from.split('/'); const toParts = to.split('/'); // Remove file names (preserving destination) fromParts.pop(); const toFileName = toParts.pop(); const relativePath = core_1.relative(core_1.normalize(fromParts.join('/')), core_1.normalize(toParts.join('/'))); let pathPrefix = ''; // Set the path prefix for same dir or child dir, parent dir starts with `..` if (!relativePath) { pathPrefix = '.'; } else if (!relativePath.startsWith('.')) { pathPrefix = `./`; } if (pathPrefix && !pathPrefix.endsWith('/')) { pathPrefix += '/'; } return pathPrefix + (relativePath ? relativePath + '/' : '') + toFileName; } exports.buildRelativePath = buildRelativePath; //# sourceMappingURL=find-module.js.map