Skip to content

Commit

Permalink
Migrate to es6 modules
Browse files Browse the repository at this point in the history
  • Loading branch information
zzarcon committed Apr 3, 2019
1 parent b759053 commit 85ebc45
Show file tree
Hide file tree
Showing 14 changed files with 129 additions and 83 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"build": "rm -rf dist && tsc -p tsconfig.build.json",
"typecheck": "tsc -p tsconfig.build.json --noEmit",
"prepare": "npm run build",
"test": "./node_modules/mocha/bin/mocha --inline-diffs --timeout 1000000 tests/run.js"
"test": "mocha --inline-diffs --timeout 1000000 tests/run.js"
},
"dependencies": {
"@types/bluebird": "^3.5.26",
Expand Down
10 changes: 5 additions & 5 deletions src/core/exceptions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as _ from 'lodash';
import { CustomError } from 'ts-custom-error';
import routes = require('./routes');
import * as routes from './routes';
import { CheckpointResponse } from '../responses';
import { Session } from './session';

Expand Down Expand Up @@ -183,19 +183,19 @@ export class NoChallengeRequired extends APIError {
}

export class InvalidEmail extends APIError {
constructor(email, public json) {
constructor(email, public json?) {
super(`${email} email is not an valid email`);
}
}

export class InvalidUsername extends APIError {
constructor(username, public json) {
constructor(username, public json?) {
super(`${username} username is not an valid username`);
}
}

export class InvalidPhone extends APIError {
constructor(phone, public json) {
constructor(phone, public json?) {
super(`${phone} phone is not a valid phone`);
}
}
Expand All @@ -207,7 +207,7 @@ export class InvalidPassword extends APIError {
}

export class AccountRegistrationError extends APIError {
constructor(message, public json) {
constructor(message, public json?) {
super(message);
}
}
Expand Down
3 changes: 1 addition & 2 deletions src/feeds/inbox-pending.feed.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { AbstractFeed } from './abstract.feed';
import { Request } from '../core/request';

const Thread = require('../v1/thread');
import Thread from '../v1/thread';


export class InboxPendingFeed extends AbstractFeed<any> {
Expand Down
3 changes: 1 addition & 2 deletions src/feeds/inbox.feed.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { Request, Session } from '../core';
import { AbstractFeed } from './abstract.feed';

const Thread = require('../v1/thread');
import Thread from '../v1/thread';

export class InboxFeed extends AbstractFeed<any> {
public pendingRequestsTotal: null;
Expand Down
3 changes: 1 addition & 2 deletions src/feeds/thread-items.feed.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { AbstractFeed } from './abstract.feed';
import { Request } from '../core/request';

const ThreadItem = require('../v1/thread-item');
import ThreadItem from '../v1/thread-item';

export class ThreadItemsFeed extends AbstractFeed<any> {
threadId: any;
Expand Down
2 changes: 1 addition & 1 deletion src/finder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
let USERNAMETOFIND;
let COMMENTTOFIND;

const Client = require('./v1');
import Client from './v1';
const path = require('path');

const { urlSegmentToInstagramId } = require('instagram-id-to-url-segment');
Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ export * from './helpers';
export * from './responses'

// Legacy export. Will be removed in 1.0.0
export const V1 = require('./v1');
export {default as V1} from './v1';
163 changes: 106 additions & 57 deletions src/v1.ts
Original file line number Diff line number Diff line change
@@ -1,64 +1,113 @@
const InstagramV1: any = {};
import * as CONSTANTS from './constants/constants';
import * as routes from './core/routes';
import {Device} from './core/devices/device';
import {CookieStorage} from './core/cookies/cookie-storage';
import {CookieFileStorage} from './core/cookies/cookie-file-storage';
import {CookieMemoryStorage} from './core/cookies/cookie-memory-storage';
import * as Exceptions from './core/exceptions';
import prunedJson from './v1/json-pruned';
import Resource from './v1/resource';

InstagramV1.CONSTANTS = require('./constants/constants');
InstagramV1.routes = require('./core/routes');
InstagramV1.Device = require('./core/devices/device').Device;
InstagramV1.CookieStorage = require('./core/cookies/cookie-storage').CookieStorage;
InstagramV1.CookieFileStorage = require('./core/cookies/cookie-file-storage').CookieFileStorage;
InstagramV1.CookieMemoryStorage = require('./core/cookies/cookie-memory-storage').CookieMemoryStorage;
InstagramV1.Exceptions = require('./core/exceptions');
InstagramV1.prunedJson = require('./v1/json-pruned');
InstagramV1.Resource = require('./v1/resource');
import {Request} from './core/request';
import {Session} from './core/session';
import {Account} from './v1/account';
import {Media} from './v1/media';
import {Like} from './v1/like';
import Comment from './v1/comment';
import Hashtag from './v1/hashtag';
import Link from './v1/link';
import Placeholder from './v1/placeholder';
import Location from './v1/location';
import {Relationship} from './v1/relationship';
import Thread from './v1/thread';
import ThreadItem from './v1/thread-item';
import QE from './v1/qe';
import {Internal} from './v1/internal';
import Upload from './v1/upload';
import discover from './v1/discover';
import Save from './v1/save';
import search from './v1/search';

InstagramV1.Request = require('./core/request').Request;
InstagramV1.Session = require('./core/session').Session;
InstagramV1.Account = require('./v1/account').Account;
InstagramV1.Media = require('./v1/media').Media;
InstagramV1.Like = require('./v1/like').Like;
InstagramV1.Comment = require('./v1/comment');
InstagramV1.Hashtag = require('./v1/hashtag');
InstagramV1.Link = require('./v1/link');
InstagramV1.Placeholder = require('./v1/placeholder');
InstagramV1.Location = require('./v1/location');
InstagramV1.Relationship = require('./v1/relationship').Relationship;
InstagramV1.Thread = require('./v1/thread');
InstagramV1.ThreadItem = require('./v1/thread-item');
InstagramV1.QE = require('./v1/qe');
InstagramV1.Internal = require('./v1/internal').Internal;
InstagramV1.Upload = require('./v1/upload');
InstagramV1.discover = require('./v1/discover');
InstagramV1.Save = require('./v1/save');
InstagramV1.search = require('./v1/search');
import {AccountCreator, AccountPhoneCreator, AccountEmailCreator} from './v1/account-creator';

const creator = require('./v1/account-creator');
InstagramV1.AccountCreator = creator.AccountCreator;
InstagramV1.AccountPhoneCreator = creator.AccountPhoneCreator;
InstagramV1.AccountEmailCreator = creator.AccountEmailCreator;
import {AccountFollowersFeed as AccountFollowers} from './feeds/account-followers.feed';
import {AccountFollowingFeed as AccountFollowing} from './feeds/account-following.feed';
import {InboxFeed as Inbox} from './feeds/inbox.feed';
import {InboxPendingFeed as InboxPending} from './feeds/inbox-pending.feed';
import {LocationMediaFeed as LocationMedia} from './feeds/location-media.feed';
import {TaggedMediaFeed as TaggedMedia} from './feeds/tagged-media.feed';
import {ThreadItemsFeed as ThreadItems} from './feeds/thread-items.feed';
import {TimelineFeed as Timeline} from './feeds/timeline.feed';
import {UserMediaFeed as UserMedia} from './feeds/user-media.feed';
import {SelfLikedFeed as SelfLiked} from './feeds/self-liked.feed';
import {MediaCommentsFeed as MediaComments} from './feeds/media-comments.feed';
import {SavedMediaFeed as SavedMedia} from './feeds/saved-media.feed';
import { StoryTrayFeed } from './feeds/story-tray.feed';
import { UserStoryFeed } from './feeds/user-story.feed';
import { StoryViewersFeed } from './feeds/story-viewers.feed';

InstagramV1.Feed = {};
InstagramV1.Feed.AccountFollowers = require('./feeds/account-followers.feed').AccountFollowersFeed;
InstagramV1.Feed.AccountFollowing = require('./feeds/account-following.feed').AccountFollowingFeed;
InstagramV1.Feed.Inbox = require('./feeds/inbox.feed').InboxFeed;
InstagramV1.Feed.InboxPending = require('./feeds/inbox-pending.feed').InboxPendingFeed;
InstagramV1.Feed.LocationMedia = require('./feeds/location-media.feed').LocationMediaFeed;
InstagramV1.Feed.TaggedMedia = require('./feeds/tagged-media.feed').TaggedMediaFeed;
InstagramV1.Feed.TagMedia = InstagramV1.Feed.TaggedMedia; // Alias but deprecated
InstagramV1.Feed.ThreadItems = require('./feeds/thread-items.feed').ThreadItemsFeed;
InstagramV1.Feed.Timeline = require('./feeds/timeline.feed').TimelineFeed;
InstagramV1.Feed.UserMedia = require('./feeds/user-media.feed').UserMediaFeed;
InstagramV1.Feed.SelfLiked = require('./feeds/self-liked.feed').SelfLikedFeed;
InstagramV1.Feed.MediaComments = require('./feeds/media-comments.feed').MediaCommentsFeed;
InstagramV1.Feed.SavedMedia = require('./feeds/saved-media.feed').SavedMediaFeed;
InstagramV1.Feed.StoryTrayFeed = require('./feeds/story-tray.feed').StoryTrayFeed;
InstagramV1.Feed.UserStoryFeed = require('./feeds/user-story.feed').UserStoryFeed;
InstagramV1.Feed.StoryViewersFeed = require('./feeds/story-viewers.feed').StoryViewersFeed;
import {WebRequest} from './core/web-request';
import {Challenge, NotImplementedChallenge, EmailVerificationChallenge, PhoneVerificationChallenge} from './v1/challenge';

InstagramV1.Web = {};
InstagramV1.Web.Request = require('./core/web-request').WebRequest;
const challenge = require('./v1/challenge');
InstagramV1.Web.Challenge = challenge.Challenge;
InstagramV1.Web.NotImplementedChallenge = challenge.NotImplementedChallenge;
InstagramV1.Web.EmailVerificationChallenge = challenge.EmailVerificationChallenge;
InstagramV1.Web.PhoneVerificationChallenge = challenge.PhoneVerificationChallenge;
const Feed = {
AccountFollowers,
AccountFollowing,
Inbox,
InboxPending,
LocationMedia,
TaggedMedia,
ThreadItems,
Timeline,
UserMedia,
SelfLiked,
MediaComments,
SavedMedia,
TagMedia: TaggedMedia, // Alias but deprecated
StoryTrayFeed,
UserStoryFeed,
StoryViewersFeed,
};
const Web = {
Request: WebRequest,
Challenge,
NotImplementedChallenge,
EmailVerificationChallenge,
PhoneVerificationChallenge
};
const InstagramV1 = {
CONSTANTS,
routes,
Device,
CookieStorage,
CookieFileStorage,
CookieMemoryStorage,
Exceptions,
prunedJson,
Resource,
Request,
Session,
Account,
Media,
Like,
Comment,
Hashtag,
Link,
Placeholder,
Location,
Relationship,
Thread,
ThreadItem,
QE,
Internal,
Upload,
discover,
Save,
search,
AccountCreator,
AccountPhoneCreator,
AccountEmailCreator,
Feed,
Web
};

export default InstagramV1;
2 changes: 1 addition & 1 deletion src/v1/account-creator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { Helpers } from '../helpers';

const _ = require('lodash');
const clean = require('underscore.string/clean');
const Exceptions = require('../core/exceptions');
import * as Exceptions from '../core/exceptions';

import QE from './qe';
import {Relationship} from './relationship';
Expand Down
6 changes: 3 additions & 3 deletions src/v1/location.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ import { Helpers } from '../helpers';
const _ = require('lodash');
import Resource from './resource';
const camelKeys = require('camelcase-keys');
const { Request } = require('../core/request');
const Media = require('./media').Media;
const Exceptions = require('../core/exceptions');
import { Request } from '../core/request';
import {Media} from './media';
import * as Exceptions from '../core/exceptions';

class Location extends Resource {
static getRankedMedia (session, locationId) {
Expand Down
4 changes: 2 additions & 2 deletions src/v1/megaphone.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const _ = require('lodash');
const Resource = require('./resource');
const { Request } = require('../core/request');
import Resource from './resource';
import { Request } from '../core/request';

class Megaphone extends Resource {
static log (session, data) {
Expand Down
6 changes: 3 additions & 3 deletions src/v1/qe.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const _ = require('lodash');
const Resource = require('./resource');
const CONSTANTS = require('../constants/constants');
const { Request } = require('../core/request');
import Resource from './resource';
import * as CONSTANTS from '../constants/constants';
import { Request } from '../core/request';

class QE extends Resource {
// Lets fake this experiment bullshit
Expand Down
2 changes: 1 addition & 1 deletion src/v1/resource.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
const EventEmitter = require('events').EventEmitter;
const _ = require('lodash');
import { Request } from '../core/request';
import { Session } from '../core/session';

class InstagramResource extends EventEmitter {
constructor (session, params) {
super();
const { Session } = require('../core/session');
if (!(session instanceof Session)) throw new Error('Argument `session` is not instace of Session');
this._session = session;
this._params = {};
Expand Down
4 changes: 2 additions & 2 deletions src/v1/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { UserResponse } from '../responses/user.response';
import { Request } from '../core/request';
import { Helpers } from '../helpers';

const Hashtag = require('./hashtag');
const Location = require('./location');
import Hashtag from './hashtag';
import Location from './location';

export default (session, query) =>
session
Expand Down

0 comments on commit 85ebc45

Please sign in to comment.