javascript-obfuscator / javascript-obfuscator/webpack-obfuscator
How to make webpack obfuscator config type safe?
- Langage dominant
- TypeScript
- Étoiles
- 928
- Forks
- 92
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I want to ensure the values I use in my webpack obfuscator config are type safe. But for some reason the TypeScript compiler gives me no error if, for example, I use incorrect values like `high-obfuscation123` for `optionsPreset`:
webpack.config.ts
```typescript
export const mainConfig: Configuration = {
// ...
plugins: [
// ...
new WebpackObfuscatorPlugin({
optionsPreset: "high-obfuscation123", // No compile time errors. Only runtime ones (during webpack running).
// ...
})
],
// ...
}
```
I also tried to access configuration types directly but it causes an another runtime error although VSCode successfully recognize imports:
webpack.config.ts
```typescript
// ...
import WebpackObfuscatorPlugin from 'webpack-obfuscator';
import { OptionsPreset } from 'javascript-obfuscator/typings/src/enums/options/presets/OptionsPreset';
import { SourceMapMode } from 'javascript-obfuscator/typings/src/enums/source-map/SourceMapMode';
import { SourceMapSourcesMode } from 'javascript-obfuscator/typings/src/enums/source-map/SourceMapSourcesMode';
export const mainConfig: Configuration = {
// ...
plugins: [
// ...
new WebpackObfuscatorPlugin({
// ...
optionsPreset: OptionsPreset.LowObfuscation,
sourceMapMode: SourceMapMode.Separate,
sourceMapSourcesMode: SourceMapSourcesMode.Sources,
stringArrayIndexesType: [StringArrayIndexesType.HexadecimalNumericString],
target: ObfuscationTarget.Node
})
],
// ...
}
```
How can I make my webpack obfuscator config type safe?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par webpack.config.ts et les chemins de typings référencés de javascript-obfuscator ; examinez comment WebpackObfuscatorPlugin déclare ses options et comment ces imports d’enum sont émis à l’exécution. Le travail est terminé lorsque les valeurs invalides de optionsPreset sont rejetées par TypeScript, tandis que la configuration prise en charge peut être importée sans l’erreur d’exécution signalée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript, webpack
- Domaine
- build-system, tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100