@ngrx/entity 20.0.1 → 21.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/migrations/6_0_0/index.js +3 -6
- package/migrations/6_0_0/index.js.map +1 -1
- package/package.json +5 -5
- package/schematics/ng-add/index.js +8 -11
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/schema.js +0 -2
- package/schematics-core/index.js +24 -75
- package/schematics-core/index.js.map +1 -1
- package/schematics-core/utility/ast-utils.js +28 -44
- package/schematics-core/utility/ast-utils.js.map +1 -1
- package/schematics-core/utility/change.js +8 -15
- package/schematics-core/utility/change.js.map +1 -1
- package/schematics-core/utility/config.js +4 -8
- package/schematics-core/utility/config.js.map +1 -1
- package/schematics-core/utility/find-component.js +17 -22
- package/schematics-core/utility/find-component.js.map +1 -1
- package/schematics-core/utility/find-module.js +19 -24
- package/schematics-core/utility/find-module.js.map +1 -1
- package/schematics-core/utility/json-utilts.js +1 -4
- package/schematics-core/utility/json-utilts.js.map +1 -1
- package/schematics-core/utility/libs-version.js +1 -4
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/schematics-core/utility/ngrx-utils.js +28 -36
- package/schematics-core/utility/ngrx-utils.js.map +1 -1
- package/schematics-core/utility/package.js +1 -4
- package/schematics-core/utility/package.js.map +1 -1
- package/schematics-core/utility/parse-name.js +5 -8
- package/schematics-core/utility/parse-name.js.map +1 -1
- package/schematics-core/utility/project.js +9 -15
- package/schematics-core/utility/project.js.map +1 -1
- package/schematics-core/utility/strings.js +9 -20
- package/schematics-core/utility/strings.js.map +1 -1
- package/schematics-core/utility/update.js +4 -7
- package/schematics-core/utility/update.js.map +1 -1
- package/schematics-core/utility/visitors.js +16 -30
- package/schematics-core/utility/visitors.js.map +1 -1
- package/{src/models.d.ts → types/ngrx-entity.d.ts} +28 -23
- package/index.d.ts +0 -6
- package/public_api.d.ts +0 -1
- package/src/create_adapter.d.ts +0 -5
- package/src/entity_state.d.ts +0 -8
- package/src/index.d.ts +0 -2
- package/src/sorted_state_adapter.d.ts +0 -2
- package/src/state_adapter.d.ts +0 -7
- package/src/state_selectors.d.ts +0 -7
- package/src/unsorted_state_adapter.d.ts +0 -2
- package/src/utils.d.ts +0 -2
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.decamelize = decamelize;
|
|
4
|
-
exports.dasherize = dasherize;
|
|
5
|
-
exports.camelize = camelize;
|
|
6
|
-
exports.classify = classify;
|
|
7
|
-
exports.underscore = underscore;
|
|
8
|
-
exports.capitalize = capitalize;
|
|
9
|
-
exports.pluralize = pluralize;
|
|
10
|
-
exports.group = group;
|
|
11
|
-
exports.featurePath = featurePath;
|
|
12
1
|
/**
|
|
13
2
|
* @license
|
|
14
3
|
* Copyright Google Inc. All Rights Reserved.
|
|
@@ -31,7 +20,7 @@ var STRING_UNDERSCORE_REGEXP_2 = /-|\s+/g;
|
|
|
31
20
|
decamelize('my favorite items'); // 'my favorite items'
|
|
32
21
|
```
|
|
33
22
|
*/
|
|
34
|
-
function decamelize(str) {
|
|
23
|
+
export function decamelize(str) {
|
|
35
24
|
return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();
|
|
36
25
|
}
|
|
37
26
|
/**
|
|
@@ -44,7 +33,7 @@ function decamelize(str) {
|
|
|
44
33
|
dasherize('my favorite items'); // 'my-favorite-items'
|
|
45
34
|
```
|
|
46
35
|
*/
|
|
47
|
-
function dasherize(str) {
|
|
36
|
+
export function dasherize(str) {
|
|
48
37
|
return decamelize(str || '').replace(STRING_DASHERIZE_REGEXP, '-');
|
|
49
38
|
}
|
|
50
39
|
/**
|
|
@@ -58,7 +47,7 @@ function dasherize(str) {
|
|
|
58
47
|
camelize('My Favorite Items'); // 'myFavoriteItems'
|
|
59
48
|
```
|
|
60
49
|
*/
|
|
61
|
-
function camelize(str) {
|
|
50
|
+
export function camelize(str) {
|
|
62
51
|
return str
|
|
63
52
|
.replace(STRING_CAMELIZE_REGEXP, function (_match, _separator, chr) {
|
|
64
53
|
return chr ? chr.toUpperCase() : '';
|
|
@@ -75,7 +64,7 @@ function camelize(str) {
|
|
|
75
64
|
'my favorite items'.classify(); // 'MyFavoriteItems'
|
|
76
65
|
```
|
|
77
66
|
*/
|
|
78
|
-
function classify(str) {
|
|
67
|
+
export function classify(str) {
|
|
79
68
|
return str
|
|
80
69
|
.split('.')
|
|
81
70
|
.map(function (part) { return capitalize(camelize(part)); })
|
|
@@ -92,7 +81,7 @@ function classify(str) {
|
|
|
92
81
|
'my favorite items'.underscore(); // 'my_favorite_items'
|
|
93
82
|
```
|
|
94
83
|
*/
|
|
95
|
-
function underscore(str) {
|
|
84
|
+
export function underscore(str) {
|
|
96
85
|
return str
|
|
97
86
|
.replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')
|
|
98
87
|
.replace(STRING_UNDERSCORE_REGEXP_2, '_')
|
|
@@ -108,7 +97,7 @@ function underscore(str) {
|
|
|
108
97
|
'my favorite items'.capitalize() // 'My favorite items'
|
|
109
98
|
```
|
|
110
99
|
*/
|
|
111
|
-
function capitalize(str) {
|
|
100
|
+
export function capitalize(str) {
|
|
112
101
|
return str.charAt(0).toUpperCase() + str.substring(1);
|
|
113
102
|
}
|
|
114
103
|
/**
|
|
@@ -122,13 +111,13 @@ function capitalize(str) {
|
|
|
122
111
|
'user'.pluralize() // 'users'
|
|
123
112
|
```
|
|
124
113
|
*/
|
|
125
|
-
function pluralize(str) {
|
|
114
|
+
export function pluralize(str) {
|
|
126
115
|
return camelize([/([^aeiou])y$/, /()fe?$/, /([^aeiou]o|[sxz]|[cs]h)$/].map(function (c, i) { return (str = str.replace(c, "$1".concat('iv'[i] || '', "e"))); }) && str + 's');
|
|
127
116
|
}
|
|
128
|
-
function group(name, group) {
|
|
117
|
+
export function group(name, group) {
|
|
129
118
|
return group ? "".concat(group, "/").concat(name) : name;
|
|
130
119
|
}
|
|
131
|
-
function featurePath(group, flat, path, name) {
|
|
120
|
+
export function featurePath(group, flat, path, name) {
|
|
132
121
|
if (group && !flat) {
|
|
133
122
|
return "../../".concat(path, "/").concat(name, "/");
|
|
134
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/strings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/strings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,IAAM,uBAAuB,GAAG,OAAO,CAAC;AACxC,IAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,IAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACnD,IAAM,0BAA0B,GAAG,oBAAoB,CAAC;AACxD,IAAM,0BAA0B,GAAG,QAAQ,CAAC;AAE5C;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY;IACpC,OAAO,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,OAAO,CACN,sBAAsB,EACtB,UAAC,MAAc,EAAE,UAAkB,EAAE,GAAW;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC,CACF;SACA,OAAO,CAAC,UAAU,EAAE,UAAC,KAAa,IAAK,OAAA,KAAK,CAAC,WAAW,EAAE,EAAnB,CAAmB,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAA1B,CAA0B,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG;SACP,OAAO,CAAC,0BAA0B,EAAE,OAAO,CAAC;SAC5C,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC;SACxC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,QAAQ,CACb,CAAC,cAAc,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC,GAAG,CACxD,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,YAAK,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAG,CAAC,CAAC,EAA7C,CAA6C,CACxD,IAAI,GAAG,GAAG,GAAG,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAY,EAAE,KAAyB;IAC3D,OAAO,KAAK,CAAC,CAAC,CAAC,UAAG,KAAK,cAAI,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAA0B,EAC1B,IAAyB,EACzB,IAAY,EACZ,IAAY;IAEZ,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,gBAAS,IAAI,cAAI,IAAI,MAAG,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,aAAM,IAAI,MAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst STRING_DASHERIZE_REGEXP = /[ _]/g;\nconst STRING_DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\nconst STRING_CAMELIZE_REGEXP = /(-|_|\\.|\\s)+(.)?/g;\nconst STRING_UNDERSCORE_REGEXP_1 = /([a-z\\d])([A-Z]+)/g;\nconst STRING_UNDERSCORE_REGEXP_2 = /-|\\s+/g;\n\n/**\n * Converts a camelized string into all lower case separated by underscores.\n *\n ```javascript\n decamelize('innerHTML'); // 'inner_html'\n decamelize('action_name'); // 'action_name'\n decamelize('css-class-name'); // 'css-class-name'\n decamelize('my favorite items'); // 'my favorite items'\n ```\n */\nexport function decamelize(str: string): string {\n return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();\n}\n\n/**\n Replaces underscores, spaces, or camelCase with dashes.\n\n ```javascript\n dasherize('innerHTML'); // 'inner-html'\n dasherize('action_name'); // 'action-name'\n dasherize('css-class-name'); // 'css-class-name'\n dasherize('my favorite items'); // 'my-favorite-items'\n ```\n */\nexport function dasherize(str?: string): string {\n return decamelize(str || '').replace(STRING_DASHERIZE_REGEXP, '-');\n}\n\n/**\n Returns the lowerCamelCase form of a string.\n\n ```javascript\n camelize('innerHTML'); // 'innerHTML'\n camelize('action_name'); // 'actionName'\n camelize('css-class-name'); // 'cssClassName'\n camelize('my favorite items'); // 'myFavoriteItems'\n camelize('My Favorite Items'); // 'myFavoriteItems'\n ```\n */\nexport function camelize(str: string): string {\n return str\n .replace(\n STRING_CAMELIZE_REGEXP,\n (_match: string, _separator: string, chr: string) => {\n return chr ? chr.toUpperCase() : '';\n }\n )\n .replace(/^([A-Z])/, (match: string) => match.toLowerCase());\n}\n\n/**\n Returns the UpperCamelCase form of a string.\n\n ```javascript\n 'innerHTML'.classify(); // 'InnerHTML'\n 'action_name'.classify(); // 'ActionName'\n 'css-class-name'.classify(); // 'CssClassName'\n 'my favorite items'.classify(); // 'MyFavoriteItems'\n ```\n */\nexport function classify(str: string): string {\n return str\n .split('.')\n .map((part) => capitalize(camelize(part)))\n .join('.');\n}\n\n/**\n More general than decamelize. Returns the lower\\_case\\_and\\_underscored\n form of a string.\n\n ```javascript\n 'innerHTML'.underscore(); // 'inner_html'\n 'action_name'.underscore(); // 'action_name'\n 'css-class-name'.underscore(); // 'css_class_name'\n 'my favorite items'.underscore(); // 'my_favorite_items'\n ```\n */\nexport function underscore(str: string): string {\n return str\n .replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2')\n .replace(STRING_UNDERSCORE_REGEXP_2, '_')\n .toLowerCase();\n}\n\n/**\n Returns the Capitalized form of a string\n\n ```javascript\n 'innerHTML'.capitalize() // 'InnerHTML'\n 'action_name'.capitalize() // 'Action_name'\n 'css-class-name'.capitalize() // 'Css-class-name'\n 'my favorite items'.capitalize() // 'My favorite items'\n ```\n */\nexport function capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\n\n/**\n Returns the plural form of a string\n\n ```javascript\n 'innerHTML'.pluralize() // 'innerHTMLs'\n 'action_name'.pluralize() // 'actionNames'\n 'css-class-name'.pluralize() // 'cssClassNames'\n 'regex'.pluralize() // 'regexes'\n 'user'.pluralize() // 'users'\n ```\n */\nexport function pluralize(str: string): string {\n return camelize(\n [/([^aeiou])y$/, /()fe?$/, /([^aeiou]o|[sxz]|[cs]h)$/].map(\n (c, i) => (str = str.replace(c, `$1${'iv'[i] || ''}e`))\n ) && str + 's'\n );\n}\n\nexport function group(name: string, group: string | undefined) {\n return group ? `${group}/${name}` : name;\n}\n\nexport function featurePath(\n group: boolean | undefined,\n flat: boolean | undefined,\n path: string,\n name: string\n) {\n if (group && !flat) {\n return `../../${path}/${name}/`;\n }\n\n return group ? `../${path}/` : './';\n}\n"]}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.updatePackage = updatePackage;
|
|
4
|
-
var schematics_1 = require("@angular-devkit/schematics");
|
|
5
|
-
function updatePackage(name) {
|
|
1
|
+
import { SchematicsException, } from '@angular-devkit/schematics';
|
|
2
|
+
export function updatePackage(name) {
|
|
6
3
|
return function (tree, context) {
|
|
7
4
|
var pkgPath = '/package.json';
|
|
8
5
|
var buffer = tree.read(pkgPath);
|
|
9
6
|
if (buffer === null) {
|
|
10
|
-
throw new
|
|
7
|
+
throw new SchematicsException('Could not read package.json');
|
|
11
8
|
}
|
|
12
9
|
var content = buffer.toString();
|
|
13
10
|
var pkg = JSON.parse(content);
|
|
14
11
|
if (pkg === null || typeof pkg !== 'object' || Array.isArray(pkg)) {
|
|
15
|
-
throw new
|
|
12
|
+
throw new SchematicsException('Error reading package.json');
|
|
16
13
|
}
|
|
17
14
|
var dependencyCategories = ['dependencies', 'devDependencies'];
|
|
18
15
|
dependencyCategories.forEach(function (category) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,UAAC,IAAU,EAAE,OAAyB;QAC3C,IAAM,OAAO,GAAG,eAAe,CAAC;QAChC,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAAC,6BAA6B,CAAC,CAAC;QAC/D,CAAC;QACD,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;QAC9D,CAAC;QAED,IAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAEjE,oBAAoB,CAAC,OAAO,CAAC,UAAC,QAAQ;YACpC,IAAM,WAAW,GAAG,gBAAS,IAAI,CAAE,CAAC;YAEpC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,IAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAE9D,GAAG,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,UAAG,MAAM,UAAO,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACxC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC","sourcesContent":["import {\n Rule,\n SchematicContext,\n Tree,\n SchematicsException,\n} from '@angular-devkit/schematics';\n\nexport function updatePackage(name: string): Rule {\n return (tree: Tree, context: SchematicContext) => {\n const pkgPath = '/package.json';\n const buffer = tree.read(pkgPath);\n if (buffer === null) {\n throw new SchematicsException('Could not read package.json');\n }\n const content = buffer.toString();\n const pkg = JSON.parse(content);\n\n if (pkg === null || typeof pkg !== 'object' || Array.isArray(pkg)) {\n throw new SchematicsException('Error reading package.json');\n }\n\n const dependencyCategories = ['dependencies', 'devDependencies'];\n\n dependencyCategories.forEach((category) => {\n const packageName = `@ngrx/${name}`;\n\n if (pkg[category] && pkg[category][packageName]) {\n const firstChar = pkg[category][packageName][0];\n const suffix = match(firstChar, '^') || match(firstChar, '~');\n\n pkg[category][packageName] = `${suffix}6.0.0`;\n }\n });\n\n tree.overwrite(pkgPath, JSON.stringify(pkg, null, 2));\n\n return tree;\n };\n}\n\nfunction match(value: string, test: string) {\n return value === test ? test : '';\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
3
2
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
4
3
|
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
@@ -53,22 +52,9 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
53
52
|
}
|
|
54
53
|
return ar;
|
|
55
54
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
exports.visitNgModuleImports = visitNgModuleImports;
|
|
60
|
-
exports.visitNgModuleExports = visitNgModuleExports;
|
|
61
|
-
exports.visitComponents = visitComponents;
|
|
62
|
-
exports.visitNgModules = visitNgModules;
|
|
63
|
-
exports.visitDecorator = visitDecorator;
|
|
64
|
-
exports.visitImportDeclaration = visitImportDeclaration;
|
|
65
|
-
exports.visitImportSpecifier = visitImportSpecifier;
|
|
66
|
-
exports.visitTypeReference = visitTypeReference;
|
|
67
|
-
exports.visitTypeLiteral = visitTypeLiteral;
|
|
68
|
-
exports.visitCallExpression = visitCallExpression;
|
|
69
|
-
var ts = require("typescript");
|
|
70
|
-
var core_1 = require("@angular-devkit/core");
|
|
71
|
-
function visitTSSourceFiles(tree, visitor) {
|
|
55
|
+
import * as ts from 'typescript';
|
|
56
|
+
import { normalize, resolve } from '@angular-devkit/core';
|
|
57
|
+
export function visitTSSourceFiles(tree, visitor) {
|
|
72
58
|
var e_1, _a;
|
|
73
59
|
var result = undefined;
|
|
74
60
|
try {
|
|
@@ -86,7 +72,7 @@ function visitTSSourceFiles(tree, visitor) {
|
|
|
86
72
|
}
|
|
87
73
|
return result;
|
|
88
74
|
}
|
|
89
|
-
function visitTemplates(tree, visitor) {
|
|
75
|
+
export function visitTemplates(tree, visitor) {
|
|
90
76
|
visitTSSourceFiles(tree, function (source) {
|
|
91
77
|
visitComponents(source, function (_, decoratorExpressionNode) {
|
|
92
78
|
ts.forEachChild(decoratorExpressionNode, function findTemplates(n) {
|
|
@@ -106,8 +92,8 @@ function visitTemplates(tree, visitor) {
|
|
|
106
92
|
}
|
|
107
93
|
else if (n.name.text === 'templateUrl' &&
|
|
108
94
|
ts.isStringLiteralLike(n.initializer)) {
|
|
109
|
-
var parts =
|
|
110
|
-
var templatePath =
|
|
95
|
+
var parts = normalize(source.fileName).split('/').slice(0, -1);
|
|
96
|
+
var templatePath = resolve(normalize(parts.join('/')), normalize(n.initializer.text));
|
|
111
97
|
if (!tree.exists(templatePath)) {
|
|
112
98
|
return;
|
|
113
99
|
}
|
|
@@ -129,10 +115,10 @@ function visitTemplates(tree, visitor) {
|
|
|
129
115
|
});
|
|
130
116
|
});
|
|
131
117
|
}
|
|
132
|
-
function visitNgModuleImports(sourceFile, callback) {
|
|
118
|
+
export function visitNgModuleImports(sourceFile, callback) {
|
|
133
119
|
visitNgModuleProperty(sourceFile, callback, 'imports');
|
|
134
120
|
}
|
|
135
|
-
function visitNgModuleExports(sourceFile, callback) {
|
|
121
|
+
export function visitNgModuleExports(sourceFile, callback) {
|
|
136
122
|
visitNgModuleProperty(sourceFile, callback, 'exports');
|
|
137
123
|
}
|
|
138
124
|
function visitNgModuleProperty(sourceFile, callback, property) {
|
|
@@ -149,13 +135,13 @@ function visitNgModuleProperty(sourceFile, callback, property) {
|
|
|
149
135
|
});
|
|
150
136
|
});
|
|
151
137
|
}
|
|
152
|
-
function visitComponents(sourceFile, callback) {
|
|
138
|
+
export function visitComponents(sourceFile, callback) {
|
|
153
139
|
visitDecorator(sourceFile, 'Component', callback);
|
|
154
140
|
}
|
|
155
|
-
function visitNgModules(sourceFile, callback) {
|
|
141
|
+
export function visitNgModules(sourceFile, callback) {
|
|
156
142
|
visitDecorator(sourceFile, 'NgModule', callback);
|
|
157
143
|
}
|
|
158
|
-
function visitDecorator(sourceFile, decoratorName, callback) {
|
|
144
|
+
export function visitDecorator(sourceFile, decoratorName, callback) {
|
|
159
145
|
ts.forEachChild(sourceFile, function findClassDeclaration(node) {
|
|
160
146
|
if (!ts.isClassDeclaration(node)) {
|
|
161
147
|
ts.forEachChild(node, findClassDeclaration);
|
|
@@ -184,7 +170,7 @@ function visitDecorator(sourceFile, decoratorName, callback) {
|
|
|
184
170
|
callback(classDeclarationNode, arg);
|
|
185
171
|
});
|
|
186
172
|
}
|
|
187
|
-
function visitImportDeclaration(node, callback) {
|
|
173
|
+
export function visitImportDeclaration(node, callback) {
|
|
188
174
|
if (ts.isImportDeclaration(node)) {
|
|
189
175
|
var moduleSpecifier = node.moduleSpecifier.getText();
|
|
190
176
|
var moduleName = moduleSpecifier.replaceAll('"', '').replaceAll("'", '');
|
|
@@ -194,7 +180,7 @@ function visitImportDeclaration(node, callback) {
|
|
|
194
180
|
visitImportDeclaration(child, callback);
|
|
195
181
|
});
|
|
196
182
|
}
|
|
197
|
-
function visitImportSpecifier(node, callback) {
|
|
183
|
+
export function visitImportSpecifier(node, callback) {
|
|
198
184
|
var e_2, _a, e_3, _b;
|
|
199
185
|
var importClause = node.importClause;
|
|
200
186
|
if (!importClause) {
|
|
@@ -232,7 +218,7 @@ function visitImportSpecifier(node, callback) {
|
|
|
232
218
|
finally { if (e_2) throw e_2.error; }
|
|
233
219
|
}
|
|
234
220
|
}
|
|
235
|
-
function visitTypeReference(node, callback) {
|
|
221
|
+
export function visitTypeReference(node, callback) {
|
|
236
222
|
if (ts.isTypeReferenceNode(node)) {
|
|
237
223
|
callback(node);
|
|
238
224
|
}
|
|
@@ -240,7 +226,7 @@ function visitTypeReference(node, callback) {
|
|
|
240
226
|
visitTypeReference(child, callback);
|
|
241
227
|
});
|
|
242
228
|
}
|
|
243
|
-
function visitTypeLiteral(node, callback) {
|
|
229
|
+
export function visitTypeLiteral(node, callback) {
|
|
244
230
|
if (ts.isTypeLiteralNode(node)) {
|
|
245
231
|
callback(node);
|
|
246
232
|
}
|
|
@@ -248,7 +234,7 @@ function visitTypeLiteral(node, callback) {
|
|
|
248
234
|
visitTypeLiteral(child, callback);
|
|
249
235
|
});
|
|
250
236
|
}
|
|
251
|
-
function visitCallExpression(node, callback) {
|
|
237
|
+
export function visitCallExpression(node, callback) {
|
|
252
238
|
if (ts.isCallExpression(node)) {
|
|
253
239
|
callback(node);
|
|
254
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/visitors.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport { normalize, resolve } from '@angular-devkit/core';\nimport { Tree, DirEntry } from '@angular-devkit/schematics';\n\nexport function visitTSSourceFiles<Result = void>(\n tree: Tree,\n visitor: (\n sourceFile: ts.SourceFile,\n tree: Tree,\n result?: Result\n ) => Result | undefined\n): Result | undefined {\n let result: Result | undefined = undefined;\n for (const sourceFile of visit(tree.root)) {\n result = visitor(sourceFile, tree, result);\n }\n\n return result;\n}\n\nexport function visitTemplates(\n tree: Tree,\n visitor: (\n template: {\n fileName: string;\n content: string;\n inline: boolean;\n start: number;\n },\n tree: Tree\n ) => void\n): void {\n visitTSSourceFiles(tree, (source) => {\n visitComponents(source, (_, decoratorExpressionNode) => {\n ts.forEachChild(decoratorExpressionNode, function findTemplates(n) {\n if (ts.isPropertyAssignment(n) && ts.isIdentifier(n.name)) {\n if (\n n.name.text === 'template' &&\n ts.isStringLiteralLike(n.initializer)\n ) {\n // Need to add an offset of one to the start because the template quotes are\n // not part of the template content.\n const templateStartIdx = n.initializer.getStart() + 1;\n visitor(\n {\n fileName: source.fileName,\n content: n.initializer.text,\n inline: true,\n start: templateStartIdx,\n },\n tree\n );\n return;\n } else if (\n n.name.text === 'templateUrl' &&\n ts.isStringLiteralLike(n.initializer)\n ) {\n const parts = normalize(source.fileName).split('/').slice(0, -1);\n const templatePath = resolve(\n normalize(parts.join('/')),\n normalize(n.initializer.text)\n );\n if (!tree.exists(templatePath)) {\n return;\n }\n\n const fileContent = tree.read(templatePath);\n if (!fileContent) {\n return;\n }\n\n visitor(\n {\n fileName: templatePath,\n content: fileContent.toString(),\n inline: false,\n start: 0,\n },\n tree\n );\n return;\n }\n }\n\n ts.forEachChild(n, findTemplates);\n });\n });\n });\n}\n\nexport function visitNgModuleImports(\n sourceFile: ts.SourceFile,\n callback: (\n importNode: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void\n) {\n visitNgModuleProperty(sourceFile, callback, 'imports');\n}\n\nexport function visitNgModuleExports(\n sourceFile: ts.SourceFile,\n callback: (\n exportNode: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void\n) {\n visitNgModuleProperty(sourceFile, callback, 'exports');\n}\n\nfunction visitNgModuleProperty(\n sourceFile: ts.SourceFile,\n callback: (\n nodes: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void,\n property: string\n) {\n visitNgModules(sourceFile, (_, decoratorExpressionNode) => {\n ts.forEachChild(decoratorExpressionNode, function findTemplates(n) {\n if (\n ts.isPropertyAssignment(n) &&\n ts.isIdentifier(n.name) &&\n n.name.text === property &&\n ts.isArrayLiteralExpression(n.initializer)\n ) {\n callback(n, n.initializer.elements);\n return;\n }\n\n ts.forEachChild(n, findTemplates);\n });\n });\n}\nexport function visitComponents(\n sourceFile: ts.SourceFile,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n visitDecorator(sourceFile, 'Component', callback);\n}\n\nexport function visitNgModules(\n sourceFile: ts.SourceFile,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n visitDecorator(sourceFile, 'NgModule', callback);\n}\n\nexport function visitDecorator(\n sourceFile: ts.SourceFile,\n decoratorName: string,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n ts.forEachChild(sourceFile, function findClassDeclaration(node) {\n if (!ts.isClassDeclaration(node)) {\n ts.forEachChild(node, findClassDeclaration);\n }\n\n const classDeclarationNode = node as ts.ClassDeclaration;\n const decorators = ts.getDecorators(classDeclarationNode);\n\n if (!decorators || !decorators.length) {\n return;\n }\n\n const componentDecorator = decorators.find((d) => {\n return (\n ts.isCallExpression(d.expression) &&\n ts.isIdentifier(d.expression.expression) &&\n d.expression.expression.text === decoratorName\n );\n });\n\n if (!componentDecorator) {\n return;\n }\n\n const { expression } = componentDecorator;\n if (!ts.isCallExpression(expression)) {\n return;\n }\n\n const [arg] = expression.arguments;\n if (!arg || !ts.isObjectLiteralExpression(arg)) {\n return;\n }\n\n callback(classDeclarationNode, arg);\n });\n}\n\nexport function visitImportDeclaration(\n node: ts.Node,\n callback: (\n importDeclaration: ts.ImportDeclaration,\n moduleName?: string\n ) => void\n) {\n if (ts.isImportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier.getText();\n const moduleName = moduleSpecifier.replaceAll('\"', '').replaceAll(\"'\", '');\n\n callback(node, moduleName);\n }\n\n ts.forEachChild(node, (child) => {\n visitImportDeclaration(child, callback);\n });\n}\n\nexport function visitImportSpecifier(\n node: ts.ImportDeclaration,\n callback: (importSpecifier: ts.ImportSpecifier) => void\n) {\n const { importClause } = node;\n if (!importClause) {\n return;\n }\n\n const importClauseChildren = importClause.getChildren();\n for (const namedImport of importClauseChildren) {\n if (ts.isNamedImports(namedImport)) {\n const namedImportChildren = namedImport.elements;\n for (const importSpecifier of namedImportChildren) {\n if (ts.isImportSpecifier(importSpecifier)) {\n callback(importSpecifier);\n }\n }\n }\n }\n}\n\nexport function visitTypeReference(\n node: ts.Node,\n callback: (typeReference: ts.TypeReferenceNode) => void\n) {\n if (ts.isTypeReferenceNode(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitTypeReference(child, callback);\n });\n}\n\nexport function visitTypeLiteral(\n node: ts.Node,\n callback: (typeLiteral: ts.TypeLiteralNode) => void\n) {\n if (ts.isTypeLiteralNode(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitTypeLiteral(child, callback);\n });\n}\n\nexport function visitCallExpression(\n node: ts.Node,\n callback: (callExpression: ts.CallExpression) => void\n) {\n if (ts.isCallExpression(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitCallExpression(child, callback);\n });\n}\n\nfunction* visit(directory: DirEntry): IterableIterator<ts.SourceFile> {\n for (const path of directory.subfiles) {\n if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n const entry = directory.file(path);\n if (entry) {\n const content = entry.content;\n const source = ts.createSourceFile(\n entry.path,\n content.toString().replace(/^\\uFEFF/, ''),\n ts.ScriptTarget.Latest,\n true\n );\n yield source;\n }\n }\n }\n\n for (const path of directory.subdirs) {\n if (path === 'node_modules') {\n continue;\n }\n\n yield* visit(directory.dir(path));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"visitors.js","sourceRoot":"","sources":["../../../../../modules/entity/schematics-core/utility/visitors.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\nimport { normalize, resolve } from '@angular-devkit/core';\nimport { Tree, DirEntry } from '@angular-devkit/schematics';\n\nexport function visitTSSourceFiles<Result = void>(\n tree: Tree,\n visitor: (\n sourceFile: ts.SourceFile,\n tree: Tree,\n result?: Result\n ) => Result | undefined\n): Result | undefined {\n let result: Result | undefined = undefined;\n for (const sourceFile of visit(tree.root)) {\n result = visitor(sourceFile, tree, result);\n }\n\n return result;\n}\n\nexport function visitTemplates(\n tree: Tree,\n visitor: (\n template: {\n fileName: string;\n content: string;\n inline: boolean;\n start: number;\n },\n tree: Tree\n ) => void\n): void {\n visitTSSourceFiles(tree, (source) => {\n visitComponents(source, (_, decoratorExpressionNode) => {\n ts.forEachChild(decoratorExpressionNode, function findTemplates(n) {\n if (ts.isPropertyAssignment(n) && ts.isIdentifier(n.name)) {\n if (\n n.name.text === 'template' &&\n ts.isStringLiteralLike(n.initializer)\n ) {\n // Need to add an offset of one to the start because the template quotes are\n // not part of the template content.\n const templateStartIdx = n.initializer.getStart() + 1;\n visitor(\n {\n fileName: source.fileName,\n content: n.initializer.text,\n inline: true,\n start: templateStartIdx,\n },\n tree\n );\n return;\n } else if (\n n.name.text === 'templateUrl' &&\n ts.isStringLiteralLike(n.initializer)\n ) {\n const parts = normalize(source.fileName).split('/').slice(0, -1);\n const templatePath = resolve(\n normalize(parts.join('/')),\n normalize(n.initializer.text)\n );\n if (!tree.exists(templatePath)) {\n return;\n }\n\n const fileContent = tree.read(templatePath);\n if (!fileContent) {\n return;\n }\n\n visitor(\n {\n fileName: templatePath,\n content: fileContent.toString(),\n inline: false,\n start: 0,\n },\n tree\n );\n return;\n }\n }\n\n ts.forEachChild(n, findTemplates);\n });\n });\n });\n}\n\nexport function visitNgModuleImports(\n sourceFile: ts.SourceFile,\n callback: (\n importNode: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void\n) {\n visitNgModuleProperty(sourceFile, callback, 'imports');\n}\n\nexport function visitNgModuleExports(\n sourceFile: ts.SourceFile,\n callback: (\n exportNode: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void\n) {\n visitNgModuleProperty(sourceFile, callback, 'exports');\n}\n\nfunction visitNgModuleProperty(\n sourceFile: ts.SourceFile,\n callback: (\n nodes: ts.PropertyAssignment,\n elementExpressions: ts.NodeArray<ts.Expression>\n ) => void,\n property: string\n) {\n visitNgModules(sourceFile, (_, decoratorExpressionNode) => {\n ts.forEachChild(decoratorExpressionNode, function findTemplates(n) {\n if (\n ts.isPropertyAssignment(n) &&\n ts.isIdentifier(n.name) &&\n n.name.text === property &&\n ts.isArrayLiteralExpression(n.initializer)\n ) {\n callback(n, n.initializer.elements);\n return;\n }\n\n ts.forEachChild(n, findTemplates);\n });\n });\n}\nexport function visitComponents(\n sourceFile: ts.SourceFile,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n visitDecorator(sourceFile, 'Component', callback);\n}\n\nexport function visitNgModules(\n sourceFile: ts.SourceFile,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n visitDecorator(sourceFile, 'NgModule', callback);\n}\n\nexport function visitDecorator(\n sourceFile: ts.SourceFile,\n decoratorName: string,\n callback: (\n classDeclarationNode: ts.ClassDeclaration,\n decoratorExpressionNode: ts.ObjectLiteralExpression\n ) => void\n) {\n ts.forEachChild(sourceFile, function findClassDeclaration(node) {\n if (!ts.isClassDeclaration(node)) {\n ts.forEachChild(node, findClassDeclaration);\n }\n\n const classDeclarationNode = node as ts.ClassDeclaration;\n const decorators = ts.getDecorators(classDeclarationNode);\n\n if (!decorators || !decorators.length) {\n return;\n }\n\n const componentDecorator = decorators.find((d) => {\n return (\n ts.isCallExpression(d.expression) &&\n ts.isIdentifier(d.expression.expression) &&\n d.expression.expression.text === decoratorName\n );\n });\n\n if (!componentDecorator) {\n return;\n }\n\n const { expression } = componentDecorator;\n if (!ts.isCallExpression(expression)) {\n return;\n }\n\n const [arg] = expression.arguments;\n if (!arg || !ts.isObjectLiteralExpression(arg)) {\n return;\n }\n\n callback(classDeclarationNode, arg);\n });\n}\n\nexport function visitImportDeclaration(\n node: ts.Node,\n callback: (\n importDeclaration: ts.ImportDeclaration,\n moduleName?: string\n ) => void\n) {\n if (ts.isImportDeclaration(node)) {\n const moduleSpecifier = node.moduleSpecifier.getText();\n const moduleName = moduleSpecifier.replaceAll('\"', '').replaceAll(\"'\", '');\n\n callback(node, moduleName);\n }\n\n ts.forEachChild(node, (child) => {\n visitImportDeclaration(child, callback);\n });\n}\n\nexport function visitImportSpecifier(\n node: ts.ImportDeclaration,\n callback: (importSpecifier: ts.ImportSpecifier) => void\n) {\n const { importClause } = node;\n if (!importClause) {\n return;\n }\n\n const importClauseChildren = importClause.getChildren();\n for (const namedImport of importClauseChildren) {\n if (ts.isNamedImports(namedImport)) {\n const namedImportChildren = namedImport.elements;\n for (const importSpecifier of namedImportChildren) {\n if (ts.isImportSpecifier(importSpecifier)) {\n callback(importSpecifier);\n }\n }\n }\n }\n}\n\nexport function visitTypeReference(\n node: ts.Node,\n callback: (typeReference: ts.TypeReferenceNode) => void\n) {\n if (ts.isTypeReferenceNode(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitTypeReference(child, callback);\n });\n}\n\nexport function visitTypeLiteral(\n node: ts.Node,\n callback: (typeLiteral: ts.TypeLiteralNode) => void\n) {\n if (ts.isTypeLiteralNode(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitTypeLiteral(child, callback);\n });\n}\n\nexport function visitCallExpression(\n node: ts.Node,\n callback: (callExpression: ts.CallExpression) => void\n) {\n if (ts.isCallExpression(node)) {\n callback(node);\n }\n\n ts.forEachChild(node, (child) => {\n visitCallExpression(child, callback);\n });\n}\n\nfunction* visit(directory: DirEntry): IterableIterator<ts.SourceFile> {\n for (const path of directory.subfiles) {\n if (path.endsWith('.ts') && !path.endsWith('.d.ts')) {\n const entry = directory.file(path);\n if (entry) {\n const content = entry.content;\n const source = ts.createSourceFile(\n entry.path,\n content.toString().replace(/^\\uFEFF/, ''),\n ts.ScriptTarget.Latest,\n true\n );\n yield source;\n }\n }\n }\n\n for (const path of directory.subdirs) {\n if (path === 'node_modules') {\n continue;\n }\n\n yield* visit(directory.dir(path));\n }\n}\n"]}
|
|
@@ -1,43 +1,40 @@
|
|
|
1
1
|
import { MemoizedSelector } from '@ngrx/store';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
type Comparer<T> = (a: T, b: T) => number;
|
|
4
|
+
type IdSelectorStr<T> = (model: T) => string;
|
|
5
|
+
type IdSelectorNum<T> = (model: T) => number;
|
|
6
|
+
type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;
|
|
7
|
+
interface DictionaryNum<T> {
|
|
7
8
|
[id: number]: T | undefined;
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
+
declare abstract class Dictionary<T> implements DictionaryNum<T> {
|
|
10
11
|
[id: string]: T | undefined;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
interface UpdateStr<T> {
|
|
13
14
|
id: string;
|
|
14
15
|
changes: Partial<T>;
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
+
interface UpdateNum<T> {
|
|
17
18
|
id: number;
|
|
18
19
|
changes: Partial<T>;
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
type Update<T> = UpdateStr<T> | UpdateNum<T>;
|
|
22
|
+
type Predicate<T> = (entity: T) => boolean;
|
|
23
|
+
type EntityMap<T> = (entity: T) => T;
|
|
24
|
+
interface EntityMapOneNum<T> {
|
|
24
25
|
id: number;
|
|
25
26
|
map: EntityMap<T>;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
interface EntityMapOneStr<T> {
|
|
28
29
|
id: string;
|
|
29
30
|
map: EntityMap<T>;
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;
|
|
33
|
+
interface EntityState<T> {
|
|
33
34
|
ids: string[] | number[];
|
|
34
35
|
entities: Dictionary<T>;
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
selectId: IdSelector<T>;
|
|
38
|
-
sortComparer: false | Comparer<T>;
|
|
39
|
-
}
|
|
40
|
-
export interface EntityStateAdapter<T> {
|
|
37
|
+
interface EntityStateAdapter<T> {
|
|
41
38
|
addOne<S extends EntityState<T>>(entity: T, state: S): S;
|
|
42
39
|
addMany<S extends EntityState<T>>(entities: T[], state: S): S;
|
|
43
40
|
setAll<S extends EntityState<T>>(entities: T[], state: S): S;
|
|
@@ -56,19 +53,19 @@ export interface EntityStateAdapter<T> {
|
|
|
56
53
|
mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;
|
|
57
54
|
map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;
|
|
58
55
|
}
|
|
59
|
-
|
|
56
|
+
type EntitySelectors<T, V> = {
|
|
60
57
|
selectIds: (state: V) => string[] | number[];
|
|
61
58
|
selectEntities: (state: V) => Dictionary<T>;
|
|
62
59
|
selectAll: (state: V) => T[];
|
|
63
60
|
selectTotal: (state: V) => number;
|
|
64
61
|
};
|
|
65
|
-
|
|
62
|
+
type MemoizedEntitySelectors<T, V> = {
|
|
66
63
|
selectIds: MemoizedSelector<V, string[] | number[], (entityState: EntityState<T>) => string[] | number[]>;
|
|
67
64
|
selectEntities: MemoizedSelector<V, Dictionary<T>, (entityState: EntityState<T>) => Dictionary<T>>;
|
|
68
65
|
selectAll: MemoizedSelector<V, T[], (entityState: EntityState<T>) => T[]>;
|
|
69
66
|
selectTotal: MemoizedSelector<V, number, (entityState: EntityState<T>) => number>;
|
|
70
67
|
};
|
|
71
|
-
|
|
68
|
+
interface EntityAdapter<T> extends EntityStateAdapter<T> {
|
|
72
69
|
selectId: IdSelector<T>;
|
|
73
70
|
sortComparer: false | Comparer<T>;
|
|
74
71
|
getInitialState(): EntityState<T>;
|
|
@@ -76,3 +73,11 @@ export interface EntityAdapter<T> extends EntityStateAdapter<T> {
|
|
|
76
73
|
getSelectors(): EntitySelectors<T, EntityState<T>>;
|
|
77
74
|
getSelectors<V>(selectState: (state: V) => EntityState<T>): MemoizedEntitySelectors<T, V>;
|
|
78
75
|
}
|
|
76
|
+
|
|
77
|
+
declare function createEntityAdapter<T>(options?: {
|
|
78
|
+
selectId?: IdSelector<T>;
|
|
79
|
+
sortComparer?: false | Comparer<T>;
|
|
80
|
+
}): EntityAdapter<T>;
|
|
81
|
+
|
|
82
|
+
export { Dictionary, createEntityAdapter };
|
|
83
|
+
export type { Comparer, DictionaryNum, EntityAdapter, EntityMap, EntityMapOne, EntityState, IdSelector, Predicate, Update };
|
package/index.d.ts
DELETED
package/public_api.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './src/index';
|
package/src/create_adapter.d.ts
DELETED
package/src/entity_state.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { EntityState } from './models';
|
|
2
|
-
export declare function getInitialEntityState<V>(): EntityState<V>;
|
|
3
|
-
export declare function createInitialStateFactory<V>(): {
|
|
4
|
-
getInitialState: {
|
|
5
|
-
(): EntityState<V>;
|
|
6
|
-
<S extends EntityState<V>>(additionalState: Omit<S, keyof EntityState<V>>): S;
|
|
7
|
-
};
|
|
8
|
-
};
|
package/src/index.d.ts
DELETED
package/src/state_adapter.d.ts
DELETED
package/src/state_selectors.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { EntityState, EntitySelectors, MemoizedEntitySelectors } from './models';
|
|
2
|
-
export declare function createSelectorsFactory<T>(): {
|
|
3
|
-
getSelectors: {
|
|
4
|
-
(): EntitySelectors<T, EntityState<T>>;
|
|
5
|
-
<V>(selectState: (state: V) => EntityState<T>): MemoizedEntitySelectors<T, V>;
|
|
6
|
-
};
|
|
7
|
-
};
|
package/src/utils.d.ts
DELETED