6.47.4 • Published 9 months ago

@gasket/resolve v6.47.4

Weekly downloads
45
License
MIT
Repository
github
Last release
9 months ago

@gasket/resolve

Essential module resolution and configuration management for Gasket plugins and presets.

Guides

Installation

npm i @gasket/resolve

Naming convention

Plugins and presets should adhere to the project-type prefixed naming convention. This formatting allows user plugins to be referenced with short names and will help avoid collisions. This convention also mimics those by other projects such a @babel and @oclif.

Plugins

scopeformatshortdescription
project@gasket/plugin-<name>@gasket/<name>Official Gasket project plugin
user@<scope>/gasket-plugin-<name>@<scope>/<name>Any user plugins with a scope
user@<scope>/gasket-plugin@<scope>Scope-only user plugins
nonegasket-plugin-<name><name>Any user plugins with no scope

Presets

scopeformatshortdescription
project@gasket/preset-<name>@gasket/<name>Official Gasket project preset
user@<scope>/gasket-preset-<name>@<scope>/<name>Any user presets with a scope
user@<scope>/gasket-preset@<scope>Scope-only user presets
nonegasket-preset-<name><name>Any user presets with no scope

Utilities

There are util functions for creating objects for working with different parts of package identifiers for plugins and presets.

const { pluginIdentifier } = require('@gasket/resolve');

// if given a raw name as full package name with version...
let identifier = pluginIdentifier('@gasket/plugin-example@^1.2.0');

console.log(identifier.longName);   // @gasket/plugin-example
console.log(identifier.shortName);  // @gasket/example
console.log(identifier.version);    // ^1.2.0

// if given a raw name as short name...
identifier = pluginIdentifier('@gasket/example');
console.log(identifier.longName);   // @gasket/plugin-example
console.log(identifier.shortName);  // @gasket/example
console.log(identifier.version);    // null

See the API docs for more details on the pluginIdentifier and presetIdentifier util functions.

Loading

While this package is mostly intended for gasket project internals, if a plugin does need to load or resolve modules, a configured Loader instance is available as gasket.loader from the engine instance passed as the first argument to all lifecycle hooks.

// @my/gasket-plugin-example.js

 module.exports = {
  hooks: {
    someLifecycleHook: async function (gasket) {
      const moduleInfo = await gasket.loader.loadModule('@some/package');
      const module = gasket.loader.tryRequire('some-other-package'); 
    }   
  }
}

License

MIT

6.47.4

9 months ago

6.47.5

9 months ago

6.47.1

1 year ago

7.0.0-next.21

1 year ago

7.0.0-next.9

1 year ago

7.0.0-next.10

1 year ago

7.0.0-next.7

1 year ago

7.0.0-next.11

1 year ago

7.0.0-next.8

1 year ago

7.0.0-next.12

1 year ago

7.0.0-next.13

1 year ago

7.0.0-next.6

1 year ago

7.0.0-next.20

1 year ago

7.0.0-next.5

1 year ago

6.46.8

1 year ago

7.0.0-next.4

1 year ago

7.0.0-next.3

1 year ago

7.0.0-next.2

1 year ago

7.0.0-next.1

1 year ago

7.0.0-next.0

1 year ago

7.0.0-cli.7

1 year ago

7.0.0-cli.6

1 year ago

6.46.1-cli.0

1 year ago

7.0.0-cli.5

1 year ago

7.0.0-cli.4

1 year ago

7.0.0-cli.1

1 year ago

7.0.0-cli.0

1 year ago

7.0.0-cli.3

1 year ago

7.0.0-cli.2

1 year ago

6.46.3-cli.0

1 year ago

6.46.2

1 year ago

7.0.0-canary.1

1 year ago

6.46.2-esm.0

1 year ago

6.46.2-esm.8

1 year ago

6.45.2

1 year ago

6.45.0

1 year ago

6.44.4

1 year ago

6.44.0

2 years ago

6.43.0

2 years ago

6.43.1

2 years ago

6.41.0

2 years ago

6.39.3

2 years ago

6.39.0

2 years ago

6.38.8

2 years ago

6.38.6

2 years ago

6.38.5

2 years ago

6.38.1

2 years ago

6.36.1

2 years ago

6.38.0

2 years ago

6.34.6

3 years ago

6.35.0

3 years ago

6.36.0

2 years ago

6.34.4

3 years ago

6.34.2

3 years ago

6.30.2

3 years ago

6.29.0

3 years ago

6.21.0

3 years ago

6.24.0

3 years ago

6.20.3

3 years ago

6.20.2

3 years ago

6.17.0

3 years ago

6.15.2

3 years ago

6.10.1

3 years ago

6.10.0

3 years ago

6.14.0

3 years ago

6.3.0

4 years ago

6.0.12

4 years ago

6.0.0

4 years ago

6.0.0-canary.13

4 years ago

6.0.0-canary.9

4 years ago

6.0.0-canary.8

5 years ago

6.0.0-canary.0

5 years ago

5.6.0

5 years ago

5.3.1

5 years ago

5.1.0

5 years ago

5.0.2

5 years ago

5.0.1

5 years ago

5.0.0

6 years ago

5.0.0-canary.4

6 years ago

5.0.0-canary.3

6 years ago

5.0.0-canary.2

6 years ago

5.0.0-canary.1

6 years ago

5.0.0-canary.0

6 years ago