Angular checkup

primo-brandeis

Primo VE package · 0 TypeScript files, 4 JavaScript files · 6 templates · 3 512 lines of code

Generated 2026-10-23

20/100

Overview

Top priorities

  1. HighPrimo VE customizations do not carry over to NDE, announced as the only Primo UI from January 2028 Primo NDE migration
  2. Medium22 Primo hooks to rebuild, with 5 helper components Primo NDE migration
  3. MediumparentCtrl read in 11 places Primo NDE migration
  4. Medium3 third-party integrations to rebuild or replace Primo NDE migration

Migration plan: Primo VE customizations (AngularJS) → Primo NDE

4 phases, each shipping on its own, from deciding what NDE still needs to switching view by view.

  1. 1Decide and set up

    A list of the customizations NDE still needs, and the custom module building for your institution and view.

    • Check each customization against NDE as it ships 27

      NDE was redesigned from the ground up; some VE customizations fill gaps it no longer has. Dropping those first is the cheapest part of the migration.

    • Set up the NDE custom module (Angular 18)git clone https://github.com/ExLibrisGroup/customModule.git && cd customModule && npm install

      Set the institution and view in build-settings.env; npm run build writes the package to upload per view.

  2. 2Branding and static pages

    The NDE view looks like the library again.

    • Move logos, images and CSS 1

      Images to src/assets/images, CSS to src/assets/css/custom.css or the Material 3 theme in src/app/styles.

    • Move the static home pages 1

      To src/assets/homepage/homepage_<lang>.html; AngularJS markup in them has to go. Languages: en.

  3. 3Rebuild the hooks

    Every customization that is still needed runs as an Angular component in NDE.

    • Rebuild each hook as an Angular component 22

      Map it in selectorComponentMap to the matching nde-…-before, -after, -top or -bottom selector, found in the NDE UI.

    • Rebuild the helper components the hooks render 5
    • Replace parentCtrl reads 11

      With @Input() hostComponent or NgRx store selectors (store.selectSignal(...)).

    • Rebuild or replace Google Analytics / Tag Manager

      Check for the vendor's NDE version first.

    • Rebuild or replace HathiTrust

      Check for the vendor's NDE version first.

    • Rebuild or replace LibChat (Springshare)

      Check for the vendor's NDE version first.

  4. 4Test and switch

    Each view runs on NDE, before the VE UI goes away.

    • Test against the live view in proxy modenpm run start:proxy

      Or open the NDE view with ?useLocalCustomPackage=true while npm run start runs.

    • Build, upload and switch view by view 1npm run build

      Before January 2028, when NDE is announced as the only UI.

Primo NDE migration

Poor

Primo VE customization: 22 hooks, 11 parentCtrl reads to rebuild for NDE.

Views
1
customization packages
Hooks
22
5 helper components
parentCtrl reads
11
in 1 file
Integrations
3
third-party
Requests
0
`$http` calls

Angular version & tooling

Info

No @angular/core: a Primo VE customization package, on AngularJS (see Primo NDE migration).

Latest Angular
22
npm registry

Deprecated APIs

Info

The Angular type definitions could not be read, neither installed nor from the npm registry, so deprecations are not checked.

Legacy template directives
0

Third-party compatibility

Info

No Angular dependency to check against.

Change detection & zoneless readiness

Info

No Angular components.

Mode
zone.js
OnPush
0%
0 of 0 components
Files injecting NgZone
0
Zone test helpers
0

Components & templates

Info

No @Component classes found.

State management

Info

No state-management library or signal usage found.

Classic NgRx files
0
Signal store files
0
signal() / computed()
0
0 toSignal()
BehaviorSubject services
0

Architecture

Info

No application code to check.

Lazy routes
0%
0 of 0
Large files
0
over 500 lines
Constructor injection
0
classes; 0 inject() calls
Class guards
0
and interceptors
Hotspots
-
shallow clone: no history (fetch-depth: 0)

Testing

Info

No unit-test runner detected, 0 spec files, 0% of components and services with a spec.

Unit-test runner
none
Spec files
0
With a spec
0%
0 of 0 component/service files
End-to-end
none

Type safety

Info

No application tsconfig found.

strictNullChecks
off
default in TypeScript ?
strictTemplates
off
default in Angular ?
noImplicitAny
off
default in TypeScript ?
Explicit any
0
0.0 per 1 000 lines
Non-null assertions
0

Security

Info

No application code to check.

Direct DOM HTML writes
0
innerHTML =, insertAdjacentHTML
Sanitizer bypasses
0
bypassSecurityTrust*
eval / new Function
0
[innerHTML] bindings
0
sanitized by Angular
Known vulnerabilities
0
in 0 direct dependencies checked

Circular dependencies

Info

No TypeScript application code to check.

Bundle size

Info

No build stats found, so the bundle size is not part of this report.