UNPKG

22 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1646613a3a4407e537e2","webpack:///./src/core/index.ts","webpack:///./src/core/lifeCycle.ts","webpack:///./src/index.ts","webpack:///./src/utils/index.ts","webpack:///./src/globalAPI/index.ts","webpack:///./src/globalAPI/plugin.ts","webpack:///./src/globalAPI/extend.ts"],"names":[],"mappings":"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","file":"Usync.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Usync\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Usync\"] = factory();\n\telse\n\t\troot[\"Usync\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1646613a3a4407e537e2","import {assign} from '../utils/index'\nimport {init as initlifeCycle, LIFECYCLE as LIFE} from './lifeCycle'\nimport {IPlugin, IpluginOpts} from '../types/plugin'\nimport {IObject, IState, IHandler, ILifeCycle, ILifecycleMap, IHookArgs} from '../types/baseType'\n\nenum STATE {\n READY = 0,\n PENDING = 1,\n FULFILLED = 2,\n REJECTED = 3\n}\n\nexport default class Usync {\n\n public root: IObject;\n public vessel: IObject = {};\n public defferd: IHandler[];\n public index: number;\n public state: number;\n public startTime: number;\n public endTime: number;\n public __name__: string;\n public __state__: number;\n public depth: number;\n public $parent: Usync;\n public fulfilledBroadcast() {}\n\n /**\n * Initialize a Usync APP\n * @param state\n * @param options\n */\n constructor(state: IState, options?: IObject) {\n\n this.root = Array.isArray(state) ? state :\n typeof state === 'string' ? ((this.setName(state)) && <IObject>{}) :\n typeof state === 'object' ? [state] : <IObject>{}\n\n options = assign({}, options)\n\n if (<string>options.name) {\n this.setName(options.name)\n }\n\n this.root.$name = this.__name__\n\n this.defferd = []\n this.index = -1\n this.state = STATE.READY\n this.runHook(LIFE[LIFE.init], this)\n }\n\n get currentDefferd() {\n return <IHandler>this.defferd[this.index]\n }\n\n get prevDefferd() {\n return <IHandler>this.defferd[this.index - 1]\n }\n\n get nextDefferd() {\n return <IHandler>this.defferd[this.index + 1]\n }\n\n public setName(name: string) {\n this.__name__ = name\n return this\n }\n\n get name() {\n return this.__name__\n }\n\n /**\n * Core method to add task\n * @param handler\n * @returns {Usync}\n */\n public use(handler: IHandler | IHandler[]) {\n\n // Supoort Array syntax\n if (Array.isArray(handler)) {\n for (let childHandler of handler) {\n this.use(childHandler)\n }\n return this;\n }\n\n handler.$parent = this\n this.runHook(LIFE[LIFE.beforeUse], this, handler)\n\n this.defferd.push(<IHandler>handler)\n\n if (this.defferd.length === 1) {\n this.state = STATE.PENDING\n this.index = 0\n\n } else {\n // Previous task has been FULFILLED, directly to the next task execution\n if (this.defferd[this.defferd.length - 2].__state__ === STATE.FULFILLED) {\n this.then()\n }\n }\n\n return this\n }\n\n /**\n * Run next task\n */\n then() {\n // Add Support for time record\n this.currentDefferd.startTime = new Date().getTime()\n\n let argues = [this.root].concat(this.done.bind(this))\n\n try {\n\n this.setRootProperty()\n this.runHook(LIFE[LIFE.taskStart], this.root)\n if (typeof this.currentDefferd === 'function') {\n let returnValue = this.currentDefferd.apply(this, argues)\n\n if (returnValue instanceof Promise) {\n returnValue.then(() => {\n this.done.call(this)\n }).catch(err => {\n throw err\n })\n }\n\n } else if (this.currentDefferd instanceof Usync) {\n this.currentDefferd.fulfilledBroadcast = this.done.bind(this)\n this.currentDefferd.start()\n }\n\n } catch (err) {\n\n if (this.vessel.catch) {\n let errArgues = [err].concat([this.root], this.done.bind(this))\n this.vessel.catch.apply(this, errArgues)\n\n } else {\n throw new Error(err)\n }\n\n }\n }\n\n /**\n * Update root state\n */\n setRootProperty() {\n this.root.$current = this.currentDefferd\n this.root.$prev = this.prevDefferd\n this.root.$next = this.nextDefferd\n }\n\n /**\n * the next()\n */\n done() {\n\n this.currentDefferd.__state__ = STATE.FULFILLED\n this.currentDefferd.endTime = new Date().getTime()\n this.setRootProperty()\n\n this.runHook(LIFE[LIFE.taskEnd], this.root)\n this.index++\n // defferd running finished\n if (this.index === this.defferd.length) {\n this.state = STATE.FULFILLED\n this.defferd = []\n this.index = -1\n this.runHook(LIFE[LIFE.appEnd], this.root)\n\n // When a Usync instance set as a child task for another Usync instance\n // fulfilledBroadcast() will tell the parent it was fulfilled\n if (typeof this.fulfilledBroadcast === 'function') {\n this.fulfilledBroadcast()\n }\n\n return;\n }\n\n // Synchronous task call next,\n // subsequent task at this time has not yet been push, return directly\n if (this.currentDefferd === undefined) {\n return;\n }\n // Asynchronous task, subsequent task was already pushed\n // but didn't execute\n else if (this.currentDefferd.__state__ === undefined) {\n this.then()\n }\n }\n\n /**\n * Error catch\n * @param fn\n * @returns {Usync}\n */\n public catch(fn: (err: any) => any) {\n this.vessel.catch = fn;\n return this;\n }\n\n /**\n * A Usync application does not run automatically, start() must be called\n */\n public start() {\n this.runHook(LIFE[LIFE.appStart], this.root)\n this.startTime = new Date().getTime()\n this.then()\n }\n\n /**\n * Run life cycle hook\n * @param {String} name\n * @param args\n */\n runHook(name: string, ...args: IHookArgs) {\n let hookQuene = `${name}Quene`\n this.lifecycleMap[hookQuene].forEach(hook => hook.apply(this, args))\n\n if (this.protoLifecycleMap) {\n this.protoLifecycleMap[hookQuene].forEach(hook => hook.apply(this, args))\n }\n }\n\n get protoLifecycleMap() {\n return <ILifecycleMap>Object.getPrototypeOf(this).lifecycleMap;\n }\n\n /**\n * Extend through life cycle\n * @param hooks\n */\n public extend(hooks: ILifeCycle) {\n for (let key of Object.keys(this.lifecycleMap)) {\n let _key = key.replace('Quene', '')\n if (hooks[_key]) {\n this.lifecycleMap[key].push(hooks[_key])\n }\n }\n }\n\n lifecycleMap = <ILifecycleMap>initlifeCycle();\n\n static plugin(plugin: IPlugin, options?: IpluginOpts) {\n }\n\n static app(state: IState, options?: IObject) {\n return new Usync(state, options)\n }\n\n static extend(hooks: ILifeCycle) {\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/index.ts","import {ILifecycleMap} from '../types/baseType'\n\nexport enum LIFECYCLE {\n appStart = 1,\n taskStart = 2,\n taskEnd = 3,\n appEnd = 4,\n beforeUse = 5,\n init = 6,\n}\n\n/**\n * Check if a string only contains Number string\n * @param value\n * @returns {boolean}\n */\nfunction isNumberStr(value: string): boolean {\n // Cannot to use the parseInt API\n // because parseInt will ignore the partial that aren't Number\n var n = Number(value)\n return !isNaN(n)\n}\n\n/**\n * Init the life cycle map\n * @returns {ILifecycleMap}\n */\nexport function init() {\n let list = <ILifecycleMap>{}\n for (let cycle of Object.keys(LIFECYCLE)) {\n if (!isNumberStr(cycle)) {\n list[`${cycle}Quene`] = []\n }\n }\n return <ILifecycleMap>list;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/core/lifeCycle.ts","/// <reference path=\"./index.d.ts\" />\n\n/**\n * @license\n * Copyright toxichl All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/toxichl/usync/blob/master/LICENSE\n */\n\nimport Usync from './core';\nimport initGlobalAPI from './globalAPI'\n\ninitGlobalAPI(Usync);\n\nmodule.exports = Usync;\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.ts","import {IObject} from '../types/baseType'\n\n\nexport function assign(target: IObject, ...restOb: IObject[]): IObject {\n\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n target = Object(target);\n\n for (var index = 0; index < restOb.length; index++) {\n var source = restOb[index]\n if (source != null) {\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n }\n\n return target;\n};\n\n\n// WEBPACK FOOTER //\n// ./src/utils/index.ts","import initPlugin from './plugin'\nimport initExtend from './extend'\nimport Usync from '../core'\n\nexport default function initGlobalAPI(_Usync: typeof Usync) {\n initPlugin(_Usync)\n initExtend(_Usync)\n}\n\n\n// WEBPACK FOOTER //\n// ./src/globalAPI/index.ts","import {IPlugin, IpluginOpts} from '../types/plugin'\nimport Usync from '../core'\n\nexport default function initPlugin($Usync: typeof Usync) {\n\n $Usync.plugin = function (plugin: IPlugin, options?: IpluginOpts) {\n if (typeof plugin === 'function') {\n plugin($Usync, options)\n\n } else if (typeof plugin === 'object' && plugin.install) {\n plugin.install($Usync, options)\n }\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/globalAPI/plugin.ts","import {ILifeCycle} from '../types/baseType'\nimport Usync from '../core'\nimport {init as initLifeCycle} from '../core/lifeCycle'\n\nexport default function initExtend($Usync: typeof Usync) {\n\n $Usync.extend = function (hooks: ILifeCycle) {\n if (!Usync.prototype.lifecycleMap) {\n Usync.prototype.lifecycleMap = initLifeCycle()\n }\n Usync.prototype.extend.call(Usync.prototype, hooks)\n }\n}\n\n\n// WEBPACK FOOTER //\n// ./src/globalAPI/extend.ts"],"sourceRoot":""}
\No newline at end of file