
Research
NPM targeted by malware campaign mimicking familiar library names
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
@jscutlery/swc-angular-preset
Advanced tools
This is a set of Angular presets that enable you to use SWC (Speedy Web Compiler) with Jest or Vitest.
Switching to SWC can speed up your tests by 2x to 5x.
Surprisingly, in most cases, the bottleneck in Jest & Vitest tests is not the test execution time nor the Angular JIT (Just-In-Time) compiler but the TypeScript transformer.
This is where SWC (Speedy Web Compiler) comes in. SWC is a JavaScript/TypeScript compiler that aims to be extremely fast.
This package enables you to use SWC with Angular projects by setting the right configuration for SWC and using
our Angular plugin for SWC @jscutlery/swc-plugin-angular
ts-jest | @swc/jest |
---|---|
85s | 35s (2.4x faster) |
💻 try it yourself: https://github.com/yjaaidi/experiments/tree/angular-jest-swc-benchmark
Install this preset and its dependencies via npm:
npm install -D @jscutlery/swc-angular-preset @jscutlery/swc-plugin-angular @swc/core @swc/jest
grep .swc .gitignore || echo .swc >> .gitignore
In your Jest configuration file (e.g., jest.config.ts
), use the swcAngularJestTransformer
function to
transform .ts
, .js
, and .mjs
files.
import { swcAngularJestTransformer } from '@jscutlery/swc-angular-preset';
export default {
// ...
transform: {
'^.+\\.(ts|mjs|js)$': swcAngularJestTransformer(),
'^.+\\.(html)$':
[
'jest-preset-angular',
{
tsconfig: '<rootDir>/tsconfig.spec.json',
stringifyContentPathRegex: '\\.(html|svg)$',
},
],
},
transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'],
// ...
};
reflect-metadata
In order for constructor injection to work, you need to import reflect-metadata
in the setup file which is probably
located at src/test-setup.ts
.
import 'reflect-metadata';
Install this preset and its dependencies via npm:
npm install -D @jscutlery/swc-angular-preset @jscutlery/swc-plugin-angular @swc/core unplugin-swc
grep .swc .gitignore || echo .swc >> .gitignore
In your vite configuration file (e.g., vite.config.ts
), use the unplugin-swc
plugin with our
preset: swcAngularVitePreset
.
import { swcAngularUnpluginOptions } from '@jscutlery/swc-angular-preset';
import swc from 'unplugin-swc';
import { defineConfig } from 'vite';
export default defineConfig({
// ...
plugins: [swc.vite(swcAngularUnpluginOptions())]
// ...
});
reflect-metadata
In order for constructor injection to work, you need to import reflect-metadata
in the setup file which is probably
located at src/test-setup.ts
.
import 'reflect-metadata';
FAQs
## 👀 What is this?
The npm package @jscutlery/swc-angular-preset receives a total of 42 weekly downloads. As such, @jscutlery/swc-angular-preset popularity was classified as not popular.
We found that @jscutlery/swc-angular-preset demonstrated a not healthy version release cadence and project activity because the last version was released 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.
Research
Socket uncovered npm malware campaign mimicking popular Node.js libraries and packages from other ecosystems; packages steal data and execute remote code.
Research
Socket's research uncovers three dangerous Go modules that contain obfuscated disk-wiping malware, threatening complete data loss.
Research
Socket uncovers malicious packages on PyPI using Gmail's SMTP protocol for command and control (C2) to exfiltrate data and execute commands.