Skip to content

@actions/core support tree shaking when bundled in a GitHub Action. #1436

@andykenward

Description

@andykenward

Describe the enhancement
At the moment, when using @actions/core npm package in your own bundled GitHub action, the bundler is unable to tree shake unused code from @actions/core.

Additional information

If we do the below, it should help most bundlers to determine what can be removed from @actions/core when bundling.

Add to packages/core/package.json

"sideEffects": false,

Arrow Functions

Along with using arrow functions instead of the traditional function expression

export function getInput() {
...
}

to

export const getInput = () => {
...
} 

Entry point

Add a packages/core/src/index.ts entry point that individuals exports.

For example

export {
  addPath,
  exportVariable,
  getBooleanInput,
  getInput,
  getMultilineInput,
  setCommandEcho,
  setOutput,
  setSecret
} from './core'

Circular dependency issue

The 'import' structure also has a circular dependency issue, where files sometimes import each other.

For example core.ts and oidc-utils.ts import each other.

Refactoring the structure of files and function usage would resolve this issue and help with tree shaking when bundling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions