Skip to content

Commit 1caa744

Browse files
author
sanex3339
committed
Now output filename depends on input filename
1 parent 2041552 commit 1caa744

File tree

6 files changed

+41
-8
lines changed

6 files changed

+41
-8
lines changed

App/actions/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ export const updateCode = (code) => ({
77
code
88
});
99

10+
export const updateOutputFileName = (outputFileName) => ({
11+
'type': types.UPDATE_OUTPUT_FILE_NAME,
12+
outputFileName
13+
});
14+
1015
export const obfuscateCode = (code, options) => {
1116
return (dispatch) => {
1217
if (!options.sourceMap) {

App/constants/ActionTypes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export const UPDATE_CODE = 'UPDATE_CODE';
2+
export const UPDATE_OUTPUT_FILE_NAME = 'UPDATE_OUTPUT_FILE_NAME';
23

34
export const OBFUSCATE = 'OBFUSCATE';
45
export const OBFUSCATE_PENDING = 'OBFUSCATE_PENDING';

App/containers/App.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class App extends Component {
1616
dispatch: PropTypes.func,
1717
code: PropTypes.string,
1818
obfuscatedCode: PropTypes.string,
19+
outputFileName: PropTypes.string,
1920
sourceMap: PropTypes.string,
2021
obfuscating: PropTypes.bool,
2122
obfuscated: PropTypes.bool,
@@ -33,7 +34,7 @@ class App extends Component {
3334
downloadCode() {
3435
const data = {
3536
mime: 'application/javascript',
36-
filename: 'obfuscated.js',
37+
filename: this.props.outputFileName,
3738
contents: this.props.obfuscatedCode,
3839
};
3940

@@ -43,7 +44,7 @@ class App extends Component {
4344
downloadSourceMap() {
4445
const data = {
4546
mime: 'application/octet-stream',
46-
filename: 'obfuscated.js.map',
47+
filename: `${this.props.outputFileName}.map`,
4748
contents: this.props.sourceMap,
4849
};
4950

@@ -74,6 +75,7 @@ class App extends Component {
7475
pending={obfuscating}
7576
hasResults={obfuscated || error}
7677
onCodeChange={(code) => dispatch(actions.updateCode(code))}
78+
onOutputFileNameChange={(fileName) => dispatch(actions.updateOutputFileName(fileName))}
7779
onObfuscateClick={::this.obfuscate}
7880
onDownloadCodeClick={::this.downloadCode}
7981
onDownloadSourceMapClick={::this.downloadSourceMap}
@@ -98,6 +100,7 @@ const mapStateToProps = (state) => {
98100
return {
99101
code: code.code,
100102
obfuscatedCode: code.obfuscatedCode,
103+
outputFileName: code.outputFileName,
101104
sourceMap: code.sourceMap,
102105
obfuscating: code.obfuscating,
103106
obfuscated: code.obfuscated,

App/containers/CodeContainer.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {Form, Grid, Segment, Button, Icon, Tab} from 'semantic-ui-react';
88
import Dropzone from 'react-dropzone';
99

1010
import EditorContainer from '../containers/EditorContainer';
11+
import {DEFAULT_OUTPUT_FILE_NAME} from '../reducers/code';
1112

1213
const TAB_CODE = 0;
1314
const TAB_RESULTS = 2;
@@ -20,6 +21,7 @@ class CodeContainer extends Component {
2021
pending: PropTypes.bool,
2122
hasResults: PropTypes.bool,
2223
onCodeChange: PropTypes.func,
24+
onOutputFileNameChange: PropTypes.func,
2325
onObfuscateClick: PropTypes.func,
2426
onDownloadCodeClick: PropTypes.func,
2527
onDownloadSourceMapClick: PropTypes.func,
@@ -57,8 +59,18 @@ class CodeContainer extends Component {
5759
});
5860
}
5961

62+
onCodeChange(code) {
63+
const {code: prevCode, onCodeChange, onOutputFileNameChange} = this.props;
64+
65+
onCodeChange(code);
66+
67+
if (code !== prevCode) {
68+
onOutputFileNameChange(DEFAULT_OUTPUT_FILE_NAME);
69+
}
70+
}
71+
6072
onDrop(files) {
61-
const {onCodeChange} = this.props;
73+
const {onCodeChange, onOutputFileNameChange} = this.props;
6274

6375
if (!window.File || !window.FileReader) {
6476
alert('Your browser does not support File API');
@@ -69,6 +81,7 @@ class CodeContainer extends Component {
6981

7082
reader.onload = (event) => {
7183
onCodeChange(event.target.result);
84+
onOutputFileNameChange(file.name);
7285
this.onTabClick(TAB_CODE);
7386
};
7487

@@ -146,7 +159,6 @@ class CodeContainer extends Component {
146159
code,
147160
obfuscatedCode,
148161
pending,
149-
onCodeChange,
150162
onObfuscateClick,
151163
onDownloadCodeClick,
152164
onDownloadSourceMapClick,
@@ -159,7 +171,7 @@ class CodeContainer extends Component {
159171
menuItem: 'Copy & Paste JavaScript Code',
160172
render: () => (
161173
<Pane>
162-
<EditorContainer onBlur={onCodeChange} value={code}/>
174+
<EditorContainer onBlur={::this.onCodeChange} value={code}/>
163175
<Segment basic>
164176
<Button
165177
loading={pending}
@@ -177,7 +189,11 @@ class CodeContainer extends Component {
177189
menuItem: 'Upload JavaScript File',
178190
render: () => (
179191
<Pane>
180-
<Dropzone onDrop={::this.onDrop} multiple={false} className="DropZone">
192+
<Dropzone
193+
onDrop={::this.onDrop}
194+
multiple={false}
195+
className="DropZone"
196+
>
181197
<div>Try dropping some file here, or click to select file to upload.</div>
182198
</Dropzone>
183199
</Pane>

App/reducers/code.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@ const DEFAULT_CODE = [
99
'hi();',
1010
].join('\n');
1111

12+
export const DEFAULT_OUTPUT_FILE_NAME = 'obfuscated.js';
1213

1314
const initialState = {
1415
code: DEFAULT_CODE,
16+
outputFileName: DEFAULT_OUTPUT_FILE_NAME,
1517
obfuscatedCode: '',
1618
sourceMap: '',
1719
obfuscating: false,
1820
obfuscated: false,
19-
error: false,
21+
error: false
2022
};
2123

2224

@@ -63,6 +65,12 @@ export const code = (state = initialState, action) => {
6365
sourceMap: action.payload.sourceMap,
6466
};
6567

68+
case types.UPDATE_OUTPUT_FILE_NAME:
69+
return {
70+
...state,
71+
outputFileName: action.outputFileName
72+
};
73+
6674
default:
6775
return state
6876
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "javascript-obfuscator-web",
3-
"version": "3.5.0",
3+
"version": "3.6.0",
44
"description": "",
55
"engines": {
66
"node": ">=12.13.1"

0 commit comments

Comments
 (0)