JSFiddle - React, Tailwind, and code Playground

by tonytlwu

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

JavaScript

var Fliplet = {};

(function(){
  var settings = {
		sun: 'shine'
  };

	function use(provider) {
		// Create self, which inherits from its parent
    var self = Object.create(this);

		// Inherit the prototype from its parent
		self.settings = Object.create(this.settings);

		// Define the default service
		if (service) {
			self.settings.default_service = service;
		}

    return self;
  }

  function configure(services) {
		if (!services || typeof services !== 'object') {
			return this.services;
		}

		// Define provider credentials
		// Reformat the ID field
		for (var x in services) {
			if (services.hasOwnProperty(x)) {
				if (typeof (services[x]) !== 'object') {
					services[x] = {id: services[x]};
				}
			}
		}

		_.assignIn(this.services, services);
    
    return this;
	}
  
  function login() {
  	
  }

  Fliplet.OAuth2 = function (provider) {
    return Fliplet.OAuth2.use(provider);
  };

  _.assignIn(Fliplet.OAuth2, {
	  settings: settings,
	  services: {},
    use: use,
    configure: configure,
    login: login
  });
})();

Fliplet.OAuth2.configure({
	a: {
  	foo: 'bar'
  },
  b: {
  	foo: 'baz'
  }
});

Fliplet.OAuth2('a').login();
Fliplet.OAuth2('b').login();