@statoscope/types
Advanced tools
Changelog
5.28.1 (20 October 2023)
[webpack-model]
- revert chunk-asset linking logic from 5.25.1Changelog
5.27.0 (24 August 2023)
[webpack-model]
- add module_retained_modules(module)
-helper that returns retained modules by specific module
In other words: retained ones will be removed from bundle along with the module
[webpack-ui]
- support module_retained_modules
in module tree. For example, you can see retained modules in the diff-page
[webpack-ui]
- update discoveryjs from 1.0.0-beta.66 to 1.0.0-beta.77 (see changelog)
[webpack-ui]
- expose Discovery namespace
import Statoscope from '@statoscope/webpack-ui';
console.log(Statoscope.Discovery);
See usage example in dev.html
[webpack-ui]
- expose Discovery data and view inspector that helps to debug custom statoscope reports
[webpack-ui]
- add npm run dev
to develop Statoscope UI more easily
[stats-validator-reporter-stats-report]
: add disableReportCompression
-option, disable it will increase the size a lot (false
by default) (#210 by @icy0307)
[report-writer]
: use jsonxl to compress stats in binary json (replacement for old solution)
[webpack-model]
- improve initialization performanceChangelog
5.22.0 (03 July 2022)
This is 5.21 actually 🤦
[cli]
- add --custom-report
and --config
args for generate
and serve
commands (#157 by @amalitsky)[config]
- add generate.reports
field (#157 by @amalitsky)[webpack-model]
- added helpers:
asset_getSize(asset: NormalizedAsset, hash: string, useCompressed: boolean): Size
assets_getTotalSize(assets: NormalizedAsset[], hash: string, useCompressed: boolean): Size
entrypoint_getChunks(entry: NormalizedEntrypointItem): NormalizedChunk[]
entrypoint_getInitialChunks(entry: NormalizedEntrypointItem): NormalizedChunk[]
entrypoint_getInitialSize(entry: NormalizedEntrypointItem, hash: string, useCompressed: boolean): Size
entrypoint_getAsyncChunks(entry: NormalizedEntrypointItem): NormalizedChunk[]
entrypoint_getAsyncSize(entry: NormalizedEntrypointItem, hash: string, useCompressed: boolean): Size
entrypoint_getAssets(entry: NormalizedEntrypointItem): NormalizedAsset[]
entrypoint_getInitialAssets(entry: NormalizedEntrypointItem): NormalizedAsset[]
entrypoint_getAsyncAssets(entry: NormalizedEntrypointItem): NormalizedAsset[]
resolveCompilationByAsset(asset: NormalizedAsset, filename: string): NormalizedCompilation | null
resolveCompilationByChunk(chunk: NormalizedChunk, filename: string): NormalizedCompilation | null
resolveCompilationByModule(module: NormalizedModule, filename: string): NormalizedCompilation | null
resolveCompilationByEntrypoint(entry: NormalizedEntrypointItem, filename: string): NormalizedCompilation | null
[webpack-ui]
- fix dashboard data[webpack-model]
- fix handling chunks with no files (#158 by @amalitsky)Changelog
5.9.0 (27 September 2021)
[stats-extension-custom-reports]
- add package for passing custom reports to the UI (#108)
[webpack-plugin]
- support custom reports (#108)
[webpack-ui]
- support custom reports (#108)
[helpers]
- support lock
/unlock
for Resolver
(#107)
By default, all the resolvers is locked (no items can be added to resolver storage)
const resolver = makeResolver(modules, m => m.identifier);
modules.push(fooModule);
resolver('foo'); // null
resolver.unlock(); // allow to fetch resolver storage for new elements
modules.push(fooModule);
resolver('foo'); // fooModule
In other words, locked resolver remembers its source items and ignores any source changes.
It is useful for performance.
[helpers]
- add Indexer
to build an index (#108)
Index is more complex of resolver. It provides some API to manipulate its storage:
const moduleIndex = makeIndex(module => module.identifier); // no source needed
moduleIndex.add(fooModule);
moduleIndex.get('foo'); // fooModule
moduleIndex.get('bar'); // null
moduleIndex.add(barModule);
moduleIndex.get('bar'); // barModule
moduleIndex.getAll(); // [fooModule, barModule]
[stats-extension-compressed]
- support indexer (#108)
[stats-extension-package-info]
- support indexer (#108)
[stats-extension-stats-validation-result]
- support indexer (#108)
[config]
- add requireConfig
(#108)
[cli]
- support requireConfig
(#108)
[cli]
- add makeReplacer
helper to create json replacer (#107)
[webpack-model]
- add __statoscope.context
field (#107)
[report-writer]
- remove context path from stats (it makes all the path relative from context) (#107)
[webpack-plugin]
- remove context path from stats (it makes all the path relative from context) (#107)
[webpack-stats-extension-package-info]
- remove context path from stats (it makes all the path relative from context) (#107)
[webpack-model]
- use module.identifier to resolve a module (#107)
[webpack-model]
- decouple extension and compilation (#108)
Extensions have attached to files, not to compilations
[webpack-ui]
- use module.identifier
to resolve a module (#107)
[webpack-stats-extension-compressed]
- use module.identifier
to resolve a module (#107)
[stats-validator-plugin-webpack]
- use module.identifier
to resolve a module (#107)
[webpack-model]
- not fail when incomplete stats have usedChangelog
5.7.0 (1 September 2021)
[stats-validator]
- add package for validating stats[stats-validator-plugin-webpack]
- add stats-validator plugin with webpack-rules[stats-validator-reporter-console]
- add stats-validator reporter to output results into console[stats-validator-reporter-stats-report]
- add stats-validator reporter to output results into descovery-based UI[stats-extension-stats-validation-result]
- add stats extension to pass validation messages info descovery-based UI[config]
- add package that contains config-helpers[webpack-ui]
- support new validation results
stats-extension-stats-validation-result
[webpack-ui]
- add some jora-helpers
resolveEntrypoint(id: string, hash: string): NormalizedEntrypointItem | null
Resolve entrypoint by its nameresolveFile(id: string): NormalizedFile | null
Resolve file by its nameresolveInputFile(): NormalizedFile | null
Resolve file with input.json
resolveReferenceFile(): NormalizedFile | null
Resolve file with reference.json
validation_getItems(hash?: string, relatedType?: RelatedItem['type'] | null, relatedId?: string | number): Item[]
Get validation messagesvalidation_getItem(id?: number, hash?: string): Item | null
Get validation messagevalidation_resolveRelatedItem(item?: RelatedItem, hash?: string): ResolvedRelatedItem
Resolve an entity (module, chunk, etc.) that related with some messagevalidation_resolveRule(name?: string, hash?: string): RuleDescriptor | null
Resolve detail info about a rule[cli]
- support new validators in validate
command
reference
-parameterconfig
-parameterstats-validator
package[types]
- add package with statoscope ts-types[helpers]
- add get
-parameter into makeResolver
-function[helpers]
- add asciiTree
-helper that generate ASCII tree from object-tree (useful for TTY-reporters)[helpers]
- add a bunch of useful jora-helpers
typeof(value: unknown): string
works like native typeof
operator
isNullish(value: unknown): boolean
returns true
if value
is null
or undefined
isArray(value: unknown): boolean
returns true
if value
is array
useNotNullish<T>(values: readonly T[]): T | null
return first not-nullish element from values
-array or null
([null, 123].useNotNullish() = 123
)
serializeStringOrRegexp(value?: string | RegExp): SerializedStringOrRegexp | null
transform string or regexp into json-compatible format
deserializeStringOrRegexp(value?: SerializedStringOrRegexp | null): string | RegExp | null
reverse the result of serializeStringOrRegexp
semverSatisfies(version: string | SemVer, range: string | Range): boolean
returns true
if version
satisfied of range
isMatch(a?: string, b?: string | RegExp): boolean
returns true
if a
matches b
exclude<T>(
items: readonly T[],
params?: {
exclude?: Array<string | RegExp>;
get?: (arg: T) => string | undefined;
}
): T[]
Helps to exclude elements. Examples:
['foo', 'bar', 'foo'].exclude({exclude: 'foo'}) = ['bar']
[fooCompilation, barCompilation, bazCompilation].exclude({exclude: /foo|bar/, get: <name>}) = [bazCompilation]
diff_normalizeLimit(limit?: number | Limit | null): Limit | null
Normalize the limit
diff_isLTETheLimit(valueDiff: ValueDiff, limit?: number | Limit | null): boolean
Returns true
if valueDiff
has not been exceeded the limit
[report-writer]
- move transform
function from cli
[report-writer]
- to
-parameter of transform
function now is required[report-writer]
- from
-parameter of transform
might be file name or stats object[cli]
- use transform
from report-writer
[helpers]
- move prepareWithJora
from webpack-model
[webpck-model]
- use prepareWithJora
from helpers
[helpers]
- fix max
-parameter bug in graph_findPaths
-helper[cli]
- validator
parameter in validate
command (use statoscope config with rules instead)