https://github.com/form8ion/javascript
JavaScript language plugin for the @form8ion toolset
https://github.com/form8ion/javascript
Last synced: 4 months ago
JSON representation
JavaScript language plugin for the @form8ion toolset
- Host: GitHub
- URL: https://github.com/form8ion/javascript
- Owner: form8ion
- License: mit
- Created: 2021-05-01T20:16:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2026-03-03T14:48:35.000Z (5 months ago)
- Last Synced: 2026-03-03T18:08:10.504Z (5 months ago)
- Language: JavaScript
- Homepage: https://npm.im/@form8ion/javascript
- Size: 32.4 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - javascript
README
# javascript
JavaScript language plugin for the [@form8ion](https://github.com/form8ion)
toolset
[![Node CI Workflow Status][github-actions-ci-badge]][github-actions-ci-link]
[![Codecov][coverage-badge]][coverage-link]
[](https://securityscorecards.dev/viewer/?uri=github.com/form8ion/javascript)
![SLSA Level 2][slsa-badge]
## Table of Contents
* [Usage](#usage)
* [Installation](#installation)
* [Example](#example)
* [Import](#import)
* [Execute](#execute)
* [Documentation](#documentation)
* [Contributing](#contributing)
* [Dependencies](#dependencies)
* [Verification](#verification)
## Usage
[![MIT license][license-badge]][license-link]
[![npm][npm-badge]][npm-link]
![node][node-badge]
[![Try @form8ion/javascript on RunKit][runkit-badge]][runkit-link]
### Installation
```sh
$ npm install @form8ion/javascript --save
```
### Example
#### Import
```javascript
const {dialects, projectTypes} = await import('@form8ion/javascript-core');
const {
scaffold: scaffoldJavaScript,
lift: liftJavascript,
test: thisIsAJavaScriptProject,
scaffoldUnitTesting,
questionNames
} = await import('./lib/index.js');
```
#### Execute
```javascript
const accountName = 'form8ion';
const projectRoot = process.cwd();
await scaffoldJavaScript({
projectRoot,
projectName: 'project-name',
visibility: 'Public',
license: 'MIT',
configs: {
eslint: {scope: `@${accountName}`},
remark: `@${accountName}/remark-lint-preset`,
babelPreset: {name: `@${accountName}`, packageName: `@${accountName}/babel-preset`},
commitlint: {name: `@${accountName}`, packageName: `@${accountName}/commitlint-config`}
},
plugins: {
unitTestFrameworks: {},
applicationTypes: {},
packageTypes: {},
packageBundlers: {},
ciServices: {}
},
decisions: {
[questionNames.DIALECT]: dialects.BABEL,
[questionNames.NODE_VERSION_CATEGORY]: 'LTS',
[questionNames.PACKAGE_MANAGER]: 'npm',
[questionNames.PROJECT_TYPE]: projectTypes.PACKAGE,
[questionNames.SHOULD_BE_SCOPED]: true,
[questionNames.SCOPE]: accountName,
[questionNames.AUTHOR_NAME]: 'Your Name',
[questionNames.AUTHOR_EMAIL]: 'you@domain.tld',
[questionNames.AUTHOR_URL]: 'https://your.website.tld',
[questionNames.UNIT_TESTS]: true,
[questionNames.INTEGRATION_TESTS]: true,
[questionNames.PROVIDE_EXAMPLE]: true
}
});
if (await thisIsAJavaScriptProject({projectRoot})) {
await liftJavascript({
projectRoot,
configs: {eslint: {scope: '@foo'}},
results: {
dependencies: {javascript: {production: [], development: []}},
scripts: {},
eslint: {configs: [], ignore: {directories: []}},
packageManager: 'npm'
},
enhancers: {
PluginName: {
test: () => true,
lift: () => ({})
}
}
});
}
await scaffoldUnitTesting({
projectRoot: process.cwd(),
frameworks: {
Mocha: {scaffold: options => options},
Jest: {scaffold: options => options}
},
visibility: 'Public',
vcs: {host: 'GitHub', owner: 'foo', name: 'bar'},
decisions: {[questionNames.UNIT_TEST_FRAMEWORK]: 'Mocha'}
});
```
### Documentation
* [API](./docs/api)
* [Constants](./docs/constants)
## Contributing
[![PRs Welcome][PRs-badge]][PRs-link]
[![Commitizen friendly][commitizen-badge]][commitizen-link]
[![Conventional Commits][commit-convention-badge]][commit-convention-link]
[![semantic-release][semantic-release-badge]][semantic-release-link]
[![Renovate][renovate-badge]][renovate-link]
### Dependencies
```sh
$ nvm install
$ npm install
```
### Verification
```sh
$ npm test
```
[PRs-link]: http://makeapullrequest.com
[PRs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg
[commitizen-link]: http://commitizen.github.io/cz-cli/
[commitizen-badge]: https://img.shields.io/badge/commitizen-friendly-brightgreen.svg
[commit-convention-link]: https://conventionalcommits.org
[commit-convention-badge]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg
[semantic-release-link]: https://github.com/semantic-release/semantic-release
[semantic-release-badge]: https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release
[renovate-link]: https://renovatebot.com
[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=renovatebot
[github-actions-ci-link]: https://github.com/form8ion/javascript/actions?query=workflow%3A%22Node.js+CI%22+branch%3Amaster
[github-actions-ci-badge]: https://img.shields.io/github/actions/workflow/status/form8ion/javascript/node-ci.yml.svg?branch=master&logo=github
[license-link]: LICENSE
[license-badge]: https://img.shields.io/github/license/form8ion/javascript.svg?logo=opensourceinitiative
[npm-link]: https://www.npmjs.com/package/@form8ion/javascript
[npm-badge]: https://img.shields.io/npm/v/@form8ion/javascript?logo=npm
[node-badge]: https://img.shields.io/node/v/@form8ion/javascript?logo=node.js
[runkit-link]: https://npm.runkit.com/@form8ion/javascript
[runkit-badge]: https://badge.runkitcdn.com/@form8ion/javascript.svg
[coverage-link]: https://codecov.io/github/form8ion/javascript
[coverage-badge]: https://img.shields.io/codecov/c/github/form8ion/javascript?logo=codecov
[slsa-badge]: https://slsa.dev/images/gh-badge-level2.svg