@ngrx/schematics
Advanced tools
Comparing version 11.0.1 to 11.1.0
@@ -85,4 +85,10 @@ { | ||
"description": "Installs the NgRx schematics package" | ||
}, | ||
"component-store": { | ||
"aliases": ["cs"], | ||
"factory": "./src/component-store", | ||
"schema": "./src/component-store/schema.json", | ||
"description": "Add component store." | ||
} | ||
} | ||
} |
{ | ||
"name": "@ngrx/schematics", | ||
"version": "11.0.1", | ||
"version": "11.1.0", | ||
"description": "NgRx Schematics for Angular", | ||
@@ -42,6 +42,3 @@ "repository": { | ||
"main": "src/index.js", | ||
"typings": "src/index.d.ts", | ||
"dependencies": { | ||
"@angular/core": "^11.0.2" | ||
} | ||
"typings": "src/index.d.ts" | ||
} |
@@ -10,3 +10,3 @@ "use strict"; | ||
exports.__esModule = true; | ||
exports.visitTemplates = exports.visitNgModules = exports.visitDecorator = exports.visitComponents = exports.visitNgModuleExports = exports.visitNgModuleImports = exports.visitTSSourceFiles = exports.platformVersion = exports.addPackageToPackageJson = exports.parseName = exports.updatePackage = exports.stringUtils = exports.isLib = exports.getProject = exports.getProjectPath = exports.omit = exports.addReducerToActionReducerMap = exports.addReducerImportToNgModule = exports.addReducerToStateInterface = exports.addReducerToState = exports.findPropertyInAstObject = exports.buildRelativePath = exports.findModuleFromOptions = exports.findModule = exports.getWorkspacePath = exports.getWorkspace = exports.commitChanges = exports.createChangeRecorder = exports.createReplaceChange = exports.ReplaceChange = exports.RemoveChange = exports.InsertChange = exports.NoopChange = exports.containsProperty = exports.replaceImport = exports.addProviderToModule = exports.addImportToModule = exports.addExportToModule = exports.addDeclarationToModule = exports.addBootstrapToModule = exports.insertImport = exports.insertAfterLastOccurrence = exports.getContentOfKeyLiteral = exports.getDecoratorMetadata = exports.getSourceNodes = exports.findNodes = exports.isIvyEnabled = void 0; | ||
exports.visitTemplates = exports.visitNgModules = exports.visitDecorator = exports.visitComponents = exports.visitNgModuleExports = exports.visitNgModuleImports = exports.visitTSSourceFiles = exports.platformVersion = exports.addPackageToPackageJson = exports.parseName = exports.updatePackage = exports.stringUtils = exports.isLib = exports.getProject = exports.getProjectPath = exports.omit = exports.addReducerToActionReducerMap = exports.addReducerImportToNgModule = exports.addReducerToStateInterface = exports.addReducerToState = exports.findPropertyInAstObject = exports.buildRelativePath = exports.findModuleFromOptions = exports.findModule = exports.findComponentFromOptions = exports.getWorkspacePath = exports.getWorkspace = exports.commitChanges = exports.createChangeRecorder = exports.createReplaceChange = exports.ReplaceChange = exports.RemoveChange = exports.InsertChange = exports.NoopChange = exports.containsProperty = exports.replaceImport = exports.addProviderToModule = exports.addProviderToComponent = exports.addImportToModule = exports.addExportToModule = exports.addDeclarationToModule = exports.addBootstrapToModule = exports.insertImport = exports.insertAfterLastOccurrence = exports.getContentOfKeyLiteral = exports.getDecoratorMetadata = exports.getSourceNodes = exports.findNodes = exports.isIvyEnabled = void 0; | ||
var strings_1 = require("./utility/strings"); | ||
@@ -26,2 +26,3 @@ var angular_utils_1 = require("./utility/angular-utils"); | ||
__createBinding(exports, ast_utils_1, "addImportToModule"); | ||
__createBinding(exports, ast_utils_1, "addProviderToComponent"); | ||
__createBinding(exports, ast_utils_1, "addProviderToModule"); | ||
@@ -41,2 +42,4 @@ __createBinding(exports, ast_utils_1, "replaceImport"); | ||
__createBinding(exports, config_1, "getWorkspacePath"); | ||
var find_component_1 = require("./utility/find-component"); | ||
__createBinding(exports, find_component_1, "findComponentFromOptions"); | ||
var find_module_1 = require("./utility/find-module"); | ||
@@ -43,0 +46,0 @@ __createBinding(exports, find_module_1, "findModule"); |
@@ -34,3 +34,3 @@ "use strict"; | ||
exports.__esModule = true; | ||
exports.containsProperty = exports.replaceImport = exports.insertImport = exports.addBootstrapToModule = exports.addExportToModule = exports.addProviderToModule = exports.addImportToModule = exports.addDeclarationToModule = exports.getDecoratorMetadata = exports.getContentOfKeyLiteral = exports.insertAfterLastOccurrence = exports.getSourceNodes = exports.findNodes = void 0; | ||
exports.containsProperty = exports.replaceImport = exports.insertImport = exports.addBootstrapToModule = exports.addExportToModule = exports.addProviderToComponent = exports.addProviderToModule = exports.addImportToModule = exports.addDeclarationToModule = exports.getDecoratorMetadata = exports.getContentOfKeyLiteral = exports.insertAfterLastOccurrence = exports.getSourceNodes = exports.findNodes = void 0; | ||
/* istanbul ignore file */ | ||
@@ -414,2 +414,121 @@ /** | ||
} | ||
function _addSymbolToComponentMetadata(source, componentPath, metadataField, symbolName, importPath) { | ||
var nodes = getDecoratorMetadata(source, 'Component', '@angular/core'); | ||
var node = nodes[0]; // tslint:disable-line:no-any | ||
// Find the decorator declaration. | ||
if (!node) { | ||
return []; | ||
} | ||
// Get all the children property assignment of object literals. | ||
var matchingProperties = node.properties | ||
.filter(function (prop) { return prop.kind == ts.SyntaxKind.PropertyAssignment; }) | ||
// Filter out every fields that's not "metadataField". Also handles string literals | ||
// (but not expressions). | ||
.filter(function (prop) { | ||
var name = prop.name; | ||
switch (name.kind) { | ||
case ts.SyntaxKind.Identifier: | ||
return name.getText(source) == metadataField; | ||
case ts.SyntaxKind.StringLiteral: | ||
return name.text == metadataField; | ||
} | ||
return false; | ||
}); | ||
// Get the last node of the array literal. | ||
if (!matchingProperties) { | ||
return []; | ||
} | ||
if (matchingProperties.length == 0) { | ||
// We haven't found the field in the metadata declaration. Insert a new field. | ||
var expr = node; | ||
var position_2; | ||
var toInsert_2; | ||
if (expr.properties.length == 0) { | ||
position_2 = expr.getEnd() - 1; | ||
toInsert_2 = " " + metadataField + ": [" + symbolName + "]\n"; | ||
} | ||
else { | ||
node = expr.properties[expr.properties.length - 1]; | ||
position_2 = node.getEnd(); | ||
// Get the indentation of the last element, if any. | ||
var text = node.getFullText(source); | ||
var matches = text.match(/^\r?\n\s*/); | ||
if (matches.length > 0) { | ||
toInsert_2 = "," + matches[0] + metadataField + ": [" + symbolName + "]"; | ||
} | ||
else { | ||
toInsert_2 = ", " + metadataField + ": [" + symbolName + "]"; | ||
} | ||
} | ||
var newMetadataProperty = new change_1.InsertChange(componentPath, position_2, toInsert_2); | ||
var newMetadataImport = insertImport(source, componentPath, symbolName.replace(/\..*$/, ''), importPath); | ||
return [newMetadataProperty, newMetadataImport]; | ||
} | ||
var assignment = matchingProperties[0]; | ||
// If it's not an array, nothing we can do really. | ||
if (assignment.initializer.kind !== ts.SyntaxKind.ArrayLiteralExpression) { | ||
return []; | ||
} | ||
var arrLiteral = assignment.initializer; | ||
if (arrLiteral.elements.length == 0) { | ||
// Forward the property. | ||
node = arrLiteral; | ||
} | ||
else { | ||
node = arrLiteral.elements; | ||
} | ||
if (!node) { | ||
console.log('No component found. Please add your new class to your component.'); | ||
return []; | ||
} | ||
if (Array.isArray(node)) { | ||
var nodeArray = node; | ||
var symbolsArray = nodeArray.map(function (node) { return node.getText(); }); | ||
if (symbolsArray.includes(symbolName)) { | ||
return []; | ||
} | ||
node = node[node.length - 1]; | ||
} | ||
var toInsert; | ||
var position = node.getEnd(); | ||
if (node.kind == ts.SyntaxKind.ObjectLiteralExpression) { | ||
// We haven't found the field in the metadata declaration. Insert a new | ||
// field. | ||
var expr = node; | ||
if (expr.properties.length == 0) { | ||
position = expr.getEnd() - 1; | ||
toInsert = " " + metadataField + ": [" + symbolName + "]\n"; | ||
} | ||
else { | ||
node = expr.properties[expr.properties.length - 1]; | ||
position = node.getEnd(); | ||
// Get the indentation of the last element, if any. | ||
var text = node.getFullText(source); | ||
if (text.match('^\r?\r?\n')) { | ||
toInsert = "," + text.match(/^\r?\n\s+/)[0] + metadataField + ": [" + symbolName + "]"; | ||
} | ||
else { | ||
toInsert = ", " + metadataField + ": [" + symbolName + "]"; | ||
} | ||
} | ||
} | ||
else if (node.kind == ts.SyntaxKind.ArrayLiteralExpression) { | ||
// We found the field but it's empty. Insert it just before the `]`. | ||
position--; | ||
toInsert = "" + symbolName; | ||
} | ||
else { | ||
// Get the indentation of the last element, if any. | ||
var text = node.getFullText(source); | ||
if (text.match(/^\r?\n/)) { | ||
toInsert = "," + text.match(/^\r?\n(\r?)\s+/)[0] + symbolName; | ||
} | ||
else { | ||
toInsert = ", " + symbolName; | ||
} | ||
} | ||
var insert = new change_1.InsertChange(componentPath, position, toInsert); | ||
var importInsert = insertImport(source, componentPath, symbolName.replace(/\..*$/, ''), importPath); | ||
return [insert, importInsert]; | ||
} | ||
/** | ||
@@ -439,2 +558,9 @@ * Custom function to insert a declaration (component, pipe, directive) | ||
/** | ||
* Custom function to insert a provider into Component. It also imports it. | ||
*/ | ||
function addProviderToComponent(source, componentPath, classifiedName, importPath) { | ||
return _addSymbolToComponentMetadata(source, componentPath, 'providers', classifiedName, importPath); | ||
} | ||
exports.addProviderToComponent = addProviderToComponent; | ||
/** | ||
* Custom function to insert an export into NgModule. It also imports it. | ||
@@ -441,0 +567,0 @@ */ |
@@ -6,3 +6,3 @@ "use strict"; | ||
function getWorkspacePath(host) { | ||
var possibleFiles = ['/angular.json', '/.angular.json']; | ||
var possibleFiles = ['/angular.json', '/.angular.json', '/workspace.json']; | ||
var path = possibleFiles.filter(function (path) { return host.exists(path); })[0]; | ||
@@ -9,0 +9,0 @@ return path; |
"use strict"; | ||
exports.__esModule = true; | ||
exports.platformVersion = void 0; | ||
exports.platformVersion = '^11.0.1'; | ||
exports.platformVersion = '^11.1.0'; | ||
//# sourceMappingURL=libs-version.js.map |
@@ -8,5 +8,7 @@ "use strict"; | ||
if (!options.project) { | ||
var defaultProject = workspace | ||
.defaultProject; | ||
options.project = | ||
workspace.defaultProject !== undefined | ||
? workspace.defaultProject | ||
defaultProject !== undefined | ||
? defaultProject | ||
: Object.keys(workspace.projects)[0]; | ||
@@ -13,0 +15,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
486194
0
145
6636
- Removed@angular/core@^11.0.2
- Removed@angular/core@11.2.14(transitive)
- Removedrxjs@6.6.7(transitive)
- Removedtslib@1.14.12.8.1(transitive)
- Removedzone.js@0.11.8(transitive)