Commit Graph

3154 Commits

Author SHA1 Message Date
Kara Erickson 67eac733d2 refactor(ivy): do not generate providedIn: null (#34116)
We should only generate the `providedIn` property in injectable
defs if it has a non-null value. `null` does not communicate
any information to the runtime that isn't communicated already
by the absence of the property.

This should give us some modest code size savings.

PR Close #34116
2019-12-03 10:14:52 -08:00
Charles Lyding 56f4e56094 docs: Ivy i18n guide updates for localize option (#34053)
PR Close #34053
2019-12-03 10:14:15 -08:00
Kara Erickson 755d2d572f refactor(ivy): remove unnecessary fac wrapper (#34076)
For injectables, we currently generate a factory function in the
injectable def (prov) that delegates to the factory function in
the factory def (fac). It looks something like this:

```
factory: function(t) { return Svc.fac(t); }
```

The extra wrapper function is unnecessary since the args for
the factory functions are the same. This commit changes the
compiler to generate this instead:

```
factory: Svc.fac
```

Because we are generating less code for each injectable, we
should see some modest code size savings. AIO's main bundle
is about 1 KB smaller.

PR Close #34076
2019-12-02 11:35:24 -08:00
Alan Agius e6dbcd0f46 docs: remove redundant dashes (#34172)
PR Close #34172
2019-12-02 11:26:21 -08:00
Igor Minar b8eb2f2f23 build: support yarn 1.19.x (#34143)
PR Close #34143
2019-12-02 11:23:48 -08:00
Paul Gschwendtner 5b04abd5c0 docs: update title of v9 injectable migration guide (#34125)
The missing-injectable migration has been updated to handle a breaking change that is
unrelated to missing ´@Injectable` decorators. Though, the breaking change will be handled
as part of this migration since we did not want to create another migration (with all the boilerplate etc.)

The guide has been already updated to reflect the new pattern the migration handles, but we
should also rename the title of the guide to something that also mentions the other pattern.

Not renaming the guide URL since it is referenced in past releases and it's safer to keep the old
URL. The important thing is to change the actual rendered title.

PR Close #34125
2019-12-02 11:21:50 -08:00
Santosh Yadav 040673464c docs: small typo in DI docs (#34122)
PR Close #34122
2019-12-02 11:20:39 -08:00
ajitsinghkaler 72abde603d docs: add deprecated-api-item class to deprecated items (#34088)
Fixes #31455

PR Close #34088
2019-12-02 11:03:05 -08:00
Sonu Kapoor 2cc954d5a5 test(docs-infra): ensure RxJS-related docs examples can compile without errors (#34063)
Previously, some RxJS-related examples (which are not proper Angular apps) were not
tested on CI as part of the `example-e2e` npm script. This meant that the examples
could get out-of-date or contain compile errors without as noticing.

This commit ensures that the `example-e2e` script picks up these examples and checks
that they compile successfully.

Partly addresses #28017.

PR Close #34063
2019-12-02 11:02:13 -08:00
Santosh Yadav 6108962291 docs: add ngIndia to event page (#33656)
PR Close #33656
2019-11-27 13:04:08 -08:00
Pete Bacon Darwin 2fb9b7ff1b fix(ngcc): do not output duplicate ɵprov properties (#34085)
Previously, the Angular AOT compiler would always add a
`ɵprov` to injectables. But in ngcc this resulted in duplicate `ɵprov`
properties since published libraries already have this property.

Now in ngtsc, trying to add a duplicate `ɵprov` property is an error,
while in ngcc the additional property is silently not added.

// FW-1750

PR Close #34085
2019-11-27 12:46:37 -08:00
George Kalpakas 0366743fc3 build(docs-infra): upgrade cli command docs sources to 6c6ad8661 (#34082)
Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master).

##
Relevant changes in [commit range](8b71bccf9...6c6ad8661):

**Modified**
- help/test.json

##

PR Close #34082
2019-11-27 10:37:39 -08:00
Paul Gschwendtner 3414760bdd docs: update injectable migration guide to reflect latest schematic changes (#33960)
Since we created the migration guide for the `missing-injectable` schematic, the schematic
changed in various ways. e.g. the migration no longer migrates classes passed to `useExisting`

Additionally the migration has been expanded to handle another Ivy breaking change where
providers like `{provide: X}` will be intepreted as `{provide: X, useClass: X}`. This pattern should
be documented in the migration guide.

PR Close #33960
2019-11-26 16:37:48 -05:00
Nikita Potapenko 48a1acab52 docs: fix typo in sample (#33984)
Fixes #33979

PR Close #33984
2019-11-26 16:37:17 -05:00
Kapunahele Wong 78c65c330f docs: add note about strictTemplates and strictNullChecks together (#34039)
PR Close #34039
2019-11-26 16:36:51 -05:00
ajitsinghkaler 5ff98fe701 docs: removed non-supported versions from LTS (#34005)
PR Close #34005
2019-11-26 16:36:23 -05:00
Kapunahele Wong d655093123 docs: add Animations import in Router doc (#33740)
Fixes #33665

PR Close #33740
2019-11-25 22:37:55 -05:00
Kapunahele Wong 1ab2ebc719 docs: edit EventEmitter name in styleguide (#33923)
Fixes #33890

PR Close #33923
2019-11-25 18:40:51 -05:00
Igor Minar ed55355363 fix(core): remove deprecated and defunct wtf* apis (#33949)
These apis have been deprecated in v8, so they should stick around till v10,
but since they are defunct we are removing them early so that they don't take up payload size.

PR Close #33949
2019-11-25 18:39:18 -05:00
George Kalpakas 9b5299131b ci: remove change type from uploaded payload size data (#33987)
The change type was only recorded for `aio/` and was not correct anyway.
For example:
- It considered `package.json` changes as `application` (even if only
  `package.json` and `yarn.lock` had changed).
- It failed to account for changes in `@angular/*` dependencies, when
  using the locally built Angular packages (instead reporting them as
  `other`).
- It only looked at the last commit, so it failed to provide accurate
  information for multi-commit builds (which are rare, but possible).

For the above reasons (and because there is no straight-forward way of
fixing it), this commit removes the change type from the uploaded data.
If necessary, it is still possible to find the type of changes from the
uploaded info (e.g. extract the associated commits and look at their
changes using git).

PR Close #33987
2019-11-25 16:36:07 -05:00
Charles Lyding 56f33bc266 docs: initial Ivy i18n guide updates (#33762)
PR Close #33762
2019-11-25 14:12:18 -05:00
arturovt f2800b90b2 docs(docs-infra): fix typos and spelling in the stackblitz-builder/README.md (#34009)
PR Close #34009
2019-11-25 11:39:05 -05:00
arturovt 51a56bc4c6 docs: fix typos and highlight booleans to keep consistency (#34013)
PR Close #34013
2019-11-25 11:38:06 -05:00
ajitsinghkaler 1217c6b7cc docs: replace class hero to interface wherever class properties not used (#34022)
Fixes #21186

PR Close #34022
2019-11-25 11:37:39 -05:00
JiaLiPassion 5129bccebf docs: add TracyLee to GDE list (#33947)
PR Close #33947
2019-11-22 18:40:03 -05:00
Joey Perrott e24453b9f8 docs: Add Joey Perrott to Angular team in contributors (#33962)
PR Close #33962
2019-11-22 17:40:03 -05:00
arturovt 17857a311f docs: fix typo in the aio/README.md (#33993)
PR Close #33993
2019-11-22 17:37:15 -05:00
Kara Erickson d752e26eb2 ci: tighten size threshold to 1% or 500 bytes (#33969)
The size diff threshold of 1% has proven to be too lenient for us
to catch size regressions in AIO. Since the AIO main bundle is
between 400-500 KB, a size regression must be between 4-5 KB before
it will cause the tests to fail. As a result, we may merge many
changes with smaller regressions of a few KB before the size test
eventually lets us know that the number has increased. The hope is
that lowering the threshold will help us catch the smaller
regressions during code review and prevent the size tests failing at
a random later time when someone catches the size "hot potato".

PR Close #33969
2019-11-22 16:51:41 -05:00
Mark Goho dca6ad87fe fix(docs-infra): update manifest short_name (#30194)
PR Close #30194
2019-11-22 13:20:47 -05:00
Mark Goho 356e6a88f4 fix(docs-infra): update manifest names (#30194)
update manifest names to better indicate what the installable application is, fixes #30192
PR Close #30194
2019-11-22 13:20:47 -05:00
Kara Erickson a37bf9a516 docs: add examples for DI change in Ivy (#33643)
PR Close #33643
2019-11-22 13:04:24 -05:00
Santosh Yadav 9f211ba0f5 docs: add santosh yadav as GDE resource (#33818)
PR Close #33818
2019-11-22 12:45:52 -05:00
Girma Nigusse bb79018f92 docs(core): fix typo in Tour of Heroes App and Tutorial (#33931)
PR Close #33931
2019-11-22 12:45:03 -05:00
Alan Agius 5024e217d7 docs: update npm install dev command to `npm install --save-dev` (#33985)
See: https://docs.npmjs.com/specifying-dependencies-and-devdependencies-in-a-package-json-file

PR Close #33985
2019-11-22 12:38:17 -05:00
arturovt 2dd572b15c docs(http): fix typo (#33978)
PR Close #33978
2019-11-22 12:36:43 -05:00
Ralf D. Müller fd5f101bab docs: add CSRF to XSRF section of http guide (#32933)
link to the correct section of the HttpClientGuide:
if someone searches for CSRF (and not XSRF), she will not find the right section in the HttpClient guide

added CSRF as name of XSRF attack:
in order to make it easier to find the XSRF protection, I've added a reference to the other name "CSRF". The security guide has the same reference to XSRF/CSRF.
When I searched for this feature, I had quite some problems to find it because of this missing reference

PR Close #32933
2019-11-21 16:57:12 -05:00
Martina Kraus 2303dc4f28 docs: add martina kraus to GDE resources (#33719)
PR Close #33719
2019-11-21 16:52:32 -05:00
Dmitri Ischenko 9d7b939554 fix(docs-infra): change search input width when focused (#33804)
The search input has 50% width of the parent container in a focused
state for the big break point (> 1000px). In this case when window width
is between 1000px and 1115px the search input shrinks from 180 to
~123px. The width of the search input was increased to 80% so that when
focused its width expands from 180 to 196px when window size is 1000px.

Fixes #33305

PR Close #33804
2019-11-21 16:51:05 -05:00
Alan Agius df71aa425f docs: clarify that `--prod` should be used to publish a library (#33959)
PR Close #33959
2019-11-21 10:45:18 -08:00
Filipe Silva 891708cfc9 build: update to Angular CLI 9.0.0-rc.3 (#33955)
Followup to https://github.com/angular/angular/pull/33337

PR Close #33955
2019-11-21 09:17:18 -08:00
Dyma 11a35e5d14 docs: add learning resource (#33730)
PR Close #33730
2019-11-20 14:56:56 -08:00
Alyssa Nicoll 4ae754a222 docs: Update Alyssa on GDE list (#33538)
PR Close #33538
2019-11-20 14:52:00 -08:00
George Kalpakas 27562e92db fix(docs-infra): fix StackBlitz and zipped `http` examples (#33941)
Previously, the generated StackBlitz examples as well as the
corresponding downloadable zips for the `http` guide examples were not
correct and thus trying to run the app and/or tests would fail.

This commit fixes the examples:

- Replace `TestBed.inject()` (which was [introduced in v9][1]) with
  `TestBed.get()` (which is available in v8 used in the examples).
  (NOTE: The examples will soon be updated to v9 (as part of
  [FW-1609][2] and switched back to `TestBed.inject()` then.)

- Include `src/app/heroes/hero.ts` in the zip, because it is referenced
  by some of the other files and the compilation fails without it.

- Ensure `src/main-specs.ts` is not included in the zip that does not
  include the tests. Including the file broke the app, because there is
  logic in our zip-builder that renamed `main-*.ts` files to `main.ts`
  and thus `main-specs.ts` ended up overwriting the actual `main.ts`.

[1]: https://next.angular.io/guide/deprecations#angularcoretesting
[2]: https://angular-team.atlassian.net/browse/FW-1609

Fixes #33874
Fixes #33945

PR Close #33941
2019-11-20 14:44:31 -08:00
Alex Rickabaugh 08a4f10ee7 fix(ivy): move setClassMetadata calls into a pure iife (#33337)
This commit transforms the setClassMetadata calls generated by ngtsc from:

```typescript
/*@__PURE__*/ setClassMetadata(...);
```

to:

```typescript
/*@__PURE__*/ (function() {
  setClassMetadata(...);
})();
```

Without the IIFE, terser won't remove these function calls because the
function calls have arguments that themselves are function calls or other
impure expressions. In order to make the whole block be DCE-ed by terser,
we wrap it into IIFE and mark the IIFE as pure.

It should be noted that this change doesn't have any impact on CLI* with
build-optimizer, which removes the whole setClassMetadata block within
the webpack loader, so terser or webpack itself don't get to see it at
all. This is done to prevent cross-chunk retention issues caused by
webpack's internal module registry.

* actually we do expect a short-term size regression while
https://github.com/angular/angular-cli/pull/16228
is merged and released in the next rc of the CLI. But long term this
change does nothing to CLI + build-optimizer configuration and is done
primarly to correct the seemingly correct but non-function PURE annotation
that builds not using build-optimizer could rely on.

PR Close #33337
2019-11-20 12:55:58 -08:00
George Kalpakas 9e45203679 test(docs-infra): more thoroughly clean up after `ScrollService` tests (#33937)
By clearing `sessionStorage` and unsubscribing from `Location` events,
after each test, we reduce the possibility of potential
[spooky action at a distance][1]-type of failures in the future.

This does not have an impact on the actual app, since `ScrollService` is
currently expected to live throughout the lifetime of the app. Still,
unsubscribing from `Location` events keeps the code consistent with how
other `ScrollService` listeners are handled (e.g. for `window` events).

[1]: https://en.wikipedia.org/wiki/Action_at_a_distance_(computer_programming)

PR Close #33937
2019-11-20 11:04:12 -08:00
George Kalpakas b7fd86ec50 test(docs-infra): destroy all `ScrollService` instances after each test (#33937)
`ScrollService` subscribes to global `window` events and mutates global
state in the listener (e.g. read/write values from/to `sessionStorage`).
Therefore, we need to always call its `ngOnDestroy()` method to
unsubscribe from these events after each test.

In f69c6e204, a new testcase was introduced that was not destroyed. As a
result, random failures started to randomly happen in other, unrelated
tests ([example CI failure][1]).

This commit fixes this by ensuring all `ScrollService` instances are
destroyed after each tests (provided that they are created with the
`createScrollService()` helper).

[1]: https://circleci.com/gh/angular/angular/533298

PR Close #33937
2019-11-20 11:04:12 -08:00
ajitsinghkaler f69c6e204a fix(docs-infra): do not break when cookies are disabled in the browser (#33829)
Whenever cookies are disabled in the browser, `window.sessionStorage` is not avaialable to the app (i.e. even trying to access `window.sessionStorage` throws an error).

To avoid breaking the app, we use a no-op `Storage` implementation if `window.sessionStorage` is not available.

Fixes #33795

PR Close #33829
2019-11-19 11:42:11 -08:00
Judy Bogart 5c23ea71c4 docs: add version requirement for routing option (#33909)
PR Close #33909
2019-11-19 11:40:03 -08:00
Judy Bogart 341d5847d6 docs: add xrefs to update app and deprecations policy (#33767)
PR Close #33767
2019-11-18 09:13:16 -08:00
Pierre-Yves FARE 2e7a3e9ae6 docs: add html template for sizer component in template syntax guide (#33776)
fixes #33771

PR Close #33776
2019-11-18 09:12:45 -08:00