AIO is currently using a beta version of @angular/service-worker. Since that was implemented, the SW has been rewritten and released as part of Angular 5.0.0. This commit updates AIO to use the latest implementation, with an appropriate configuration file that caches the various AIO assets in useful ways. PR Close #19795
128 lines
8.4 KiB
JSON
128 lines
8.4 KiB
JSON
{
|
|
"database": {
|
|
"rules": "database.rules.json"
|
|
},
|
|
"hosting": {
|
|
"public": "dist",
|
|
"cleanUrls": true,
|
|
"redirects": [
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
// README:
|
|
// Redirects must also be handled by the ServiceWorker. If you add a redirect rule here,
|
|
// make sure it is compatible with the configuration in `ngsw-config.json`.
|
|
//////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// A random bad indexed page that used `api/api`
|
|
{"type": 301, "source": "/api/api/:rest*", "destination": "/api/:rest*"},
|
|
|
|
// Guide renames/removals
|
|
{"type": 301, "source": "/docs/*/latest/cli-quickstart.html", "destination": "/guide/quickstart"},
|
|
{"type": 301, "source": "/docs/*/latest/glossary.html", "destination": "/guide/glossary"},
|
|
{"type": 301, "source": "/docs/*/latest/quickstart.html", "destination": "/guide/quickstart"},
|
|
{"type": 301, "source": "/docs/*/latest/guide/server-communication.html", "destination": "/guide/http"},
|
|
{"type": 301, "source": "/docs/*/latest/guide/style-guide.html", "destination": "/guide/styleguide"},
|
|
{"type": 301, "source": "/guide/cli-quickstart", "destination": "/guide/quickstart"},
|
|
{"type": 301, "source": "/guide/service-worker-getstart", "destination": "/guide/service-worker-getting-started"},
|
|
{"type": 301, "source": "/guide/service-worker-comm", "destination": "/guide/service-worker-communications"},
|
|
{"type": 301, "source": "/guide/service-worker-configref", "destination": "/guide/service-worker-config"},
|
|
{"type": 301, "source": "/guide/webpack", "destination": "https://v5.angular.io/guide/webpack"},
|
|
|
|
// some top level guide pages on old site were moved below the guide folder
|
|
{"type": 301, "source": "/styleguide", "destination": "/guide/styleguide"},
|
|
{"type": 301, "source": "/docs/styleguide", "destination": "/guide/styleguide"},
|
|
|
|
// news is now blog
|
|
{"type": 301, "source": "/news*", "destination": "https://blog.angular.io/"},
|
|
|
|
// cookbook guides were moved (and sometime renamed or removed)
|
|
{"type": 301, "source": "/docs/*/latest/cookbook", "destination": "/docs"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/", "destination": "/docs"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/index.html", "destination": "/docs"},
|
|
{"type": 301, "source": "/**/cookbook/ts-to-js*", "destination": "https://github.com/angular/angular/blob/master/aio/content/guide/change-log.md#es6--described-in-typescript-to-javascript-2016-11-14"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/a1-a2-quick-reference.html", "destination": "/guide/ajs-quick-reference"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/component-communication.html", "destination": "/guide/component-interaction"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/dependency-injection.html", "destination": "/guide/dependency-injection-in-action"},
|
|
{"type": 301, "source": "/docs/*/latest/cookbook/:cookbook.html", "destination": "/guide/:cookbook"},
|
|
|
|
// Forms related code was moved from the `common` to `forms` package (and NgFor was renamed to NgForOf)
|
|
{"type": 301, "source": "/**/NgFor-*", "destination": "/api/common/NgForOf"},
|
|
{"type": 301, "source": "/**/api/common/index/MaxLengthValidator-*", "destination": "/api/forms/MaxLengthValidator"},
|
|
{"type": 301, "source": "/**/api/common/ControlGroup*", "destination": "/api/forms/FormGroup"},
|
|
{"type": 301, "source": "/**/api/common/Control*", "destination": "/api/forms/FormControl"},
|
|
{"type": 301, "source": "/**/api/common/SelectControlValueAccessor-*", "destination": "/api/forms/SelectControlValueAccessor"},
|
|
{"type": 301, "source": "/**/api/common/NgModel", "destination": "/api/forms/NgModel"},
|
|
|
|
// Animations moves, renames and removals
|
|
{"type": 301, "source": "/api/animate/:rest*", "destination": "/api/animations/:rest*"},
|
|
// AnimationStateDeclarationMetadata was removed
|
|
{"type": 301, "source": "/**/AnimationStateDeclarationMetadata*", "destination": "/api/animations"},
|
|
// `AnimationDriver` was moved to the `animations/browser` package
|
|
{"type": 301, "source": "/api/platform-browser/AnimationDriver", "destination": "/api/animations/browser/AnimationDriver"},
|
|
|
|
// The `testing` package was renamed to `core/testing`
|
|
{"type": 301, "source": "/api/testing/:api-*", "destination": "/api/core/testing/:api"},
|
|
|
|
// CORE_DIRECTIVES & PLATFORM_PIPES were removed and are now in the CommonModule
|
|
{"type": 301, "source": "/**/CORE_DIRECTIVES*", "destination": "/api/common/CommonModule"},
|
|
{"type": 301, "source": "/**/PLATFORM_PIPES*", "destination": "/api/common/CommonModule"},
|
|
|
|
// DirectiveMetadata is now covered by the Directive decorator
|
|
{"type": 301, "source": "/**/DirectiveMetadata-*", "destination": "/api/core/Directive"},
|
|
|
|
// OptionalMetadata is now covered by the Optional decorator
|
|
{"type": 301, "source": "/**/OptionalMetadata-*", "destination": "/api/core/Optional"},
|
|
|
|
// HTTP_PROVIDERS was removed and is now provided in HttpModule
|
|
{"type": 301, "source": "/**/HTTP_PROVIDERS*", "destination": "/api/http/HttpModule"},
|
|
|
|
// URLs that use the old scheme of adding the type to the end (e.g. `SomeClass-class`)
|
|
{"type": 301, "source": "/api/:package/:api-*", "destination": "/api/:package/:api"},
|
|
{"type": 301, "source": "/api/:package/testing/index/:api-*", "destination": "/api/:package/testing/:api"},
|
|
{"type": 301, "source": "/api/:package/testing/:api-*", "destination": "/api/:package/testing/:api"},
|
|
{"type": 301, "source": "/api/upgrade/:package/index/:api-*", "destination": "/api/upgrade/:package/:api"},
|
|
{"type": 301, "source": "/api/upgrade/:package/:api-*", "destination": "/api/upgrade/:package/:api"},
|
|
|
|
// URLs that use the old scheme before we moved the docs to the angular/angular repo
|
|
{"type": 301, "source": "/docs/*/latest", "destination": "/docs"},
|
|
{"type": 301, "source": "/docs/*/latest/api/", "destination": "/api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/:package", "destination": "/api/:package"},
|
|
{"type": 301, "source": "/docs/*/latest/api/testing/:api-*", "destination": "/api/core/testing/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/:package/:api-*", "destination": "/api/:package/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/:package/index/:api-*", "destination": "/api/:package/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/:package/testing", "destination": "/api/:package/testing"},
|
|
{"type": 301, "source": "/docs/*/latest/api/:package/testing/index/:api-*", "destination": "/api/:package/testing/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/platform-browser/animations/index/:api-*", "destination": "/api/platform-browser/animations/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/upgrade/:package/:api-*", "destination": "/api/upgrade/:package/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/api/upgrade/:package/index/:api-*", "destination": "/api/upgrade/:package/:api"},
|
|
{"type": 301, "source": "/docs/*/latest/glossary", "destination": "/guide/glossary"},
|
|
{"type": 301, "source": "/docs/*/latest/guide/", "destination": "/docs"},
|
|
{"type": 301, "source": "/docs/*/latest/guide/lifecycle-hooks", "destination": "/guide/lifecycle-hooks"},
|
|
{"type": 301, "source": "/docs/*/latest/:rest*", "destination": "/:rest*"},
|
|
{"type": 301, "source": "/docs/latest/:rest*", "destination": "/:rest*"},
|
|
{"type": 301, "source": "/docs/styleguide*", "destination": "/guide/styleguide"},
|
|
{"type": 301, "source": "/guide/metadata", "destination": "/guide/aot-compiler"},
|
|
{"type": 301, "source": "/guide/ngmodule", "destination": "/guide/ngmodules"},
|
|
{"type": 301, "source": "/guide/learning-angular*", "destination": "/guide/quickstart"},
|
|
{"type": 301, "source": "/testing", "destination": "/guide/testing"},
|
|
{"type": 301, "source": "/testing/**", "destination": "/guide/testing"}
|
|
],
|
|
"rewrites": [
|
|
{
|
|
"source": "**/!(*.*)",
|
|
"destination": "/index.html"
|
|
}
|
|
],
|
|
"headers": [
|
|
{
|
|
"source": "/",
|
|
"headers": [
|
|
{
|
|
"key": "Link",
|
|
"value": "</generated/navigation.json>;rel=preload;as=fetch,</generated/docs/index.json>;rel=preload;as=fetch"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|