689f351092
This lets projects like Material change ng_package "bundle index" files to non-conflicting paths Currently packages like @angular/core ship with the generated metadata in a path like 'core.js' which overwrites one of the inputs. Angular material puts the generated file in a path like 'index.js' Either way these files generated by ng_module rules have the potential to collide with inputs given by the user, which results in an error. Instead, give users the freedom to choose a different non-conflicting name. Also this refactors the ng_package rule, removing the redundant secondary_entry_points attribute. Instead, we assume that any ng_module in the deps with a module_name attribute is a secondary entry point. PR Close #22814
37 lines
926 B
Markdown
37 lines
926 B
Markdown
# Typescript API Guardian
|
|
|
|
Keeps track of public API surface of a typescript library.
|
|
|
|
Examples:
|
|
|
|
```sh
|
|
# Generate one declaration file
|
|
ts-api-guardian --out api_guard.d.ts index.d.ts
|
|
# Generate multiple declaration files
|
|
# (output location like typescript)
|
|
ts-api-guardian --outDir api_guard [--rootDir .] core/index.d.ts core/testing.d.ts
|
|
# Print usage
|
|
ts-api-guardian --help
|
|
# Check against one declaration file
|
|
ts-api-guardian --verify api_guard.d.ts index.d.ts
|
|
# Check against multiple declaration files
|
|
ts-api-guardian --verifyDir api_guard [--rootDir .] core/index.d.ts core/testing.d.ts
|
|
```
|
|
|
|
# For developers
|
|
|
|
Build and test this library:
|
|
|
|
```sh
|
|
$ bazel run //:install
|
|
$ bazel test //tools/ts-api-guardian:all
|
|
```
|
|
|
|
Publish to NPM:
|
|
|
|
```sh
|
|
$ npm whoami # should be logged in as angular
|
|
$ grep version tools/ts-api-guardian/package.json # advance as needed
|
|
$ bazel run //tools/ts-api-guardian:ts-api-guardian.publish
|
|
```
|