diff options
author | Nevena Bojovic <nenabojov@gmail.com> | 2022-03-01 20:05:50 +0100 |
---|---|---|
committer | Nevena Bojovic <nenabojov@gmail.com> | 2022-03-01 20:05:50 +0100 |
commit | 291803c31f829fe0d32bb3207bc11def95a7408c (patch) | |
tree | c7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js | |
parent | 1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff) |
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js')
-rw-r--r-- | sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js new file mode 100644 index 00000000..84ab178a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/@angular-devkit/schematics/tools/file-system-engine-host-base.js @@ -0,0 +1,261 @@ +"use strict"; +/** + * @license + * Copyright Google LLC 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 + */ +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FileSystemEngineHostBase = exports.SchematicNameCollisionException = exports.SchematicMissingDescriptionException = exports.SchematicMissingFieldsException = exports.CollectionMissingFieldsException = exports.CollectionMissingSchematicsMapException = exports.FactoryCannotBeResolvedException = exports.SchematicMissingFactoryException = exports.InvalidCollectionJsonException = exports.CollectionCannotBeResolvedException = void 0; +const core_1 = require("@angular-devkit/core"); +const node_1 = require("@angular-devkit/core/node"); +const fs_1 = require("fs"); +const path_1 = require("path"); +const rxjs_1 = require("rxjs"); +const src_1 = require("../src"); +const file_system_utility_1 = require("./file-system-utility"); +class CollectionCannotBeResolvedException extends core_1.BaseException { + constructor(name) { + super(`Collection ${JSON.stringify(name)} cannot be resolved.`); + } +} +exports.CollectionCannotBeResolvedException = CollectionCannotBeResolvedException; +class InvalidCollectionJsonException extends core_1.BaseException { + constructor(_name, path, jsonException) { + let msg = `Collection JSON at path ${JSON.stringify(path)} is invalid.`; + if (jsonException) { + msg = `${msg} ${jsonException.message}`; + } + super(msg); + } +} +exports.InvalidCollectionJsonException = InvalidCollectionJsonException; +class SchematicMissingFactoryException extends core_1.BaseException { + constructor(name) { + super(`Schematic ${JSON.stringify(name)} is missing a factory.`); + } +} +exports.SchematicMissingFactoryException = SchematicMissingFactoryException; +class FactoryCannotBeResolvedException extends core_1.BaseException { + constructor(name) { + super(`Schematic ${JSON.stringify(name)} cannot resolve the factory.`); + } +} +exports.FactoryCannotBeResolvedException = FactoryCannotBeResolvedException; +class CollectionMissingSchematicsMapException extends core_1.BaseException { + constructor(name) { + super(`Collection "${name}" does not have a schematics map.`); + } +} +exports.CollectionMissingSchematicsMapException = CollectionMissingSchematicsMapException; +class CollectionMissingFieldsException extends core_1.BaseException { + constructor(name) { + super(`Collection "${name}" is missing fields.`); + } +} +exports.CollectionMissingFieldsException = CollectionMissingFieldsException; +class SchematicMissingFieldsException extends core_1.BaseException { + constructor(name) { + super(`Schematic "${name}" is missing fields.`); + } +} +exports.SchematicMissingFieldsException = SchematicMissingFieldsException; +class SchematicMissingDescriptionException extends core_1.BaseException { + constructor(name) { + super(`Schematics "${name}" does not have a description.`); + } +} +exports.SchematicMissingDescriptionException = SchematicMissingDescriptionException; +class SchematicNameCollisionException extends core_1.BaseException { + constructor(name) { + super(`Schematics/alias ${JSON.stringify(name)} collides with another alias or schematic` + + ' name.'); + } +} +exports.SchematicNameCollisionException = SchematicNameCollisionException; +/** + * A EngineHost base class that uses the file system to resolve collections. This is the base of + * all other EngineHost provided by the tooling part of the Schematics library. + */ +class FileSystemEngineHostBase { + constructor() { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + this._transforms = []; + this._contextTransforms = []; + this._taskFactories = new Map(); + } + listSchematicNames(collection) { + const schematics = []; + for (const key of Object.keys(collection.schematics)) { + const schematic = collection.schematics[key]; + if (schematic.hidden || schematic.private) { + continue; + } + // If extends is present without a factory it is an alias, do not return it + // unless it is from another collection. + if (!schematic.extends || schematic.factory) { + schematics.push(key); + } + else if (schematic.extends && schematic.extends.indexOf(':') !== -1) { + schematics.push(key); + } + } + return schematics; + } + registerOptionsTransform(t) { + this._transforms.push(t); + } + registerContextTransform(t) { + this._contextTransforms.push(t); + } + /** + * + * @param name + * @return {{path: string}} + */ + createCollectionDescription(name, requester) { + const path = this._resolveCollectionPath(name, requester === null || requester === void 0 ? void 0 : requester.path); + const jsonValue = (0, file_system_utility_1.readJsonFile)(path); + if (!jsonValue || typeof jsonValue != 'object' || Array.isArray(jsonValue)) { + throw new InvalidCollectionJsonException(name, path); + } + // normalize extends property to an array + if (typeof jsonValue['extends'] === 'string') { + jsonValue['extends'] = [jsonValue['extends']]; + } + const description = this._transformCollectionDescription(name, { + ...jsonValue, + path, + }); + if (!description || !description.name) { + throw new InvalidCollectionJsonException(name, path); + } + // Validate aliases. + const allNames = Object.keys(description.schematics); + for (const schematicName of Object.keys(description.schematics)) { + const aliases = description.schematics[schematicName].aliases || []; + for (const alias of aliases) { + if (allNames.indexOf(alias) != -1) { + throw new SchematicNameCollisionException(alias); + } + } + allNames.push(...aliases); + } + return description; + } + createSchematicDescription(name, collection) { + // Resolve aliases first. + for (const schematicName of Object.keys(collection.schematics)) { + const schematicDescription = collection.schematics[schematicName]; + if (schematicDescription.aliases && schematicDescription.aliases.indexOf(name) != -1) { + name = schematicName; + break; + } + } + if (!(name in collection.schematics)) { + return null; + } + const collectionPath = (0, path_1.dirname)(collection.path); + const partialDesc = collection.schematics[name]; + if (!partialDesc) { + return null; + } + if (partialDesc.extends) { + const index = partialDesc.extends.indexOf(':'); + const collectionName = index !== -1 ? partialDesc.extends.substr(0, index) : null; + const schematicName = index === -1 ? partialDesc.extends : partialDesc.extends.substr(index + 1); + if (collectionName !== null) { + const extendCollection = this.createCollectionDescription(collectionName); + return this.createSchematicDescription(schematicName, extendCollection); + } + else { + return this.createSchematicDescription(schematicName, collection); + } + } + // Use any on this ref as we don't have the OptionT here, but we don't need it (we only need + // the path). + if (!partialDesc.factory) { + throw new SchematicMissingFactoryException(name); + } + const resolvedRef = this._resolveReferenceString(partialDesc.factory, collectionPath); + if (!resolvedRef) { + throw new FactoryCannotBeResolvedException(name); + } + let schema = partialDesc.schema; + let schemaJson = undefined; + if (schema) { + if (!(0, path_1.isAbsolute)(schema)) { + schema = (0, path_1.join)(collectionPath, schema); + } + schemaJson = (0, file_system_utility_1.readJsonFile)(schema); + } + // The schematic path is used to resolve URLs. + // We should be able to just do `dirname(resolvedRef.path)` but for compatibility with + // Bazel under Windows this directory needs to be resolved from the collection instead. + // This is needed because on Bazel under Windows the data files (such as the collection or + // url files) are not in the same place as the compiled JS. + const maybePath = (0, path_1.join)(collectionPath, partialDesc.factory); + const path = (0, fs_1.existsSync)(maybePath) && (0, fs_1.statSync)(maybePath).isDirectory() ? maybePath : (0, path_1.dirname)(maybePath); + return this._transformSchematicDescription(name, collection, { + ...partialDesc, + schema, + schemaJson, + name, + path, + factoryFn: resolvedRef.ref, + collection, + }); + } + createSourceFromUrl(url) { + switch (url.protocol) { + case null: + case 'file:': + return (context) => { + // Check if context has necessary FileSystemSchematicContext path property + const fileDescription = context.schematic.description; + if (fileDescription.path === undefined) { + throw new Error('Unsupported schematic context. Expected a FileSystemSchematicContext.'); + } + // Resolve all file:///a/b/c/d from the schematic's own path, and not the current + // path. + const root = (0, core_1.normalize)((0, path_1.resolve)(fileDescription.path, url.path || '')); + return new src_1.HostCreateTree(new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), root)); + }; + } + return null; + } + transformOptions(schematic, options, context) { + const transform = async () => { + let transformedOptions = options; + for (const transformer of this._transforms) { + const transformerResult = transformer(schematic, transformedOptions, context); + transformedOptions = await ((0, rxjs_1.isObservable)(transformerResult) + ? transformerResult.toPromise() + : transformerResult); + } + return transformedOptions; + }; + return (0, rxjs_1.from)(transform()); + } + transformContext(context) { + return this._contextTransforms.reduce((acc, curr) => curr(acc), context); + } + getSchematicRuleFactory(schematic, _collection) { + return schematic.factoryFn; + } + registerTaskExecutor(factory, options) { + this._taskFactories.set(factory.name, () => (0, rxjs_1.from)(factory.create(options))); + } + createTaskExecutor(name) { + const factory = this._taskFactories.get(name); + if (factory) { + return factory(); + } + return (0, rxjs_1.throwError)(new src_1.UnregisteredTaskException(name)); + } + hasTaskExecutor(name) { + return this._taskFactories.has(name); + } +} +exports.FileSystemEngineHostBase = FileSystemEngineHostBase; |