Skip to content
This repository has been archived by the owner on Jan 9, 2024. It is now read-only.

Expose a consistent API for both ESM and CJS #555

Merged
merged 3 commits into from Jul 29, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .prettierignore
Expand Up @@ -12,3 +12,4 @@ Dockerfile
# white-list files we want to process
!*.js
!*.md
!*.mjs
2 changes: 1 addition & 1 deletion .travis.yml
Expand Up @@ -12,8 +12,8 @@ before_install:
- git checkout -
- npm install -g npm;
script:
- npm run test-ci
- npm run build
- npm run test-ci
- npm run lint
- npm run prettier-ci
- npm run typecheck
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -23,7 +23,7 @@ TODO: add a command line script ([issue #9](https://github.com/mozilla/sign-addo
Here is how to retrieve a signed version of an [XPI file](https://developer.mozilla.org/en-US/docs/Mozilla/XPI):

```javascript
var signAddon = require('sign-addon').default;
var { signAddon } = require('sign-addon');

signAddon({
// Required arguments:
Expand Down Expand Up @@ -88,7 +88,7 @@ signAddon({
In ES6 code, you can import it more concisely:

```javascript
import signAddon from 'sign-addon';
import { signAddon } from 'sign-addon';
```

## Dealing With Extension IDs
Expand Down
96 changes: 69 additions & 27 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 8 additions & 4 deletions package.json
Expand Up @@ -12,16 +12,18 @@
"build": "rimraf dist/ && webpack",
"changelog": "conventional-changelog -p angular -u",
"changelog-lint": "commitlint --from master",
"eslint": "eslint .",
"eslint": "eslint . --ext mjs --ext js",
willdurand marked this conversation as resolved.
Show resolved Hide resolved
"lint": "npm run eslint",
"prettier": "prettier --write '**'",
"prettier-ci": "prettier --list-different '**' || (echo '\n\nThis failure means you did not run `yarn prettier-dev` before committing\n\n' && exit 1)",
"prettier-ci": "prettier --list-different '**' || (echo '\n\nThis failure means you did not run `npm run prettier-dev` before committing\n\n' && exit 1)",
"prettier-dev": "pretty-quick --branch master",
"test": "jest",
"test-ci": "yarn test --coverage && codecov",
"test-ci": "npm run test --coverage && codecov",
"typecheck": "tsc"
},
"dependencies": {
"@types/shelljs": "0.8.8",
"@types/tmp": "0.2.0",
willdurand marked this conversation as resolved.
Show resolved Hide resolved
"common-tags": "1.8.0",
"core-js": "3.6.5",
"deepcopy": "2.0.0",
Expand All @@ -30,8 +32,10 @@
"jsonwebtoken": "8.5.1",
"mz": "2.7.0",
"request": "2.88.2",
"shelljs": "0.8.4",
willdurand marked this conversation as resolved.
Show resolved Hide resolved
"source-map-support": "0.5.19",
"stream-to-promise": "3.0.0"
"stream-to-promise": "3.0.0",
"tmp": "0.2.1"
},
"devDependencies": {
"@babel/core": "7.10.5",
Expand Down
2 changes: 1 addition & 1 deletion src/index.js
Expand Up @@ -141,4 +141,4 @@ export const signAddonAndExit = async (
}
};

export default signAddon;
export default { signAddon, signAddonAndExit };
11 changes: 11 additions & 0 deletions tests/fixtures/import-as-esm/test-import.mjs
@@ -0,0 +1,11 @@
import assert from 'assert';

// eslint-disable-next-line import/no-unresolved
import signAddon from 'sign-addon';

assert.deepEqual(
Object.keys(signAddon).sort(),
['signAddon', 'signAddonAndExit'].sort(),
);
assert.equal(typeof signAddon.signAddon, 'function');
assert.equal(typeof signAddon.signAddonAndExit, 'function');
11 changes: 11 additions & 0 deletions tests/fixtures/require-as-cjs/test-require.js
@@ -0,0 +1,11 @@
const assert = require('assert');

// @ts-ignore
const signAddon = require('sign-addon'); // eslint-disable-line import/no-unresolved
willdurand marked this conversation as resolved.
Show resolved Hide resolved

assert.deepEqual(
Object.keys(signAddon).sort(),
['signAddon', 'signAddonAndExit'].sort(),
);
assert.equal(typeof signAddon.signAddon, 'function');
assert.equal(typeof signAddon.signAddonAndExit, 'function');