Security News
Supply Chain Attack Detected in @solana/web3.js Library
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
@angular/platform-browser-dynamic
Advanced tools
Angular - library for using Angular in a web browser with JIT compilation
The @angular/platform-browser-dynamic npm package provides methods for bootstrapping Angular applications in a browser environment with Just-In-Time (JIT) compilation. This package is typically used for development purposes, as it compiles the application dynamically in the browser, allowing for a faster development cycle. However, for production builds, Ahead-Of-Time (AOT) compilation is preferred for performance reasons, which is handled by the @angular/platform-browser package.
Bootstrapping Angular Modules
This code snippet demonstrates how to bootstrap an Angular module using the platformBrowserDynamic function. It imports the AppModule and then calls the bootstrapModule method to initialize the application.
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
This package provides tools for running Angular applications in a web browser with Ahead-Of-Time (AOT) compilation. Unlike @angular/platform-browser-dynamic, it is optimized for production by pre-compiling templates to make the application load faster and be more performant.
Similar to @angular/platform-browser-dynamic for Angular, react-dom is used for bootstrapping and rendering React applications in the browser. It provides the entry point to the DOM and server renderers for React and can be considered an equivalent in the React ecosystem.
The Vue.js framework has a similar package for bootstrapping and rendering Vue applications in the browser. It provides the functionality to create and mount the root Vue instance to the DOM, similar to how Angular applications are bootstrapped with @angular/platform-browser-dynamic.
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
License: MIT
14.0.0 (2022-06-02)
Blog post "Angular v14 is now available".
AnimationDriver.getParentElement
method has become required, so any
implementors of this interface are now required to provide an implementation
for this method. This breakage is unlikely to affect application developers,
as AnimationDriver
is not expected to be implemented in user code.Keyframes names are now prefixed with the component's "scope name". For example, the following keyframes rule in a component definition, whose "scope name" is host-my-cmp:
@keyframes foo { ... }
will become:
@keyframes host-my-cmp_foo { ... }
Any TypeScript/JavaScript code which relied on the names of keyframes rules will no longer match.
The recommended solutions in this case are to either:
None
or ShadowDom
Support for Node.js v12 has been removed as it will become EOL on 2022-04-30. Please use Node.js v14.15 or later.
TypeScript versions older than 4.6 are no longer supported.
Forms [email] input coercion
Forms [email] input value will be considered as true if it is defined with any value rather than false and 'false'.
Since Ivy, TestBed doesn't use AOT summaries. The aotSummaries
fields in TestBed APIs were present, but unused. The fields were deprecated in previous major version and in v14 those fields are removed. The aotSummaries
fields were completely unused, so you can just drop them from the TestBed APIs usage.
Forms classes accept a generic.
Forms model classes now accept a generic type parameter. Untyped versions of these classes are available to opt-out of the new, stricter behavior.
objects with a length key set to zero will no longer validate as empty.
This is technically a breaking change, since objects with a key length
and value 0
will no longer validate as empty. This is a very minor change, and any reliance on this behavior is probably a bug anyway.
Queries including + will now actually query for + instead of space. Most workarounds involving custom codecs will be unaffected. Possible server-side workarounds will need to be undone.
JSONP will throw an error when headers are set on a reques
JSONP does not support headers being set on requests. Before when a request was sent to a JSONP backend that had headers set the headers were ignored. The JSONP backend will now throw an error if it receives a request that has any headers set. Any uses of JSONP on requests with headers set will need to remove the headers to avoid the error.
This change may cause a breaking change in unit tests that are implicitly depending on a specific number and sequence of change detections in order for their assertions to pass.
This may break invalid calls to TransferState
methods.
This tightens parameter types of TransferState
usage, and is a minor breaking change which may reveal existing problematic calls.
Route.pathMatch
is now stricter. Places that use
pathMatch
will likely need to be updated to have an explicit
Route
/Routes
type so that TypeScript does not infer the type as
string
.Promise
from the
LoadChildrenCallback
, the possible type is now restricted to
Type<any>|NgModuleFactory<any>
rather than any
.initialNavigation: 'enabled'
was deprecated in v11 and is replaced by
initialNavigation: 'enabledBlocking'
.component
on ActivatedRoute
and ActivatedRouteSnapshot
includes string
. In reality, this is not the case. The component
cannot be anything other than a component class.initialUrl
is set to string|UrlTree
but in reality,
the Router
only sets it to a value that will always be UrlTree
initialUrl
is documented as "The target URL passed into the
Router#navigateByUrl()
call before navigation" but the value
actually gets set to something completely different. It's set to the
current internal UrlTree
of the Router at the time navigation
occurs.initialUrl
because it was never intended to be exposed.
Router.url
is likely the best replacement for this.
In more specific use-cases, tracking the finalUrl
between successful
navigations can also be used as a replacement.UrlTree
, the router would previously schedule
the redirect navigation within a setTimeout
. This timeout is now removed,
which can result in test failures due to incorrectly written tests.
Tests which perform navigations should ensure that all timeouts are
flushed before making assertions. Tests should ensure they are capable
of handling all redirects from the original navigation.Observables
returned by other guards: only the first value is used.FAQs
Angular - library for using Angular in a web browser with JIT compilation
The npm package @angular/platform-browser-dynamic receives a total of 2,776,888 weekly downloads. As such, @angular/platform-browser-dynamic popularity was classified as popular.
We found that @angular/platform-browser-dynamic demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A supply chain attack has been detected in versions 1.95.6 and 1.95.7 of the popular @solana/web3.js library.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.