Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

STCLI-259 provide transpile #368

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft

STCLI-259 provide transpile #368

wants to merge 2 commits into from

Conversation

zburke
Copy link
Member

@zburke zburke commented Jan 14, 2025

Replace the transpile command implmented in #259 (STCLI-224), which transpiled and bundled with help from stripes-cli, with one that only conducts transpilation.

yarn stripes transpile
yarn stripes transpile --path ./lib

The default path is ./src. Files are transpiled into ./dist. Sourcemaps are included. Non-compilable files (e.g. .css) are copied into the destination directory.

All dependencies and babel config files are included locally. The intent is to provide a canonical service, much as stripes-webpack has in the past, so the packages using this service do not have to worry about managing dependencies or config files.

The babel config is contained in
./lib/commands/transpile-babel.config.json:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": "> 0.25%, not dead",
      // preset-env will transform dynamic exports, but we want
      // to let webpack handle those
      "exclude": ["transform-dynamic-import"]
    }],
    ["@babel/preset-flow", { "all": true }],
    ["@babel/preset-react", { "runtime": "automatic" }],
    ["@babel/preset-typescript"]
  ],
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    // when building a platform directly, i.e. outside a workspace,
    // babel complains loudly and repeatedly that when these modules are enabled:
    // * @babel/plugin-proposal-class-properties,
    // * @babel/plugin-proposal-private-methods and
    // * @babel/plugin-proposal-private-property-in-object
    // the "loose" option must be the same for all three.
    // but @babel/preset-env sets it to false for ...private-methods.
    // overriding it here silences the complaint. STRWEB-12
    ["@babel/plugin-transform-class-properties", { "loose": true }],
    ["@babel/plugin-transform-private-methods", { "loose": true }],
    ["@babel/plugin-transform-private-property-in-object", { "loose": true }],
    "@babel/plugin-transform-export-namespace-from",
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-transform-numeric-separator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-syntax-import-meta"
  ]
}

Refs STCLI-259

Replace the `transpile` command implmented in #259 (STCLI-224), which
transpiled and bundled with help from stripes-cli, with one that only
conducts transpilation.

```
yarn stripes transpile
yarn stripes transpile --path ./lib
```

The default `path` is `./src`. Files are transpiled into `./dist`.
Sourcemaps are included. Non-compilable files (e.g. `.css`) are copied
into the destination directory.

All dependencies and babel config files are included locally. The intent
is to provide a canonical service, much as stripes-webpack has in the
past, so the packages using this service do not have to worry about
managing dependencies or config files.

The babel config is contained in
`./lib/commands/transpile-babel.config.json`:
```
{
  "presets": [
    ["@babel/preset-env", {
      "targets": "> 0.25%, not dead",
      // preset-env will transform dynamic exports, but we want
      // to let webpack handle those
      "exclude": ["transform-dynamic-import"]
    }],
    ["@babel/preset-flow", { "all": true }],
    ["@babel/preset-react", { "runtime": "automatic" }],
    ["@babel/preset-typescript"]
  ],
  "plugins": [
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    // when building a platform directly, i.e. outside a workspace,
    // babel complains loudly and repeatedly that when these modules are enabled:
    // * @babel/plugin-proposal-class-properties,
    // * @babel/plugin-proposal-private-methods and
    // * @babel/plugin-proposal-private-property-in-object
    // the "loose" option must be the same for all three.
    // but @babel/preset-env sets it to false for ...private-methods.
    // overriding it here silences the complaint. STRWEB-12
    ["@babel/plugin-transform-class-properties", { "loose": true }],
    ["@babel/plugin-transform-private-methods", { "loose": true }],
    ["@babel/plugin-transform-private-property-in-object", { "loose": true }],
    "@babel/plugin-transform-export-namespace-from",
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-transform-numeric-separator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-syntax-import-meta"
  ]
}
```

Refs STCLI-259
Copy link

github-actions bot commented Jan 14, 2025

Jest Unit Test Results

0 tests  ±0   0 ✅ ±0   0s ⏱️ ±0s
0 suites ±0   0 💤 ±0 
0 files   ±0   0 ❌ ±0 

Results for commit 303c09f. ± Comparison against base commit 0e680c0.

♻️ This comment has been updated with latest results.

Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
0.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant