UNPKG

2.35 kBJavaScriptView Raw
1/**
2 * Module dependencies
3 */
4var wpcomFactory = require( '../' );
5var qs = require( 'qs' );
6var oauthCors = require( 'wpcom-oauth-cors' );
7var fixture = require( './fixture' );
8var configFactory;
9
10try {
11 configFactory = require( './config' );
12} catch ( ex ) {
13 configFactory = {};
14}
15
16/**
17 * Detect client/server side
18 */
19const isClientSide = 'undefined' !== typeof window;
20let qryString;
21let reqHandler;
22
23const env = isClientSide && (
24 /^automattic\.github\.io/.test( document.location.host ) ||
25 /wpcomjs\.com/.test( document.location.host )
26 )
27 ? 'production'
28 : 'development';
29
30console.log( `environment: %o`, env );
31
32const config = configFactory[ env ];
33
34if ( isClientSide ) {
35 const clientId = config.oauth.client_id;
36 console.log( 'clientId: %o', clientId );
37
38 qryString = qs.parse( document.location.search.replace( /^\?/, '' ) );
39 reqHandler = qryString.handler || 'wpcom-proxy-request';
40 console.log( `reqHandler: %o`, reqHandler );
41
42 if (
43 'wpcom-xhr-request' === reqHandler ||
44 /access_token/.test( document.location.hash )
45 ) {
46 let wpoauth = oauthCors( clientId, config.oauth.options );
47
48 wpoauth.get( function( auth ) {
49 console.log( 'auth: ', auth );
50 } );
51 }
52}
53
54module.exports = {
55 wpcom: wpcom,
56 wpcomPublic: function() {
57 return wpcomFactory();
58 },
59 site: function() {
60 // check for existence of config in this env, and site if available
61 var site = config && config.site ? config.site : null;
62
63 return site || fixture.site || process.env.SITE;
64 },
65 wordAds: function() {
66 return config.wordads;
67 }
68};
69
70function wpcom() {
71 let _wpcom;
72 if ( isClientSide ) {
73 reqHandler = qryString.handler || 'wpcom-proxy-request';
74
75 if ( 'wpcom-proxy-request' === reqHandler ) {
76 console.log( 'PROXY request handler' );
77 let proxy = require( 'wpcom-proxy-request' );
78 _wpcom = wpcomFactory( proxy );
79 _wpcom.request( {
80 metaAPI: { accessAllUsersBlogs: true }
81 }, function( err ) {
82 if ( err ) throw err;
83 console.log( 'proxy now running in "access all user\'s blogs" mode' );
84 } );
85 } else {
86 console.log( 'XHR request handler' );
87 let oauthToken = JSON.parse( localStorage.wp_oauth ).access_token;
88 _wpcom = wpcomFactory( oauthToken );
89 }
90 // expose wpcom just for testing
91 window.wpcom = _wpcom;
92 } else {
93 _wpcom = wpcomFactory( process.env.TOKEN || config.token );
94 }
95 return _wpcom;
96}