diff --git a/bin/templates/plugin/client/.babelrc b/bin/templates/plugin/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/bin/templates/plugin/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/.babelrc b/client/.babelrc similarity index 87% rename from .babelrc rename to client/.babelrc index 3dcf42eb7..2af1a3dad 100644 --- a/.babelrc +++ b/client/.babelrc @@ -1,8 +1,9 @@ { "presets": [ - ["es2015", {modules: false}] + "es2015" ], "plugins": [ + "add-module-exports", "transform-class-properties", "transform-decorators-legacy", "transform-object-assign", @@ -11,4 +12,4 @@ "transform-react-jsx", "syntax-dynamic-import" ] -} +} \ No newline at end of file diff --git a/client/coral-configure/components/QuestionBoxBuilder.js b/client/coral-configure/components/QuestionBoxBuilder.js index 28dfc30b3..285df40ed 100644 --- a/client/coral-configure/components/QuestionBoxBuilder.js +++ b/client/coral-configure/components/QuestionBoxBuilder.js @@ -8,7 +8,7 @@ import styles from './QuestionBoxBuilder.css'; class QuestionBoxBuilder extends React.Component { constructor() { super(); - + this.state = { loading: true }; @@ -17,9 +17,9 @@ class QuestionBoxBuilder extends React.Component { componentWillMount() { this.loadEditor(); } - + async loadEditor() { - const {default: MarkdownEditor} = await import('coral-framework/components/MarkdownEditor'); + const MarkdownEditor = await import('coral-framework/components/MarkdownEditor'); return this.setState({ loading : false, @@ -79,17 +79,17 @@ class QuestionBoxBuilder extends React.Component { - handleChange({}, {questionBoxContent: value})} /> - + ); } diff --git a/client/coral-embed/src/index.js b/client/coral-embed/src/index.js index f60a88439..34bee1797 100644 --- a/client/coral-embed/src/index.js +++ b/client/coral-embed/src/index.js @@ -2,98 +2,101 @@ import URLSearchParams from 'url-search-params'; import Stream from './Stream'; import StreamInterface from './StreamInterface'; -export class Talk { +// This function should return value of window.Coral +const Coral = {}; +const Talk = (Coral.Talk = {}); - /** - * Render a Talk stream - * @param {HTMLElement} el - Element to render the stream in - * @param {Object} opts - Configuration options for talk - * @param {String} opts.talk - Talk base URL - * @param {String} [opts.title] - Title of Stream (rendered in iframe) - * @param {String} [opts.asset_url] - Asset URL - * @param {String} [opts.asset_id] - Asset ID - * @param {String} [opts.auth_token] - (optional) A jwt representing the session - * @return {Object} - * - * Example: - * ``` - * const embed = Talk.render(document.getElementById('talkStreamEmbed'), opts); - * - * // trigger a login with optional token. - * embed.login(token); - * - * // trigger a logout. - * embed.logout(); - * - * // listen to events (in this case all events). - * embed.on('**', function(value) { - * console.log(this.event, value); - * }); - * ``` - */ - static render(el, opts) { - if (!el) { - throw new Error('Please provide Coral.Talk.render() the HTMLElement you want to render Talk in.'); - } - if (typeof el !== 'object') { - throw new Error(`Coral.Talk.render() expected HTMLElement but got ${el} (${typeof el})`); - } - - opts = opts || {}; - - // TODO: infer this URL without explicit user input (if possible, may have to be added at build/render time of this script) - if (!opts.talk) { - throw new Error( - 'Coral.Talk.render() expects opts.talk as the Talk Base URL' - ); - } - - // Ensure el has an id, as pym can't directly accept the HTMLElement. - if (!el.id) { - el.id = `_${Math.random()}`; - } - - // Compose the query to send down to the Talk API so it knows what to load. - const query = {}; - - // Parse the url parameters to extract some of the information. - const urlParams = new URLSearchParams(window.location.search); - if (urlParams.get('commentId')) { - query.comment_id = urlParams.get('commentId'); - } - - // Extract the asset id from the options. - if (opts.asset_id) { - query.asset_id = opts.asset_id; - } - - // Extract the asset url. - if (opts.asset_url) { - query.asset_url = opts.asset_url; - } else if (!opts.asset_id) { - - // The asset url was not provided and the asset id was also not provided, - // we need to infer the asset url from details on the page. - - try { - query.asset_url = document.querySelector('link[rel="canonical"]').href; - } catch (e) { - console.warn( - 'This page does not include a canonical link tag. Talk has inferred this asset_url from the window object. Query params have been stripped, which may cause a single thread to be present across multiple pages.' - ); - - if (!window.location.origin) { - window.location.origin = `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}`; - } - - query.asset_url = window.location.origin + window.location.pathname; - } - } - - // Create the new Stream. - const stream = new Stream(el, opts.talk, query, opts); - - // Return the public interface for the stream. - return new StreamInterface(stream); +/** + * Render a Talk stream + * @param {HTMLElement} el - Element to render the stream in + * @param {Object} opts - Configuration options for talk + * @param {String} opts.talk - Talk base URL + * @param {String} [opts.title] - Title of Stream (rendered in iframe) + * @param {String} [opts.asset_url] - Asset URL + * @param {String} [opts.asset_id] - Asset ID + * @param {String} [opts.auth_token] - (optional) A jwt representing the session + * @return {Object} + * + * Example: + * ``` + * const embed = Talk.render(document.getElementById('talkStreamEmbed'), opts); + * + * // trigger a login with optional token. + * embed.login(token); + * + * // trigger a logout. + * embed.logout(); + * + * // listen to events (in this case all events). + * embed.on('**', function(value) { + * console.log(this.event, value); + * }); + * ``` + */ +Talk.render = (el, opts) => { + if (!el) { + throw new Error('Please provide Coral.Talk.render() the HTMLElement you want to render Talk in.'); } -} + if (typeof el !== 'object') { + throw new Error(`Coral.Talk.render() expected HTMLElement but got ${el} (${typeof el})`); + } + + opts = opts || {}; + + // TODO: infer this URL without explicit user input (if possible, may have to be added at build/render time of this script) + if (!opts.talk) { + throw new Error( + 'Coral.Talk.render() expects opts.talk as the Talk Base URL' + ); + } + + // Ensure el has an id, as pym can't directly accept the HTMLElement. + if (!el.id) { + el.id = `_${Math.random()}`; + } + + // Compose the query to send down to the Talk API so it knows what to load. + const query = {}; + + // Parse the url parameters to extract some of the information. + const urlParams = new URLSearchParams(window.location.search); + if (urlParams.get('commentId')) { + query.comment_id = urlParams.get('commentId'); + } + + // Extract the asset id from the options. + if (opts.asset_id) { + query.asset_id = opts.asset_id; + } + + // Extract the asset url. + if (opts.asset_url) { + query.asset_url = opts.asset_url; + } else if (!opts.asset_id) { + + // The asset url was not provided and the asset id was also not provided, + // we need to infer the asset url from details on the page. + + try { + query.asset_url = document.querySelector('link[rel="canonical"]').href; + } catch (e) { + console.warn( + 'This page does not include a canonical link tag. Talk has inferred this asset_url from the window object. Query params have been stripped, which may cause a single thread to be present across multiple pages.' + ); + + if (!window.location.origin) { + window.location.origin = `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}`; + } + + query.asset_url = window.location.origin + window.location.pathname; + } + } + + // Create the new Stream. + const stream = new Stream(el, opts.talk, query, opts); + + // Return the public interface for the stream. + return new StreamInterface(stream); +}; + +export default Coral; diff --git a/client/coral-framework/loaders/plugins-loader.js b/client/coral-framework/loaders/plugins-loader.js index 7683dae8d..a9fed95ab 100644 --- a/client/coral-framework/loaders/plugins-loader.js +++ b/client/coral-framework/loaders/plugins-loader.js @@ -21,7 +21,7 @@ module.exports = function(source) { this.cacheable(); const config = this.exec(source, this.resourcePath); const plugins = getPluginList(config).map((plugin) => `{ - module: require('${plugin}/client').default, + module: require('${plugin}/client'), name: '${plugin}' }`); diff --git a/client/coral-framework/services/client.js b/client/coral-framework/services/client.js index dc5a67d03..52088ad79 100644 --- a/client/coral-framework/services/client.js +++ b/client/coral-framework/services/client.js @@ -1,4 +1,4 @@ -import ApolloClient, {IntrospectionFragmentMatcher, createNetworkInterface} from 'apollo-client'; +import ApolloClient, {addTypename, IntrospectionFragmentMatcher, createNetworkInterface} from 'apollo-client'; import {SubscriptionClient, addGraphQLSubscriptions} from 'subscriptions-transport-ws'; import MessageTypes from 'subscriptions-transport-ws/dist/message-types'; @@ -64,6 +64,7 @@ export function createClient(options = {}) { connectToDevTools: true, addTypename: true, fragmentMatcher: new IntrospectionFragmentMatcher({introspectionQueryResultData: introspectionData}), + queryTransformer: addTypename, dataIdFromObject: (result) => { if (result.id && result.__typename) { // eslint-disable-line no-underscore-dangle return `${result.__typename}_${result.id}`; // eslint-disable-line no-underscore-dangle diff --git a/client/talk-plugin-commentbox/index.js b/client/talk-plugin-commentbox/index.js index 0d94a840e..9f166caeb 100644 --- a/client/talk-plugin-commentbox/index.js +++ b/client/talk-plugin-commentbox/index.js @@ -1 +1,5 @@ -export {default as reducer} from './reducer'; +import reducer from './reducer'; + +export default { + reducer +}; diff --git a/client/talk-plugin-flags/helpers/flagReasons.js b/client/talk-plugin-flags/helpers/flagReasons.js index 52bddbb38..514c57398 100644 --- a/client/talk-plugin-flags/helpers/flagReasons.js +++ b/client/talk-plugin-flags/helpers/flagReasons.js @@ -1,14 +1,15 @@ -export const username = { - offensive: 'USERNAME_OFFENSIVE', - nolike: 'USERNAME_NOLIKE', - impersonating: 'USERNAME_IMPERSONATING', - spam: 'USERNAME_SPAM', - other: 'USERNAME_OTHER' -}; - -export const comment = { - offensive: 'COMMENT_OFFENSIVE', - spam: 'COMMENT_SPAM', - noagree: 'COMMENT_NOAGREE', - other: 'COMMENT_OTHER' +export default { + username: { + offensive: 'USERNAME_OFFENSIVE', + nolike: 'USERNAME_NOLIKE', + impersonating: 'USERNAME_IMPERSONATING', + spam: 'USERNAME_SPAM', + other: 'USERNAME_OTHER' + }, + comment: { + offensive: 'COMMENT_OFFENSIVE', + spam: 'COMMENT_SPAM', + noagree: 'COMMENT_NOAGREE', + other: 'COMMENT_OTHER' + } }; diff --git a/package.json b/package.json index f8c8c9731..52866238b 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "babel-core": "^6.26.0", "babel-eslint": "^7.2.1", "babel-loader": "^7.1.2", + "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-async-to-generator": "^6.16.0", "babel-plugin-transform-class-properties": "^6.23.0", diff --git a/plugin-api/.babelrc b/plugin-api/.babelrc new file mode 100644 index 000000000..63b1c53de --- /dev/null +++ b/plugin-api/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} diff --git a/plugins/talk-plugin-auth/client/.babelrc b/plugins/talk-plugin-auth/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-auth/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-author-menu/client/.babelrc b/plugins/talk-plugin-author-menu/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-author-menu/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-comment-content/client/.babelrc b/plugins/talk-plugin-comment-content/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-comment-content/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-featured-comments/client/.babelrc b/plugins/talk-plugin-featured-comments/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-featured-comments/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-featured-comments/client/components/.babelrc b/plugins/talk-plugin-featured-comments/client/components/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-featured-comments/client/components/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-featured-comments/client/components/ModTag.js b/plugins/talk-plugin-featured-comments/client/components/ModTag.js index 7dfd36f2d..52c051796 100644 --- a/plugins/talk-plugin-featured-comments/client/components/ModTag.js +++ b/plugins/talk-plugin-featured-comments/client/components/ModTag.js @@ -3,7 +3,7 @@ import cn from 'classnames'; import styles from './ModTag.css'; import {t} from 'plugin-api/beta/client/services'; import {Icon} from 'plugin-api/beta/client/components/ui'; -import {getErrorMessages} from 'plugin-api/beta/client/utils'; +import * as notification from 'coral-admin/src/services/notification'; export default class ModTag extends React.Component { constructor() { @@ -32,10 +32,10 @@ export default class ModTag extends React.Component { postTag = async () => { try { await this.props.postTag(); - this.props.notify('success', t('talk-plugin-featured-comments.notify_self_featured', this.props.comment.user.username)); + notification.success(t('talk-plugin-featured-comments.notify_self_featured', this.props.comment.user.username)); } catch(err) { - this.props.notify('error', getErrorMessages(err)); + notification.showMutationErrors(err); } } diff --git a/plugins/talk-plugin-featured-comments/client/components/TabPane.js b/plugins/talk-plugin-featured-comments/client/components/TabPane.js index 941f15402..2f5d0c7c2 100644 --- a/plugins/talk-plugin-featured-comments/client/components/TabPane.js +++ b/plugins/talk-plugin-featured-comments/client/components/TabPane.js @@ -1,7 +1,7 @@ import React from 'react'; import Comment from '../containers/Comment'; import LoadMore from './LoadMore'; -import {getErrorMessages} from 'plugin-api/beta/client/utils'; +import {forEachError} from 'plugin-api/beta/client/utils'; class TabPane extends React.Component { state = { @@ -16,7 +16,7 @@ class TabPane extends React.Component { }) .catch((error) => { this.setState({loadingState: 'error'}); - this.props.notify('error', getErrorMessages(error)); + forEachError(error, ({msg}) => {this.props.addNotification('error', msg);}); }); } diff --git a/plugins/talk-plugin-featured-comments/client/containers/ModTag.js b/plugins/talk-plugin-featured-comments/client/containers/ModTag.js index 88aee73f6..7081c7ec6 100644 --- a/plugins/talk-plugin-featured-comments/client/containers/ModTag.js +++ b/plugins/talk-plugin-featured-comments/client/containers/ModTag.js @@ -1,13 +1,6 @@ import ModTag from '../components/ModTag'; -import {withTags, connect} from 'plugin-api/beta/client/hocs'; -import {gql, compose} from 'react-apollo'; -import {bindActionCreators} from 'redux'; -import {notify} from 'plugin-api/beta/client/actions/notification'; - -const mapDispatchToProps = (dispatch) => - bindActionCreators({ - notify, - }, dispatch); +import {withTags} from 'plugin-api/beta/client/hocs'; +import {gql} from 'react-apollo'; const fragments = { comment: gql` @@ -18,10 +11,6 @@ const fragments = { } ` }; -const enhance = compose( - withTags('featured', {fragments}), - connect(null, mapDispatchToProps), -); -export default enhance(ModTag); +export default withTags('featured', {fragments})(ModTag); diff --git a/plugins/talk-plugin-featured-comments/client/containers/TabPane.js b/plugins/talk-plugin-featured-comments/client/containers/TabPane.js index 5f684b228..93ef402a9 100644 --- a/plugins/talk-plugin-featured-comments/client/containers/TabPane.js +++ b/plugins/talk-plugin-featured-comments/client/containers/TabPane.js @@ -4,7 +4,7 @@ import {compose, gql} from 'react-apollo'; import TabPane from '../components/TabPane'; import {withFragments, connect} from 'plugin-api/beta/client/hocs'; import Comment from '../containers/Comment'; -import {notify} from 'plugin-api/beta/client/actions/notification'; +import {addNotification} from 'plugin-api/beta/client/actions/notification'; import {viewComment} from 'coral-embed-stream/src/actions/stream'; import {appendNewNodes, getDefinitionName} from 'plugin-api/beta/client/utils'; import update from 'immutability-helper'; @@ -81,7 +81,7 @@ const LOAD_MORE_QUERY = gql` const mapDispatchToProps = (dispatch) => bindActionCreators({ viewComment, - notify, + addNotification, }, dispatch); const enhance = compose( diff --git a/plugins/talk-plugin-flag-details/client/.babelrc b/plugins/talk-plugin-flag-details/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-flag-details/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-ignore-user/client/.babelrc b/plugins/talk-plugin-ignore-user/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-ignore-user/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-like/client/.babelrc b/plugins/talk-plugin-like/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-like/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-love/client/.babelrc b/plugins/talk-plugin-love/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-love/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-member-since/client/.babelrc b/plugins/talk-plugin-member-since/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-member-since/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-moderation-actions/client/.babelrc b/plugins/talk-plugin-moderation-actions/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-moderation-actions/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-offtopic/client/.babelrc b/plugins/talk-plugin-offtopic/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-offtopic/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-permalink/client/.babelrc b/plugins/talk-plugin-permalink/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-permalink/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-remember-sort/client/.babelrc b/plugins/talk-plugin-remember-sort/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-remember-sort/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-respect/client/.babelrc b/plugins/talk-plugin-respect/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-respect/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-most-liked/client/.babelrc b/plugins/talk-plugin-sort-most-liked/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-most-liked/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-most-loved/client/.babelrc b/plugins/talk-plugin-sort-most-loved/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-most-loved/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-most-replied/client/.babelrc b/plugins/talk-plugin-sort-most-replied/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-most-replied/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-most-respected/client/.babelrc b/plugins/talk-plugin-sort-most-respected/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-most-respected/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-newest/client/.babelrc b/plugins/talk-plugin-sort-newest/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-newest/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-sort-oldest/client/.babelrc b/plugins/talk-plugin-sort-oldest/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-sort-oldest/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-toxic-comments/client/.babelrc b/plugins/talk-plugin-toxic-comments/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-toxic-comments/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/plugins/talk-plugin-viewing-options/client/.babelrc b/plugins/talk-plugin-viewing-options/client/.babelrc new file mode 100644 index 000000000..60be246eb --- /dev/null +++ b/plugins/talk-plugin-viewing-options/client/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + "es2015" + ], + "plugins": [ + "add-module-exports", + "transform-class-properties", + "transform-decorators-legacy", + "transform-object-assign", + "transform-object-rest-spread", + "transform-async-to-generator", + "transform-react-jsx" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 29d4a2605..bc012d33e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -572,6 +572,10 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" +babel-plugin-add-module-exports@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" + babel-plugin-check-es2015-constants@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" @@ -3176,7 +3180,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" -graphql-anywhere@^3.0.0, graphql-anywhere@^3.0.1, graphql-anywhere@^3.1.0: +graphql-anywhere@^3.0.0, graphql-anywhere@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-3.0.1.tgz#73531db861174c8f212eafb9f8e84944b38b4e5a" + +graphql-anywhere@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/graphql-anywhere/-/graphql-anywhere-3.1.0.tgz#3ea0d8e8646b5cee68035016a9a7557c15c21e96"