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

major: v6 of parse-function #72

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

major: v6 of parse-function #72

wants to merge 10 commits into from

Conversation

tunnckoCore
Copy link
Owner

@tunnckoCore tunnckoCore commented Oct 24, 2019

Example

import { parse as acornParse } from 'acorn';
import { parseExpression } from '@babel/parser';
import { parseFunction } from '.';

function fooFn(bar, baz = 123) {
  return bar * baz;
}

// `node` is an AST Node
function bobbyPlugin(node, result) {
  const bobby = 'bobby';

  return { ...result, bobby };
}

function barryPlugin(node, result) {
  const hasDefaultParams =
    Object.values(result.defaults).filter(Boolean).length > 0;

  return { ...result, barry: 'barry barry', hasDefaultParams };
}

const result = parseFunction(fooFn, {
  parse: acornParse,
  plugins: [bobbyPlugin, barryPlugin],
  parserOptions: {},
});

console.log(result);

/* {
  name: 'fooFn',
  body: '\n  return bar * baz;\n',
  args: [ 'bar', 'baz' ],
  params: 'bar, baz',
  defaults: { bar: undefined, baz: '123' },
  value: '(function fooFn(bar, baz = 123) {\n  return bar * baz;\n})',
  isValid: true,
  isArrow: false,
  isAsync: false,
  isNamed: true,
  isAnonymous: false,
  isGenerator: false,
  isExpression: false,
  bobby: 'bobby',
  barry: 'barry barry',
  hasDefaultParams: true
} */

const res = parseFunction(fooFn, {
  parseExpression,
  parserOptions: {
    sourceType: 'module',
    allowAwaitOutsideFunction: true,
    allowReturnOutsideFunction: true,
  },
});
console.log(res);

Basic TypeScript typings

import { ParserOptions } from '@babel/parser';
import { File } from '@babel/types';

// eslint-disable-next-line @typescript-eslint/no-explicit-any
type FnType = (...args: any) => any;

export type Input = FnType | string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type Plugin = (node: any, result: Result) => Result | undefined;
export type Plugins = Plugin | Array<Plugin>;

export interface Options {
  parse?(input: string, options?: ParserOptions): File;
  parseExpression?(input: string, options?: ParserOptions): File;
  parserOptions?: ParserOptions;
  plugins?: Plugins;
}

export interface Result {
  name: string | null;
  body: string;
  args: Array<string>;
  params: string;
  defaults: { [key: string]: string | undefined };
  value: string;
  isValid: boolean;
  isArrow: boolean;
  isAsync: boolean;
  isNamed: boolean;
  isAnonymous: boolean;
  isGenerator: boolean;
  isExpression: boolean;
}

export function parseFunction(code: Input, options?: Options): Result;

BREAKING CHANGE: exports named `parseFunction`,

For more see #65 (comment)

Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
@codecov
Copy link

codecov bot commented Oct 24, 2019

Codecov Report

Merging #72 into master will decrease coverage by 0.43%.
The diff coverage is 100%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #72      +/-   ##
==========================================
- Coverage   48.91%   48.47%   -0.44%     
==========================================
  Files          26       26              
  Lines         828      821       -7     
  Branches      253      254       +1     
==========================================
- Hits          405      398       -7     
  Misses        334      334              
  Partials       89       89
Impacted Files Coverage Δ
packages/parse-function/src/plugins/props.js 100% <100%> (ø) ⬆️
packages/parse-function/src/plugins/body.js 100% <100%> (ø) ⬆️
packages/parse-function/src/utils.js 100% <100%> (ø) ⬆️
packages/parse-function/src/plugins/params.js 100% <100%> (ø) ⬆️
packages/parse-function/src/plugins/initial.js 100% <100%> (ø) ⬆️
packages/parse-function/src/index.js 100% <100%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6fbf37b...ea4e8d5. Read the comment docs.

Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
Signed-off-by: Charlike Mike Reagent <[email protected]>
@tunnckoCore tunnckoCore changed the title feat: v6 of parse-function major: v6 of parse-function Oct 24, 2019
@tunnckoCore tunnckoCore added Pkg: parse-function Priority: High After critical issues are fixed, these should be dealt with before any further issues. Status: In Progress This issue is being worked on, and has someone assigned. Type: Documentation An Issue or Pull Request for improving or updating documentation. Type: Enhancement Most issues will probably be for additions or changes. Expected that this will result in a PR. Type: Maintenance Updating phrasing or wording to make things clearer or removing ambiguity, without a functionality. labels Oct 24, 2019
@tunnckoCore
Copy link
Owner Author

TODO:

  • update tests links in readme
  • add note for v6 too

Signed-off-by: Charlike Mike Reagent <[email protected]>
tunnckoCore referenced this pull request Dec 4, 2019
* fix(rename): rename "result.valid" to "result.isValid"
* docs(isValid): update docs because isValid change
* fix(rename): the "result.orig" to "result.value"
* docs(result): update docs for "result.orig" to "result.value" change
* docs(api): update docs
* feat(benchmarks): add benchmarks
* test(espree): add tests using espree parser
* chore(yarn): force update
* docs(tips): add Pro Tips section
* docs(related): update related libs
* fix(package): add engines field
* chore(release): 3.0.0
* refactor(index): plugins api, more tests, support es6 method notation
* fix(package): bump to babylon@next
* fix(codeclimate): xx
* fix(style): codeclimate issues
* test(*): clarify a bit the tests for "anonymous" functions
* fix(package): force update yarn
* docs(*): update readme, description and site url
* fix(package): update deps and npm scripts, fix travis/appveyor
* chore(package): standard ignore benchmark dir
* fix(package): fix linting
* feat(methods): reorganize repo, introduce ".use" and ".parse" methods
* fix(codeclimate): analize lib folder
* docs(api): start docs
* docs(api): update api docs
* docs(readme): update usage example
* docs(readme): add Features and few more sections
* fix(.use): allow plugins that just extends the core api and not return a
* docs(notes): add human description on the Plugins Architecture
* docs(readme): better navigation
* chore(release): 4.0.0
* fix(package): include files in npm package
* fix(arrows): bug when found arrow on function body
* docs(readme): update
* chore(release): 4.0.1
* fix(objectMethod): bug when default arguments is used in object method
* docs(links): update links pointing to test.js file
* chore(release): 4.0.2
* fix(tests): make it work on node 4
* chore(release): 4.0.3
* chore(renovate): Configure Renovate (#34)
* Add renovate.json
* chore(renovate): update config
* refactor(deps): Pin Dependencies (#36)
* fix(renovate/deps): Update dependency define-property to version ^1.0.0
* chore(renovate/devDeps): Update dependency acorn to version 5.1.1
* chore(renovate/devDeps): Update dependency benchmarked to version 1.1.1
* chore(deps): pin prod deps
* fix(renovate/deps): Update dependency babylon to version 7.0.0-beta.18
* chore(renovate/devDeps): Update dependency clone-deep to version 1.0.0
* chore(renovate/devDeps): Update dependency cz-conventional-changelog to version 2.0.0

* chore(renovate/devDeps): Update dependency for-in to version 1.0.2
* chore(renovate/devDeps): Update dependency nyc to version 11.1.0
* chore(renovate/devDeps): Update dependency standard to version 10.0.2
* fix(renovate/deps): update dependency babylon to version 7.0.0-beta.19
* chore(renovate/devDeps): update dependency espree to v3.5.0
* chore(deps): update lock file
* chore(renovate/devDeps): update dependency standard to v10.0.3
* major(release): BREAKING CHANGE: Require Node.js >= 6 & npm >= 5
* fix(readme): generate readme
* fix(logo): fix logo to be centered
* fix(readme): add features section again
* fix(sr): fix semantic-release added things
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to
* fix(codeclimate): add config file, to exclude benchmarks
* fix(pkg): fix codeclimate and npm script for release
* chore(bump): force bump hela to latest, update renovate config
* chore(nyc): bump everything to 100%
* chore(benchmarks): remove them since we dont need
* fix(build): move to es6 modules by default
* fix(deps): bump hela to latest
* fix(deps): force bump to [email protected]; include fresh script
* fix(deps): bump hela
* chore(devDeps): update dependency hela to v0.4.2
* fix(deps): update deps, renovate config, contrib file
* chore(devDeps): update dependency hela to v0.5.4
* chore(devDeps): update dependency hela to v0.5.5
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to
* fix(misc): update codeclimate
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to v1.0.5
* chore(devDeps): update dependency semantic-release to ^7.0.0 (#45)
* chore(devDeps): update dependency hela to v0.5.6
* chore(devDeps): update dependency hela to v0.5.7
* chore(devDeps): update dependency eslint to v4.5.0
* chore(devDeps): update dependency hela to v0.5.8
* fix(deps): update dependency babylon to v7.0.0-beta.20
* chore(devDeps): update dependency hela to v0.5.9
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to v1.0.6
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to v1.0.7
* chore(devDeps): update dependency hela to v0.6.0
* chore(devDeps): update dependency hela to v0.7.0
* fix(deps): update dependency babylon to v7.0.0-beta.21
* chore(devDeps): update dependency hela to v0.7.2
* fix(deps): update dependency babylon to v7.0.0-beta.22
* chore(devDeps): update dependency hela to v0.7.3
* chore(devDeps): update dependency eslint to v4.6.0
* chore(devDeps): update dependency eslint to v4.6.1
* chore(devDeps): update dependency acorn to v5.1.2
* chore(devDeps): update dependency hela to v0.7.4
* chore(devDeps): update dependency hela to v0.7.5
* chore(renovate): update config to try DCO
* chore(cfg): update renovate config
* chore(devDeps): update dependency hela to v0.7.6 (#49)
* chore(devDeps): update dependency hela to 0.7.6
* chore(deps): update Signed-off-by tag
* chore(devDeps): update dependency hela to 0.7.7
* fix(deps): update dependency babylon to 7.0.0-beta.23
* chore(devDeps): update dependency eslint to 4.7.0
* chore(devDeps): update dependency espree to 3.5.1
* chore(devDeps): update dependency eslint to 4.7.1
* fix(deps): update dependency babylon to 7.0.0-beta.24
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to v1.0.8 (#60)
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to 1.0.9
* fix(deps): update dependency babylon to 7.0.0-beta.25
* fix(arrows): handle async arrow functions
* add case for async arrow functions when wrapping
* add missing `done()` to test case
* fix(deps): update dependency babylon to 7.0.0-beta.26
* chore(devDeps): update dependency eslint-config-standard-tunnckocore to 1.0.10
* fix(deps): update dependency babylon to 7.0.0-beta.27
* chore(devDeps): update dependency eslint to 4.8.0
* fix(boilerplate): update stuff and modernize tests
* fix(docs): update dogs
* fix(deps): force update hela preset, activate semantic-release
* fix(renovate): test use of shareable configs
* fix(renovate): pin all deps, pr not pending
* refactor(deps): renovate pin dependencies packages (#70)
* chore(deps): update dependency hela to v1.1.3
* fix(misc): force update
* fix(docs): publish docs folder
* Set theme jekyll-theme-minimal
* Set theme jekyll-theme-cayman
* fix(deps): update dependency babylon to v7.0.0-beta.28
* fix(deps): update dependency babylon to v7.0.0-beta.29
* fix: remove yarn release
* fix(deps): update dependency babylon to v7.0.0-beta.30
* chore(deps): update dependency acorn to v5.2.0
* chore(deps): update dependency acorn to v5.2.1
* fix(deps): update dependency babylon to v7.0.0-beta.31
* chore(deps): update dependency espree to v3.5.2
* fix(deps): update dependency babylon to v7.0.0-beta.32
* chore(deps): update dependency clone-deep to v2.0.1
* fix(deps): update dependency babylon to v7.0.0-beta.33
* fix(deps): update dependency define-property to v2.0.0
* fix(deps): update dependency babylon to v7.0.0-beta.34
* fix(deps): update dependency babylon to v7.0.0-beta.35
* fix(deps): update dependency babylon to v7.0.0-beta.36
* chore(deps): update dependency acorn to v5.3.0
* fix(deps): update dependency babylon to v7.0.0-beta.37
* fix(deps): update dependency babylon to v7.0.0-beta.38
* chore(deps): update dependency clone-deep to v2.0.2
* fix(deps): update dependency define-property to v2.0.1
* fix(deps): update dependency define-property to v2.0.2
* fix(deps): update dependency babylon to v7.0.0-beta.39
* chore(deps): update dependency acorn to v5.4.0
* chore(deps): update dependency acorn to v5.4.1
* chore(deps): update dependency espree to v3.5.3
* feat(params): add support for list of expressions as default value (#111)

(a = (doSomething(), doSomethingElse(), true)) => {} is a prefectly valid syntax that is used
extensively by code instrumenters. When a list of expressions is used as a default value, only the
last expression is the actual default value. This commit add support for this syntax.
TAG: latest

fixes #110

* chore(readme): update nsp id
* chore(readme): fix links for NodeSecurity
* chore(readme): update releasing badge
* fix(dist): include bundles in dist, so in npm package
* fix(deps): update dependency babylon to v7.0.0-beta.40
* chore: 5.1.2 manual publish
* fix(deps): use new-release package for automatic publishing
* fix(ci): use npx in travis and test only on node 6
* fix(releasing): update readme and travis
* fix(misc): obviously manual publishing...
* chore(readme): fix badges and readme
* fix(stuff): finally release and publish with dist/index.js
* chore(deps): update dependency acorn to v5.5.0
* feat(result): values of default params to be always strings (#121)

Changes in [Result object](https://github.com/tunnckoCore/parse-function#result)!

**Possible breaking change, if you depend on values of `result.defaults`!**

Now `result.defaults` is key/value pairs as before, but the value is always of type `string` or `undefined`!
Casting of values is delegated to the end user which before was not consistent and was actual value of the default parameter.

Example **(before)**:

```js
const result = app.parse('(a = 123) => {}')
console.log(result.defaults)
// => { a: 123 }
```

Example **(after)**:

```js
const result = app.parse('(a = 123) => {}')

// notice that `123` now is string!
console.log(result.defaults)
// => { a: '123' }
```

* chore: publish v5.2.0 to npm
* chore(deps): update dependency espree to v3.5.4
* fix: release 5.2.1 with dist folder
* fix(release): add new-release to publish on CI
* fix(release): add new-release to publish on CI - 2
* fix(ci): switch to CircleCI
* fix: circle config update

* fix: circle config update

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(ci): update readme badges and CircleCI config

* fix(pkg): placeholder

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.5.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.5.3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.41

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.42

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update circleci/node to tag 8

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update circleci/node:8 digest

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.43

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.44

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency clone-deep to v4.0.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.45

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.46

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency babylon to v7.0.0-beta.47

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.6.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.6.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.6.2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.7.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v4

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.4

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.5

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.6

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.7.2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.7

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency acorn to v5.7.3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore: update build badge

* chore: update codecov badge

* chore(deps): update dependency husky to v1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.0.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.1.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.1.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.1.2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix: say "Bye bye!" to NodeSecurityProject ;(

It was a great service. Sadly @npm bought them and integrated it into their CLI, which totally sucks, because if you don't use npm you lose that cool functionality.

* chore(deps): update dependency new-release to v4.0.8

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v4.1.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.1.3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v4.0.9

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v5

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update new-release to latest

* chore(deps): update dependency husky to v1.1.4

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency new-release to v5.0.4

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.2.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency clone-deep to v4.0.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v5

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.2.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.3.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v1.3.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v5.0.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* fix(deps): update dependency arrify to v2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2.4.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2.4.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v6

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2.5.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2.6.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore: add GitHub Sponsoring button (funding file)

* chore(github/funding): fix typo

* chore(funding): re-fix the typo

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v2.7.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.2

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.3

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.4

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v6.1.0

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency espree to v6.1.1

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.5

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.7

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.8

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore(deps): update dependency husky to v3.0.9

Signed-off-by: Charlike Mike Reagent <[email protected]>

* feat: add parse-function to monorepo

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore: fmt

Signed-off-by: Charlike Mike Reagent <[email protected]>

* chore: wrong place

Signed-off-by: Charlike Mike Reagent <[email protected]>
@tunnckoCore
Copy link
Owner Author

tunnckoCore commented Jul 24, 2022

Why there is 2 PRs #67?! 🤔 🤣 I'm picking up this one, because it seems 5 days more recent, and is no TypeScript - it's simply separated on index.d.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pkg: parse-function Priority: High After critical issues are fixed, these should be dealt with before any further issues. Status: In Progress This issue is being worked on, and has someone assigned. Type: Documentation An Issue or Pull Request for improving or updating documentation. Type: Enhancement Most issues will probably be for additions or changes. Expected that this will result in a PR. Type: Maintenance Updating phrasing or wording to make things clearer or removing ambiguity, without a functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Next Major: Simplifying the API, docs and the plugins, smaller codebase, TypeScript support
1 participant