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

Migrate code from commonJS to EMS #99

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .mocharc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require: '@babel/register'
17 changes: 10 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -9,7 +9,8 @@ Javascript library to access the Zulip API
### With API Key

```js
const zulipInit = require('zulip-js');
import zulipInit from 'zulip-js';

const config = {
username: process.env.ZULIP_USERNAME,
apiKey: process.env.ZULIP_API_KEY,
@@ -28,7 +29,8 @@ const config = {
You will need to first retrieve the API key by calling `await zulipInit(config)`.

```js
const zulipInit = require('zulip-js');
import zulipInit from 'zulip-js';

const config = {
username: process.env.ZULIP_USERNAME,
password: process.env.ZULIP_PASSWORD,
@@ -57,8 +59,9 @@ site=http://localhost:9991
Please remember to add this file to your `.gitignore`! Calling `await zulipInit({ zuliprc: 'zuliprc' })` will read this file.

```js
const zulipInit = require('zulip-js');
const path = require('path');
import zulipInit from 'zulip-js';
import path from 'path';

const zuliprc = path.resolve(__dirname, 'zuliprc');
(async () => {
const zulip = await zulipInit({ zuliprc });
@@ -141,9 +144,9 @@ Use `npm test` to run the tests.
Currently, we have a simple testing framework which stubs our network requests and also allows us to test the input passed to it. This is what a sample test for an API endpoint looks like:

```js
const chai = require('chai');
const users = require('../../lib/resources/users'); // File to test.
const common = require('../common'); // Common functions for tests.
import chai from 'chai';
import users from '../../lib/resources/users';
import common from '../common';

chai.should();

2 changes: 1 addition & 1 deletion examples/accounts.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

process.on('unhandledRejection', (err) => {
console.error(err);
2 changes: 1 addition & 1 deletion examples/call_endpoint.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/emojis.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/events.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/filters.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
4 changes: 2 additions & 2 deletions examples/init.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const path = require('path');
const zulip = require('../lib');
import path from 'path';
import zulip from '../lib';

(async () => {
// Initialization with zuliprc
6 changes: 3 additions & 3 deletions examples/interactive_call_endpoint.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const path = require('path');
const homedir = require('os').homedir();
const zulip = require('../lib');
import path from 'path';
import { homedir } from 'os';
import zulip from '../lib';

if (process.argv[2] === 'help') {
console.log('This is a helper script to test Zulip APIs.');
2 changes: 1 addition & 1 deletion examples/messages.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const stream = 'test-bot';

2 changes: 1 addition & 1 deletion examples/private-messages.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
4 changes: 2 additions & 2 deletions examples/queue_helper.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const path = require('path');
const zulip = require('../lib');
import path from 'path';
import zulip from '../lib';

const zuliprc = path.resolve('/path/to/your/zuliprc');

2 changes: 1 addition & 1 deletion examples/queues.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/reactions.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/server.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
2 changes: 1 addition & 1 deletion examples/streams.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
4 changes: 2 additions & 2 deletions examples/subscriptions.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
apiKey: process.env.ZULIP_API_KEY,
realm: process.env.ZULIP_REALM,
};

const zulip = require('../lib');

(async () => {
const z = await zulip(config);

2 changes: 1 addition & 1 deletion examples/typing-notifications/send-and-recieve.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../../lib');
import zulip from '../../lib';

if (process.argv.length < 7) {
console.log(
2 changes: 1 addition & 1 deletion examples/typing-notifications/send-often.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../../lib');
import zulip from '../../lib';

if (process.argv.length < 6) {
console.log(
2 changes: 1 addition & 1 deletion examples/typing-notifications/send.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../../lib');
import zulip from '../../lib';

const recipient = Number(process.env.ZULIP_TYPING_RECIPIENT);

2 changes: 1 addition & 1 deletion examples/users.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const zulip = require('../lib');
import zulip from '../lib';

const config = {
username: process.env.ZULIP_USERNAME,
13,371 changes: 12,430 additions & 941 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
},
"dependencies": {
"@babel/runtime": "^7.12.5",
"cjs-to-es6": "^1.1.1",
"ini": "^1.3.7",
"isomorphic-fetch": "^3.0.0",
"isomorphic-form-data": "2.0.0"
@@ -17,6 +18,7 @@
"@babel/core": "^7.12.10",
"@babel/plugin-transform-runtime": "^7.12.10",
"@babel/preset-env": "^7.12.10",
"@babel/register": "^7.9.0",
"chai": "^4.2.0",
"eslint": "^7.15.0",
"eslint-config-airbnb": "^18.2.1",
4 changes: 2 additions & 2 deletions src/api.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const helper = require('./helper');
import helper from './helper';

async function api(baseUrl, config, method, params) {
const url = new URL(baseUrl);
@@ -45,4 +45,4 @@ async function api(baseUrl, config, method, params) {
}
}

module.exports = api;
export default api;
6 changes: 3 additions & 3 deletions src/events_wrapper.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const queues = require('./resources/queues');
const events = require('./resources/events');
import queues from './resources/queues';
import events from './resources/events';

function sleep(ms) {
// TODO add jitter.
@@ -72,4 +72,4 @@ function eventsWrapper(config) {
return callOnEachEvent;
}

module.exports = eventsWrapper;
export default eventsWrapper;
6 changes: 3 additions & 3 deletions src/helper.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const fetch = require('isomorphic-fetch');
const FormData = require('isomorphic-form-data');
import fetch from 'isomorphic-fetch';
import FormData from 'isomorphic-form-data';

module.exports = {
export default {
fetch,
FormData,
};
29 changes: 14 additions & 15 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
import parseConfigFile from './zuliprc';

const api = require('./api');

const accounts = require('./resources/accounts');
const streams = require('./resources/streams');
const messages = require('./resources/messages');
const queues = require('./resources/queues');
const events = require('./resources/events');
const users = require('./resources/users');
const emojis = require('./resources/emojis');
const typing = require('./resources/typing');
const reactions = require('./resources/reactions');
const server = require('./resources/server');
const filters = require('./resources/filters');
const eventsWapper = require('./events_wrapper');
import api from './api';
import accounts from './resources/accounts';
import streams from './resources/streams';
import messages from './resources/messages';
import queues from './resources/queues';
import events from './resources/events';
import users from './resources/users';
import emojis from './resources/emojis';
import typing from './resources/typing';
import reactions from './resources/reactions';
import server from './resources/server';
import filters from './resources/filters';
import eventsWapper from './events_wrapper';

function getCallEndpoint(config) {
return function callEndpoint(endpoint, method = 'GET', params) {
@@ -64,4 +63,4 @@ async function zulip(initialConfig) {
return resources(config);
}

module.exports = zulip;
export default zulip;
4 changes: 2 additions & 2 deletions src/resources/accounts.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const helper = require('../helper');
import helper from '../helper';

function accounts(config) {
return {
@@ -16,4 +16,4 @@ function accounts(config) {
};
}

module.exports = accounts;
export default accounts;
4 changes: 2 additions & 2 deletions src/resources/emojis.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function emojis(config) {
return {
@@ -9,4 +9,4 @@ function emojis(config) {
};
}

module.exports = emojis;
export default emojis;
4 changes: 2 additions & 2 deletions src/resources/events.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function events(config) {
return {
@@ -9,4 +9,4 @@ function events(config) {
};
}

module.exports = events;
export default events;
4 changes: 2 additions & 2 deletions src/resources/filters.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function filters(config) {
return {
@@ -9,4 +9,4 @@ function filters(config) {
};
}

module.exports = filters;
export default filters;
4 changes: 2 additions & 2 deletions src/resources/messages.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function messages(config) {
const baseURL = `${config.apiURL}/messages`;
@@ -71,4 +71,4 @@ function messages(config) {
};
}

module.exports = messages;
export default messages;
4 changes: 2 additions & 2 deletions src/resources/queues.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function queues(config) {
return {
@@ -17,4 +17,4 @@ function queues(config) {
};
}

module.exports = queues;
export default queues;
4 changes: 2 additions & 2 deletions src/resources/reactions.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function reactions(config) {
const url = (messageID) => `${config.apiURL}/messages/${messageID}/reactions`;
@@ -13,4 +13,4 @@ function reactions(config) {
};
}

module.exports = reactions;
export default reactions;
4 changes: 2 additions & 2 deletions src/resources/server.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function server(config) {
return {
@@ -9,4 +9,4 @@ function server(config) {
};
}

module.exports = server;
export default server;
4 changes: 2 additions & 2 deletions src/resources/streams.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function streams(config) {
return {
@@ -35,4 +35,4 @@ function streams(config) {
};
}

module.exports = streams;
export default streams;
4 changes: 2 additions & 2 deletions src/resources/typing.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function typing(config) {
return {
@@ -13,4 +13,4 @@ function typing(config) {
};
}

module.exports = typing;
export default typing;
4 changes: 2 additions & 2 deletions src/resources/users.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const api = require('../api');
import api from '../api';

function users(config) {
return {
@@ -45,4 +45,4 @@ function users(config) {
};
}

module.exports = users;
export default users;
6 changes: 3 additions & 3 deletions test/common.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const sinon = require('sinon');
const helper = require('../lib/helper');
import sinon from 'sinon';
import helper from '../lib/helper';

const getFakes = (validator, output) => {
const fetch = (url, options) => {
@@ -48,7 +48,7 @@ const config = {
realm: 'https://valid.realm.url/api',
};

module.exports = {
export default {
getFakes,
stubNetwork,
config,
6 changes: 3 additions & 3 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const lib = require('../lib/index');
const common = require('./common');
import chai from 'chai';
import lib from '../lib/index';
import common from './common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/accounts.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const accounts = require('../../lib/resources/accounts');
const common = require('../common');
import chai from 'chai';
import accounts from '../../lib/resources/accounts';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/emojis.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const emojis = require('../../lib/resources/emojis');
const common = require('../common');
import chai from 'chai';
import emojis from '../../lib/resources/emojis';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/events.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const events = require('../../lib/resources/events');
const common = require('../common');
import chai from 'chai';
import events from '../../lib/resources/events';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/filters.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const filters = require('../../lib/resources/filters');
const common = require('../common');
import chai from 'chai';
import filters from '../../lib/resources/filters';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/messages.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const messages = require('../../lib/resources/messages');
const common = require('../common');
import chai from 'chai';
import messages from '../../lib/resources/messages';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/queues.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const queues = require('../../lib/resources/queues');
const common = require('../common');
import chai from 'chai';
import queues from '../../lib/resources/queues';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/reactions.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const reactions = require('../../lib/resources/reactions');
const common = require('../common');
import chai from 'chai';
import reactions from '../../lib/resources/reactions';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/server.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const server = require('../../lib/resources/server');
const common = require('../common');
import chai from 'chai';
import server from '../../lib/resources/server';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/streams.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const streams = require('../../lib/resources/streams');
const common = require('../common');
import chai from 'chai';
import streams from '../../lib/resources/streams';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/typing.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const typing = require('../../lib/resources/typing');
const common = require('../common');
import chai from 'chai';
import typing from '../../lib/resources/typing';
import common from '../common';

chai.should();

6 changes: 3 additions & 3 deletions test/resources/users.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const chai = require('chai');
const users = require('../../lib/resources/users');
const common = require('../common');
import chai from 'chai';
import users from '../../lib/resources/users';
import common from '../common';

chai.should();