mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Move the domino bundling logic and related shims into a centralized third_party directory within packages/platform-server. This avoids duplication of the bundling logic and ensures consistent shimming across the platform-server package and its entry points.
Following a conversation with OSS licensing, this change also includes the domino LICENSE file in the generated npm package to comply with licensing requirements for bundled third-party code.
```
├── fesm2022
│ ├── init.mjs
│ ├── init.mjs.map
│ ├── platform-server.mjs
│ ├── platform-server.mjs.map
│ ├── _server-chunk.mjs
│ ├── _server-chunk.mjs.map
│ ├── testing.mjs
│ └── testing.mjs.map
├── LICENSE
├── package.json
├── README.md
├── third_party
│ └── domino
│ ├── bundled-domino.d.ts
│ ├── bundled-domino.mjs
│ ├── bundled-domino.mjs.map
│ └── LICENSE
└── types
├── init.d.ts
├── platform-server.d.ts
└── testing.d.ts
```
(cherry picked from commit b40d11eec4)
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.dev/license
|
|
*/
|
|
import domino from '../../third_party/domino/bundled-domino';
|
|
import {applyShims} from '../src/shims';
|
|
|
|
describe('applyShims()', () => {
|
|
const globalClone = {...global};
|
|
|
|
afterEach(() => {
|
|
// Un-patch `global`.
|
|
const currentProps = Object.keys(global);
|
|
for (const prop of currentProps) {
|
|
if (['navigator', 'crypto'].includes(prop)) {
|
|
// These props are just a getter and cannot be changed
|
|
continue;
|
|
}
|
|
if (globalClone.hasOwnProperty(prop)) {
|
|
(global as any)[prop] = (globalClone as any)[prop];
|
|
} else {
|
|
delete (global as any)[prop];
|
|
}
|
|
}
|
|
});
|
|
|
|
it('should load `domino.impl` onto `global`', () => {
|
|
expect(global).not.toEqual(jasmine.objectContaining(domino.impl));
|
|
|
|
applyShims();
|
|
expect(global).toEqual(jasmine.objectContaining(domino.impl));
|
|
});
|
|
|
|
it('should define `KeyboardEvent` on `global`', () => {
|
|
expect((global as any).KeyboardEvent).not.toBe((domino.impl as any).Event);
|
|
|
|
applyShims();
|
|
expect((global as any).KeyboardEvent).toBe((domino.impl as any).Event);
|
|
});
|
|
});
|