Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ charset = utf-8
[*.properties]
charset = latin1

[*.{yaml, yml}]
[*.{ts, tsx, js, jsx, json, yaml, yml, babelrc}]
indent_size = 2
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,13 @@ com_crashlytics_export_strings.xml

# JMH benchmark reports
jmh-report.json

# Node.js modules
node_modules

# Webpack build output
src/main/webapp/js
npm-debug.log

# node binaries from frontend-maven-plugin
node/
Empty file added .mvn_exec_node
Empty file.
5,525 changes: 5,525 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

44 changes: 44 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"name": "folder-auth-plugin",
"version": "1.0.0",
"description": "Jenkins Folder Auth plugin",
"private": true,
"main": "index.js",
"directories": {
"doc": "docs"
},
"scripts": {
"mvnbuild": "npm run build",
"build": "webpack --mode production",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/jenkinsci/folder-auth-plugin.git"
},
"author": "",
"license": "MIT",
"bugs": {
"url": "https://github.com/jenkinsci/folder-auth-plugin/issues"
},
"homepage": "https://github.com/jenkinsci/folder-auth-plugin#readme",
"dependencies": {
"react": "^16.13.1",
"react-dom": "^16.13.1"
},
"devDependencies": {
"@babel/core": "^7.9.6",
"@babel/preset-env": "^7.9.6",
"@babel/preset-react": "^7.9.4",
"@types/react": "^16.9.35",
"@types/react-dom": "^16.9.8",
"babel-loader": "^8.1.0",
"css-loader": "^3.5.3",
"source-map-loader": "^0.2.4",
"style-loader": "^1.2.1",
"ts-loader": "^7.0.5",
"typescript": "^3.9.3",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.11"
}
}
25 changes: 24 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>3.55</version>
<version>4.2</version>
<relativePath/>
</parent>

Expand All @@ -30,6 +30,8 @@
<jenkins.version>2.164.1</jenkins.version>
<java.level>8</java.level>
<configuration-as-code.version>1.35</configuration-as-code.version>
<node.version>12.16.3</node.version>
<npm.version>6.14.5</npm.version>
</properties>

<repositories>
Expand Down Expand Up @@ -63,6 +65,18 @@
<tag>${scmTag}</tag>
</scm>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.jenkins.tools.bom</groupId>
<artifactId>bom-2.164.x</artifactId>
<version>9</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
Expand All @@ -82,4 +96,13 @@
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
15 changes: 15 additions & 0 deletions src/main/frontend/src/App.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import * as React from 'react';

import './css/App.css';

class App extends React.Component<{}, {}> {
render() {
return (
<div>
<h1>Hello world!</h1>
</div>
)
}
}

export default App;
3 changes: 3 additions & 0 deletions src/main/frontend/src/css/App.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
h1 {
color: blue;
}
9 changes: 9 additions & 0 deletions src/main/frontend/src/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';

import App from './App';
import { resetEnvironment } from './resetEnvironment';

resetEnvironment();
const root = document.getElementById('root');
ReactDOM.render(<App/>, root);
1 change: 1 addition & 0 deletions src/main/frontend/src/resetEnvironment.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export function resetEnvironment(): void;
14 changes: 14 additions & 0 deletions src/main/frontend/src/resetEnvironment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* Reset JS environment set up by prototype.js to not interfere with
* out react components.
*
* @see https://github.com/jenkinsci/jenkins/blob/75468da366c1d257a51655dcbe952d55b8aeeb9c/war/src/main/js/util/jenkins.js#L22
*/
export function resetEnvironment() {
if (Array.prototype.toJSON) {
delete Array.prototype.toJSON;
delete Object.prototype.toJSON;
delete Hash.prototype.toJSON;
delete String.prototype.toJSON;
}
}
Loading