angular-cn/tools/ts-api-guardian
Alex Eagle 689f351092 build: expose flatModuleOutFile option on ng_module (#22814)
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
2018-03-20 13:28:57 -07:00
..
bin test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
lib build: expose flatModuleOutFile option on ng_module (#22814) 2018-03-20 13:28:57 -07:00
test fix: overloading a function doesn't generate all of the signatures (#22569) 2018-03-09 13:07:36 -08:00
BUILD.bazel test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
README.md build: expose flatModuleOutFile option on ng_module (#22814) 2018-03-20 13:28:57 -07:00
index.bzl test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
package.json test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00
yarn.lock test(bazel): Build and test ts-api-guardian locally (#22544) 2018-03-02 15:00:00 -08:00

README.md

Typescript API Guardian

Keeps track of public API surface of a typescript library.

Examples:

# 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:

$ bazel run //:install
$ bazel test //tools/ts-api-guardian:all

Publish to NPM:

$ 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