@abaplint/transpiler-cli 2.14.1 → 2.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,6 +22,7 @@ basename of `folder` for a local-only library. Set `libs[].name` to override it:
22
22
  {
23
23
  "input_folder": ["src", "extra"],
24
24
  "output_folder": "output",
25
+ "incremental_output": true,
25
26
  "libs": [
26
27
  {"url": "https://github.com/open-abap/open-abap-core"},
27
28
  {"folder": "./deps/utilities", "name": "utilities"}
@@ -55,15 +56,28 @@ are rejected by default; a project object replaces a library object of the same
55
56
 
56
57
  Class locals, test classes, function groups, MIME data, and
57
58
  source maps follow their owning object. Source maps include ABAP source content,
58
- including libraries loaded from temporary Git checkouts. Imports and registered
59
- MIME filenames reference the new paths.
59
+ including libraries loaded from temporary Git checkouts; they use stable
60
+ library-qualified paths and do not expose the temporary checkout location.
61
+ Imports and registered MIME filenames reference the new paths.
60
62
 
61
63
  Shared initialization scripts and test runners remain at the output root.
62
64
  Run programs with `node output/project/zapp.prog.mjs`; run project unit tests
63
65
  with `node output/index.mjs`. When migrating from flat output, rebuild a clean
64
66
  generated output directory and update scripts that reference individual
65
- modules or assets. The CLI does not remove old generated files or unrelated
66
- files automatically.
67
+ modules or assets.
68
+
69
+ Set `incremental_output` to `true` to skip writing unchanged files, replace
70
+ changed generated files, and remove obsolete files recorded in
71
+ `output/.abap-transpile-manifest.json`. The CLI preserves files it did not
72
+ generate, including custom setup scripts and other user data. Existing output
73
+ from runs before this option was enabled has no ownership inventory; do one
74
+ clean build when adopting the option to remove legacy stale files. Set the
75
+ option to `false` (the default) to restore unconditional writes. Files
76
+ generated while it is disabled are not added to the inventory.
77
+
78
+ The manifest is updated atomically and retained as a recovery aid if a run
79
+ fails. This does not make the entire output tree transactional. Use one
80
+ transpiler process per output directory.
67
81
 
68
82
  The transpiler library retains flat output unless its caller supplies an output
69
83
  folder map as the third argument to `Transpiler.run()`. This layout is enabled
@@ -93,5 +107,7 @@ DDIC types, available methods, and runtime behavior, or cause syntax errors in
93
107
  code expecting the skipped version. This option does not check that copies are
94
108
  equivalent or suppress syntax checking. Put the intended provider first and
95
109
  run your application's tests. For selective control, use `libs[].exclude_filter`
96
- to exclude only the unwanted object's files instead. Use a clean generated
97
- output directory when changing providers, since old output is not removed.
110
+ to exclude only the unwanted object's files instead. With `incremental_output`
111
+ enabled, changing providers removes obsolete files tracked in the manifest.
112
+ Use a clean generated output directory when changing providers in legacy mode
113
+ or when untracked stale output remains from earlier builds.