Skip to content

Commit ec7e90b

Browse files
authored
update
1 parent c2ccfbe commit ec7e90b

File tree

247 files changed

+13464
-6317
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

247 files changed

+13464
-6317
lines changed

.abapgit.xml

-10
This file was deleted.

.github/dependabot.yml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: "/"
5+
schedule:
6+
interval: monthly
7+
time: "04:00"
8+
open-pull-requests-limit: 10
9+
versioning-strategy: increase

.github/workflows/nodejs.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Node.js CI
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- name: Use Node.js
11+
uses: actions/setup-node@v4
12+
- run: npm install
13+
- run: npm test
14+
env:
15+
CI: true

.gitignore

+6-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
node_modules
1+
build/
2+
node_modules/
3+
coverage
4+
.nyc_output
5+
.vscode/
6+
/*.abap

.npmignore

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
npm-debug.log
2+
*.js.map
3+
.github
4+
test
5+
sample
6+
tsconfig.json
7+
/src/*
8+
.eslintrc.js

.npmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ignore-scripts=true

LICENSE

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
MIT License
1+
The MIT License (MIT)
22

3-
Copyright (c) 2025 abap2UI5
3+
Copyright (c) 2016 Lars Hvam
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

+5-36
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,9 @@
1-
# build-local
2-
All abap2UI5 artifacts are combined into a single HTTP handler implementation as local classes. This approach makes your app completely independent of the rest of the system or any other abap2UI5 installation.
1+
[![npm version](https://badge.fury.io/js/abapmerge.svg)](https://badge.fury.io/js/abapmerge)
32

4-
#### Installation
3+
# abap2UI5-local merge template
54

6-
1. Create a new HTTP handler in your system.
7-
2. Copy & paste the handler class from this repository.
8-
3. Add your abap2UI5 app as a local class and start it via your new HTTP endpoint.
9-
4. Alternatively, pull this repository using abapGit.
10-
11-
12-
#### Approach
13-
14-
<img width="500" alt="Screenshot 2025-02-13 at 13 24 18" src="https://github.com/user-attachments/assets/5fcc56a8-8e2c-41b2-84b3-e50242ff648c" />
15-
16-
17-
#### Persistence
18-
To avoid any side effects with other abap2UI5 installations, this version uses the table z2ui5_t_99 for persistence. You can either pull this repository or manually create the following table in your system:
19-
```cds
20-
@EndUserText.label : 'abap2ui5 local'
21-
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
22-
@AbapCatalog.tableCategory : #TRANSPARENT
23-
@AbapCatalog.deliveryClass : #A
24-
@AbapCatalog.dataMaintenance : #RESTRICTED
25-
define table z2ui5_t_99 {
26-
key mandt : mandt not null;
27-
key id : abap.char(32) not null;
28-
id_prev : abap.char(32);
29-
id_prev_app : abap.char(32);
30-
id_prev_app_stack : abap.char(32);
31-
timestampl : timestampl;
32-
uname : abap.char(20);
33-
data : abap.string(0);
34-
35-
}
365
```
6+
git clone https://github.com/abap2UI5/abap2UI5
7+
npx abapmerge -f sample/ztest.prog.abap -c zabap2ui5_local -o zabap2ui5_local
378
38-
#### Info
39-
* HTTP API: `/sap/bc/z2ui5standalone?sap-client=001&app_start=z2ui5_cl_my_standalone_app`
40-
* Credits: Created with the fantastic tool [abapmerge](https://github.com/larshp/abapmerge)
9+
```

abaplint.jsonc

-31
This file was deleted.

abapmerge

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env node
2+
3+
require("./build/src/index");

all/.DS_Store

6 KB
Binary file not shown.

eslint.config.mjs

+140
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import globals from "globals";
2+
import tsParser from "@typescript-eslint/parser";
3+
import path from "node:path";
4+
import { fileURLToPath } from "node:url";
5+
import js from "@eslint/js";
6+
import {FlatCompat} from "@eslint/eslintrc";
7+
import {fixupConfigRules} from "@eslint/compat";
8+
9+
const __filename = fileURLToPath(import.meta.url);
10+
const __dirname = path.dirname(__filename);
11+
12+
const compat = new FlatCompat({
13+
baseDirectory: __dirname,
14+
recommendedConfig: js.configs.recommended,
15+
allConfig: js.configs.all,
16+
});
17+
18+
const fixup = fixupConfigRules(compat.extends(
19+
"eslint:recommended",
20+
"plugin:@typescript-eslint/recommended",
21+
));
22+
23+
export default [...fixup, {
24+
25+
languageOptions: {
26+
globals: {
27+
...globals.browser,
28+
...globals.node,
29+
},
30+
31+
parser: tsParser,
32+
ecmaVersion: 5,
33+
sourceType: "module",
34+
35+
parserOptions: {
36+
project: "tsconfig.json",
37+
tsconfigRootDir: __dirname,
38+
},
39+
},
40+
41+
rules: {
42+
"@typescript-eslint/consistent-type-assertions": "error",
43+
"@typescript-eslint/dot-notation": "error",
44+
45+
"@typescript-eslint/explicit-member-accessibility": ["error", {
46+
accessibility: "explicit",
47+
}],
48+
49+
"@typescript-eslint/no-empty-function": "error",
50+
"@typescript-eslint/no-explicit-any": "off",
51+
"@typescript-eslint/no-inferrable-types": "off",
52+
"@typescript-eslint/no-require-imports": "error",
53+
54+
"@typescript-eslint/no-shadow": ["error", {
55+
hoist: "all",
56+
}],
57+
58+
"@typescript-eslint/no-unused-expressions": "error",
59+
"@typescript-eslint/no-use-before-define": "off",
60+
"@typescript-eslint/no-var-requires": "error",
61+
"@typescript-eslint/prefer-namespace-keyword": "error",
62+
63+
"@typescript-eslint/triple-slash-reference": "error",
64+
"brace-style": ["error", "1tbs"],
65+
"comma-dangle": ["error", "always-multiline"],
66+
curly: ["error", "multi-line"],
67+
"default-case": "error",
68+
"eol-last": "error",
69+
eqeqeq: ["error", "smart"],
70+
"guard-for-in": "error",
71+
72+
"id-blacklist": [
73+
"error",
74+
"any",
75+
"Number",
76+
"number",
77+
"String",
78+
"string",
79+
"Boolean",
80+
"boolean",
81+
"Undefined",
82+
"undefined",
83+
],
84+
85+
"id-match": "error",
86+
87+
"max-len": ["error", {
88+
code: 140,
89+
}],
90+
91+
"no-bitwise": "error",
92+
"no-caller": "error",
93+
"no-cond-assign": "error",
94+
95+
"no-console": ["error", {
96+
allow: [
97+
"log",
98+
"warn",
99+
"dir",
100+
"timeLog",
101+
"assert",
102+
"clear",
103+
"count",
104+
"countReset",
105+
"group",
106+
"groupEnd",
107+
"table",
108+
"dirxml",
109+
"error",
110+
"groupCollapsed",
111+
"Console",
112+
"profile",
113+
"profileEnd",
114+
"timeStamp",
115+
"context",
116+
],
117+
}],
118+
119+
"no-debugger": "error",
120+
"no-empty": "error",
121+
"no-eval": "error",
122+
"no-fallthrough": "error",
123+
"no-invalid-this": "error",
124+
"no-multiple-empty-lines": "off",
125+
"no-new-wrappers": "error",
126+
"no-null/no-null": "off",
127+
"no-redeclare": "error",
128+
"no-trailing-spaces": "error",
129+
"no-unused-labels": "error",
130+
"no-var": "error",
131+
"one-var": ["error", "never"],
132+
radix: "error",
133+
134+
"spaced-comment": ["error", "always", {
135+
markers: ["/"],
136+
}],
137+
138+
"use-isnan": "error",
139+
},
140+
}];

0 commit comments

Comments
 (0)