Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
a1139c5da4 | |||
a401fd2e8f | |||
8157371a1d | |||
719a9b32d7 | |||
a732d2a403 | |||
11fe4618ba | |||
f4290ca8fa | |||
04518f28cf | |||
0d6ea31bd2 | |||
60bd95093d | |||
05d4e0ff6d | |||
e05f7d32fd | |||
5f0ddc6600 | |||
d312d6ae5a | |||
8ca254595d | |||
7661ae506d | |||
4e8dd83839 | |||
7ab1a4eec7 | |||
3098fbec89 | |||
1caa8a7c31 | |||
c689a3c349 | |||
a8a0778708 | |||
82ebb181a0 | |||
adabcb3c4a | |||
32db51c49a | |||
62b91adf0e | |||
2f6a56c857 | |||
988cf907a4 | |||
18d79cb403 | |||
1d2c073206 | |||
fa85e689df | |||
e5d18a75f8 | |||
87c9556064 | |||
f4b8766dae | |||
ecaaaee54a | |||
46693c4bef | |||
cd7361bb96 | |||
d3b4a252e9 | |||
abc9e7888e |
@ -1,20 +1,31 @@
|
|||||||
image: hosttoday/ht-docker-node:npmts
|
# gitzone standard
|
||||||
|
image: hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- .yarn/
|
||||||
|
key: "$CI_BUILD_STAGE"
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
- page
|
- pages
|
||||||
|
|
||||||
testLEGACY:
|
testLEGACY:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test legacy
|
- npmci test legacy
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
testLTS:
|
testLTS:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test lts
|
- npmci test lts
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
@ -22,8 +33,10 @@ testSTABLE:
|
|||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci test stable
|
- npmci test stable
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
script:
|
script:
|
||||||
@ -32,6 +45,7 @@ release:
|
|||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
stage: trigger
|
stage: trigger
|
||||||
script:
|
script:
|
||||||
@ -40,11 +54,15 @@ trigger:
|
|||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
image: hosttoday/ht-docker-node:npmpage
|
image: hosttoday/ht-docker-node:npmci
|
||||||
stage: page
|
stage: pages
|
||||||
script:
|
script:
|
||||||
- npmci command npmpage --host gitlab
|
- npmci command yarn global add npmpage
|
||||||
|
- npmci command npmpage
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
artifacts:
|
artifacts:
|
||||||
|
44
README.md
44
README.md
@ -1,44 +0,0 @@
|
|||||||
# smartsystem
|
|
||||||
simplifies lazy loading with TypeScript
|
|
||||||
|
|
||||||
## Availabililty
|
|
||||||
[](https://www.npmjs.com/package/smartsystem)
|
|
||||||
[](https://gitlab.com/pushrocks/smartsystem)
|
|
||||||
[](https://github.com/pushrocks/smartsystem)
|
|
||||||
[](https://pushrocks.gitlab.io/smartsystem/)
|
|
||||||
|
|
||||||
## Status for master
|
|
||||||
[](https://gitlab.com/pushrocks/smartsystem/commits/master)
|
|
||||||
[](https://gitlab.com/pushrocks/smartsystem/commits/master)
|
|
||||||
[](https://david-dm.org/pushrocks/smartsystem)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/smartsystem/master/dependencies/npm)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/smartsystem)
|
|
||||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
|
||||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
|
||||||
[](http://standardjs.com/)
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
We recommend the use of TypeScript for best Intellisense
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import { LazyModule } from 'smartsystem'
|
|
||||||
|
|
||||||
import * as myPluginType from 'myPlugin' // plugin does not get loaded here at runtime
|
|
||||||
let myPluginLazy = new LazyModule<typeof myPlugin>('myPlugin')
|
|
||||||
|
|
||||||
import * as anotherPluginType from 'anotherPlugin' // plugin does not get loaded here at runtime
|
|
||||||
let anotherPluginPromised = LazyModule<typeof anotherPlugin>('anotherPlugin')
|
|
||||||
|
|
||||||
myPluginLazy.whenLoaded.then(myPlugin => {
|
|
||||||
/* do something with myPlugin.
|
|
||||||
myPlugin receives the typings flow from LazyModule class
|
|
||||||
This does NOT load the module during runtime
|
|
||||||
The promise whenLoaded will be resolved whenever load() is called for the first time */
|
|
||||||
})
|
|
||||||
|
|
||||||
myPluginLazy.load().then(myPlugin => {
|
|
||||||
/* do something with myPlugin.
|
|
||||||
myPlugin receives the typings flow from LazyModule class
|
|
||||||
This DOES LOAD the module */
|
|
||||||
})
|
|
||||||
```
|
|
15
dist/index.d.ts
vendored
15
dist/index.d.ts
vendored
@ -1,22 +1,17 @@
|
|||||||
/// <reference types="q" />
|
|
||||||
import 'typings-global';
|
import 'typings-global';
|
||||||
import * as q from 'q';
|
|
||||||
/**
|
/**
|
||||||
* defines a LazyModule
|
* defines a LazyModule
|
||||||
*/
|
*/
|
||||||
|
export declare type TLoader = 'npm' | 'systemjs';
|
||||||
export declare class LazyModule<T> {
|
export declare class LazyModule<T> {
|
||||||
name: string;
|
name: string;
|
||||||
nameIsPath: boolean;
|
|
||||||
cwd: string;
|
cwd: string;
|
||||||
whenLoaded: q.Promise<T>;
|
whenLoaded: Promise<T>;
|
||||||
|
private nameIsPath;
|
||||||
private whenLoadedDeferred;
|
private whenLoadedDeferred;
|
||||||
constructor(nameArg: string, cwdArg?: string);
|
constructor(nameArg: string, cwdArg: string);
|
||||||
/**
|
/**
|
||||||
* loads the module
|
* loads the module
|
||||||
*/
|
*/
|
||||||
load(): q.Promise<T>;
|
load(): Promise<T>;
|
||||||
/**
|
|
||||||
* loads additional lazy modules specified as arguments and returns them in the promise for easy use
|
|
||||||
*/
|
|
||||||
loadAlso(...args: LazyModule<any>[]): void;
|
|
||||||
}
|
}
|
||||||
|
44
dist/index.js
vendored
44
dist/index.js
vendored
@ -1,8 +1,17 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
const q = require("q");
|
const path = require("path");
|
||||||
|
const smartq = require("smartq");
|
||||||
const lik_1 = require("lik");
|
const lik_1 = require("lik");
|
||||||
let systemjs = require('systemjs');
|
|
||||||
class Smartsystem {
|
class Smartsystem {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.lazyModules = new lik_1.Objectmap();
|
this.lazyModules = new lik_1.Objectmap();
|
||||||
@ -16,36 +25,31 @@ class Smartsystem {
|
|||||||
}
|
}
|
||||||
// create the internal smartsystem
|
// create the internal smartsystem
|
||||||
let smartsystem = new Smartsystem();
|
let smartsystem = new Smartsystem();
|
||||||
/**
|
|
||||||
* defines a LazyModule
|
|
||||||
*/
|
|
||||||
class LazyModule {
|
class LazyModule {
|
||||||
constructor(nameArg, cwdArg = process.cwd()) {
|
constructor(nameArg, cwdArg) {
|
||||||
|
if (!cwdArg) {
|
||||||
|
throw new Error('You must specify a directory to resolve from!');
|
||||||
|
}
|
||||||
this.name = nameArg;
|
this.name = nameArg;
|
||||||
this.cwd = cwdArg;
|
this.cwd = cwdArg;
|
||||||
smartsystem.addLazyModule(this); // add module to smartsystem instance
|
smartsystem.addLazyModule(this); // add module to smartsystem instance
|
||||||
this.nameIsPath = /\.\//.test(this.name); // figure out if name is path
|
this.nameIsPath = /\.\//.test(this.name); // figure out if name is path
|
||||||
this.whenLoadedDeferred = q.defer();
|
if (this.nameIsPath) {
|
||||||
|
this.name = path.join(this.cwd, this.name);
|
||||||
|
}
|
||||||
|
this.whenLoadedDeferred = smartq.defer();
|
||||||
this.whenLoaded = this.whenLoadedDeferred.promise;
|
this.whenLoaded = this.whenLoadedDeferred.promise;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* loads the module
|
* loads the module
|
||||||
*/
|
*/
|
||||||
load() {
|
load() {
|
||||||
let done = q.defer();
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
let loadedModule;
|
let loadedModule = require(this.name);
|
||||||
systemjs.import(this.name).then((m) => {
|
|
||||||
loadedModule = m;
|
|
||||||
this.whenLoadedDeferred.resolve(loadedModule);
|
this.whenLoadedDeferred.resolve(loadedModule);
|
||||||
done.resolve(loadedModule);
|
return loadedModule;
|
||||||
}).catch(err => { console.log(err); });
|
});
|
||||||
return done.promise;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* loads additional lazy modules specified as arguments and returns them in the promise for easy use
|
|
||||||
*/
|
|
||||||
loadAlso(...args) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports.LazyModule = LazyModule;
|
exports.LazyModule = LazyModule;
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEJBQXVCO0FBRXZCLHVCQUFzQjtBQUN0Qiw2QkFBK0I7QUFDL0IsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBRWxDO0lBQUE7UUFDSSxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFtQixDQUFBO0lBUWxELENBQUM7SUFORzs7T0FFRztJQUNILGFBQWEsQ0FBQyxhQUE4QjtRQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0NBQ0o7QUFFRCxrQ0FBa0M7QUFDbEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtBQUVuQzs7R0FFRztBQUNIO0lBTUksWUFBWSxPQUFlLEVBQUUsTUFBTSxHQUFXLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUE7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUE7UUFDakIsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLHFDQUFxQztRQUNyRSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsNkJBQTZCO1FBQ3RFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFLLENBQUE7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFBO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDQSxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFLLENBQUE7UUFDdkIsSUFBSSxZQUFlLENBQUE7UUFDbkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5QixZQUFZLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQUMsR0FBRyxJQUF1QjtJQUVuQyxDQUFDO0NBQ0o7QUFuQ0QsZ0NBbUNDIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsMEJBQXVCO0FBRXZCLDZCQUE0QjtBQUM1QixpQ0FBZ0M7QUFDaEMsNkJBQStCO0FBRS9CO0lBQUE7UUFDRSxnQkFBVyxHQUFHLElBQUksZUFBUyxFQUFtQixDQUFBO0lBUWhELENBQUM7SUFOQzs7T0FFRztJQUNILGFBQWEsQ0FBRSxhQUE4QjtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0NBQ0Y7QUFFRCxrQ0FBa0M7QUFDbEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQTtBQVFuQztJQU1FLFlBQWEsT0FBZSxFQUFFLE1BQWM7UUFDMUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFBO1FBQ2xFLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQTtRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQTtRQUNqQixXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMscUNBQXFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQyw2QkFBNkI7UUFDdEUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzVDLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBSyxDQUFBO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQTtJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDRyxJQUFJOztZQUNSLElBQUksWUFBWSxHQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUM3QyxNQUFNLENBQUMsWUFBWSxDQUFBO1FBQ3JCLENBQUM7S0FBQTtDQUNGO0FBN0JELGdDQTZCQyJ9
|
64
docs/index.md
Normal file
64
docs/index.md
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
---
|
||||||
|
name: smartsystem
|
||||||
|
description: simplifies lazy loading with TypeScript
|
||||||
|
---
|
||||||
|
# smartsystem
|
||||||
|
simplifies lazy loading with TypeScript
|
||||||
|
|
||||||
|
## Availabililty
|
||||||
|
[](https://www.npmjs.com/package/smartsystem)
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem)
|
||||||
|
[](https://github.com/pushrocks/smartsystem)
|
||||||
|
[](https://pushrocks.gitlab.io/smartsystem/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem/commits/master)
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem/commits/master)
|
||||||
|
[](https://www.npmjs.com/package/smartsystem)
|
||||||
|
[](https://david-dm.org/pushrocks/smartsystem)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartsystem/master/dependencies/npm)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartsystem)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](http://standardjs.com/)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
We recommend the use of TypeScript for best Intellisense
|
||||||
|
|
||||||
|
smartsystem supports both npm and SystemJs as module loader.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import { LazyModule } from 'smartsystem'
|
||||||
|
|
||||||
|
// plugin does not get loaded here at runtime
|
||||||
|
import * as _myPlugin from 'myPlugin'
|
||||||
|
|
||||||
|
// define the lazy module
|
||||||
|
let myLazyModule = new LazyModule<typeof _myPlugin>('myPlugin', __dirname)
|
||||||
|
|
||||||
|
// another plugin
|
||||||
|
import * as _anotherPlugin from 'anotherPlugin' // plugin does not get loaded here at runtime
|
||||||
|
|
||||||
|
// define lazy module
|
||||||
|
let anotherLazyModule = new LazyModule<typeof _anotherPlugin>('anotherPlugin', __dirname)
|
||||||
|
|
||||||
|
myLazyModule.whenLoaded.then(myPlugin => {
|
||||||
|
/* do something with myPlugin.
|
||||||
|
myPlugin receives the typings flow from LazyModule class
|
||||||
|
This does NOT load the module during runtime
|
||||||
|
The promise whenLoaded will be resolved whenever load() is called for the first time */
|
||||||
|
})
|
||||||
|
|
||||||
|
myLazyModule.load().then(myPlugin => {
|
||||||
|
/* do something with myPlugin.
|
||||||
|
myPlugin receives the typings flow from LazyModule class
|
||||||
|
This DOES LOAD the module */
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this README.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||||
|
|
||||||
|
[](https://push.rocks)
|
7
npmextra.json
Normal file
7
npmextra.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"npmci": {
|
||||||
|
"globalNpmTools": [
|
||||||
|
"npmts"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
22
package.json
22
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "smartsystem",
|
"name": "smartsystem",
|
||||||
"version": "1.0.2",
|
"version": "2.0.2",
|
||||||
"description": "wraps systemjs for smarter workflows",
|
"description": "simplifies lazy loading with TypeScript",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -11,6 +11,11 @@
|
|||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+ssh://git@gitlab.com/pushrocks/smartsystem.git"
|
"url": "git+ssh://git@gitlab.com/pushrocks/smartsystem.git"
|
||||||
},
|
},
|
||||||
|
"keywords": [
|
||||||
|
"TypeScript",
|
||||||
|
"lazy",
|
||||||
|
"module loader"
|
||||||
|
],
|
||||||
"author": "Lossless GmbH",
|
"author": "Lossless GmbH",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
@ -18,15 +23,12 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/smartsystem#README",
|
"homepage": "https://gitlab.com/pushrocks/smartsystem#README",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/q": "0.0.32",
|
"lik": "^1.0.38",
|
||||||
"lik": "^1.0.24",
|
"smartq": "^1.1.6",
|
||||||
"q": "^1.4.1",
|
"systemjs": "^0.20.17",
|
||||||
"systemjs": "^0.19.39",
|
"typings-global": "^1.0.20"
|
||||||
"typings-global": "^1.0.14"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/should": "^8.1.30",
|
"tapbundle": "^1.1.1"
|
||||||
"should": "^11.1.1",
|
|
||||||
"typings-test": "^1.0.3"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
29
readme.md
Normal file
29
readme.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# smartsystem
|
||||||
|
simplifies lazy loading with TypeScript
|
||||||
|
|
||||||
|
## Availabililty
|
||||||
|
[](https://www.npmjs.com/package/smartsystem)
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem)
|
||||||
|
[](https://github.com/pushrocks/smartsystem)
|
||||||
|
[](https://pushrocks.gitlab.io/smartsystem/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem/commits/master)
|
||||||
|
[](https://GitLab.com/pushrocks/smartsystem/commits/master)
|
||||||
|
[](https://www.npmjs.com/package/smartsystem)
|
||||||
|
[](https://david-dm.org/pushrocks/smartsystem)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartsystem/master/dependencies/npm)
|
||||||
|
[](https://www.bithound.io/github/pushrocks/smartsystem)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
[](http://standardjs.com/)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
We recommend the use of TypeScript for best Intellisense
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this README.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
|
||||||
|
|
||||||
|
[](https://push.rocks)
|
@ -1,4 +1,4 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
exports.exportedTestBoolean = true;
|
exports.exportedTestBoolean = true;
|
||||||
console.log('moduleExample loaded successfully');
|
console.log('moduleExample loaded successfully');
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlRXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZHVsZUV4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFXLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO0FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQSJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlRXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZHVsZUV4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFXLFFBQUEsbUJBQW1CLEdBQUcsSUFBSSxDQUFBO0FBRXJDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQSJ9
|
@ -1,2 +1,3 @@
|
|||||||
export let exportedTestBoolean = true
|
export let exportedTestBoolean = true
|
||||||
|
import * as q from 'q'
|
||||||
console.log('moduleExample loaded successfully')
|
console.log('moduleExample loaded successfully')
|
1
test/test.d.ts
vendored
1
test/test.d.ts
vendored
@ -1 +0,0 @@
|
|||||||
import 'typings-test';
|
|
13
test/test.js
13
test/test.js
@ -1,13 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-test");
|
|
||||||
const smartsystem = require("../dist/index");
|
|
||||||
describe('smartsystem', function () {
|
|
||||||
it('should load a module lazily', function (done) {
|
|
||||||
let lazyModuleExample = new smartsystem.LazyModule('./test/moduleExample.js');
|
|
||||||
lazyModuleExample.load().then(m => {
|
|
||||||
console.log(m.exportedTestBoolean);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQiw2Q0FBNEM7QUFJNUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUNwQixFQUFFLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxJQUFJO1FBQzVDLElBQUksaUJBQWlCLEdBQUcsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUF3Qix5QkFBeUIsQ0FBQyxDQUFBO1FBRXBHLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUE7WUFDbEMsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUMsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFDLENBQUEifQ==
|
|
28
test/test.ts
28
test/test.ts
@ -1,16 +1,18 @@
|
|||||||
import 'typings-test'
|
import { tap, expect } from 'tapbundle'
|
||||||
import * as should from 'should'
|
import * as smartsystem from '../ts/index'
|
||||||
import * as smartsystem from '../dist/index'
|
import * as _moduleExample from './assets/moduleExample'
|
||||||
|
|
||||||
import * as _moduleExample from './moduleExample'
|
let lazyModuleExample: smartsystem.LazyModule<typeof _moduleExample>
|
||||||
|
|
||||||
describe('smartsystem', function () {
|
tap.test('should create a lazy module instance', async (tools) => {
|
||||||
it('should load a module lazily', function (done) {
|
lazyModuleExample = new smartsystem.LazyModule<typeof _moduleExample>('./assets/moduleExample.js', __dirname)
|
||||||
let lazyModuleExample = new smartsystem.LazyModule<typeof _moduleExample>('./test/moduleExample.js')
|
expect(lazyModuleExample).to.be.instanceof(smartsystem.LazyModule)
|
||||||
|
|
||||||
lazyModuleExample.load().then(m => {
|
|
||||||
console.log(m.exportedTestBoolean)
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tap.test('should load the module', async () => {
|
||||||
|
await lazyModuleExample.load().then(async m => {
|
||||||
|
console.log(m.exportedTestBoolean)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
tap.start()
|
||||||
|
77
ts/index.ts
77
ts/index.ts
@ -1,18 +1,18 @@
|
|||||||
import 'typings-global'
|
import 'typings-global'
|
||||||
|
|
||||||
import * as q from 'q'
|
import * as path from 'path'
|
||||||
|
import * as smartq from 'smartq'
|
||||||
import { Objectmap } from 'lik'
|
import { Objectmap } from 'lik'
|
||||||
let systemjs = require('systemjs')
|
|
||||||
|
|
||||||
class Smartsystem {
|
class Smartsystem {
|
||||||
lazyModules = new Objectmap<LazyModule<any>>()
|
lazyModules = new Objectmap<LazyModule<any>>()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add lazyModule to Smartsystem
|
* add lazyModule to Smartsystem
|
||||||
*/
|
*/
|
||||||
addLazyModule(lazyModuleArg: LazyModule<any>) {
|
addLazyModule (lazyModuleArg: LazyModule<any>) {
|
||||||
this.lazyModules.add(lazyModuleArg)
|
this.lazyModules.add(lazyModuleArg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// create the internal smartsystem
|
// create the internal smartsystem
|
||||||
@ -21,39 +21,36 @@ let smartsystem = new Smartsystem()
|
|||||||
/**
|
/**
|
||||||
* defines a LazyModule
|
* defines a LazyModule
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
export type TLoader = 'npm' | 'systemjs'
|
||||||
|
|
||||||
export class LazyModule<T> {
|
export class LazyModule<T> {
|
||||||
name: string
|
name: string
|
||||||
nameIsPath: boolean
|
cwd: string
|
||||||
cwd: string
|
whenLoaded: Promise<T>
|
||||||
whenLoaded: q.Promise<T>
|
private nameIsPath: boolean
|
||||||
private whenLoadedDeferred: q.Deferred<T>
|
private whenLoadedDeferred: smartq.Deferred<T>
|
||||||
constructor(nameArg: string, cwdArg: string = process.cwd()) {
|
constructor (nameArg: string, cwdArg: string) {
|
||||||
this.name = nameArg
|
if (!cwdArg) {
|
||||||
this.cwd = cwdArg
|
throw new Error('You must specify a directory to resolve from!')
|
||||||
smartsystem.addLazyModule(this) // add module to smartsystem instance
|
|
||||||
this.nameIsPath = /\.\//.test(this.name) // figure out if name is path
|
|
||||||
this.whenLoadedDeferred = q.defer<T>()
|
|
||||||
this.whenLoaded = this.whenLoadedDeferred.promise
|
|
||||||
}
|
}
|
||||||
|
this.name = nameArg
|
||||||
/**
|
this.cwd = cwdArg
|
||||||
* loads the module
|
smartsystem.addLazyModule(this) // add module to smartsystem instance
|
||||||
*/
|
this.nameIsPath = /\.\//.test(this.name) // figure out if name is path
|
||||||
load(): q.Promise<T> {
|
if (this.nameIsPath) {
|
||||||
let done = q.defer<T>()
|
this.name = path.join(this.cwd, this.name)
|
||||||
let loadedModule: T
|
|
||||||
systemjs.import(this.name).then((m) => {
|
|
||||||
loadedModule = m
|
|
||||||
this.whenLoadedDeferred.resolve(loadedModule)
|
|
||||||
done.resolve(loadedModule)
|
|
||||||
}).catch(err => { console.log(err) })
|
|
||||||
return done.promise
|
|
||||||
}
|
}
|
||||||
|
this.whenLoadedDeferred = smartq.defer<T>()
|
||||||
|
this.whenLoaded = this.whenLoadedDeferred.promise
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* loads additional lazy modules specified as arguments and returns them in the promise for easy use
|
* loads the module
|
||||||
*/
|
*/
|
||||||
loadAlso(...args: LazyModule<any>[]) {
|
async load (): Promise<T> {
|
||||||
|
let loadedModule: T = require(this.name)
|
||||||
}
|
this.whenLoadedDeferred.resolve(loadedModule)
|
||||||
|
return loadedModule
|
||||||
|
}
|
||||||
}
|
}
|
421
yarn.lock
Normal file
421
yarn.lock
Normal file
@ -0,0 +1,421 @@
|
|||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
||||||
|
"@types/chai-as-promised@0.0.29":
|
||||||
|
version "0.0.29"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai-as-promised/-/chai-as-promised-0.0.29.tgz#43d52892aa998e185a3de3e2477edb8573be1d77"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
"@types/promises-a-plus" "*"
|
||||||
|
|
||||||
|
"@types/chai-string@^1.1.30":
|
||||||
|
version "1.1.30"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai-string/-/chai-string-1.1.30.tgz#4d8744b31a5a2295fc01c981ed1e2d4c8a070f0a"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "*"
|
||||||
|
|
||||||
|
"@types/chai@*":
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.1.tgz#37fea779617cfec3fd2b19a0247e8bbdd5133bf6"
|
||||||
|
|
||||||
|
"@types/chai@^3.4.35":
|
||||||
|
version "3.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-3.5.2.tgz#c11cd2817d3a401b7ba0f5a420f35c56139b1c1e"
|
||||||
|
|
||||||
|
"@types/lodash@^4.14.67":
|
||||||
|
version "4.14.71"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.71.tgz#0dc383f78981216ac76e2f2c3afd998e0450e4c1"
|
||||||
|
|
||||||
|
"@types/minimatch@2.x.x":
|
||||||
|
version "2.0.29"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a"
|
||||||
|
|
||||||
|
"@types/node@*":
|
||||||
|
version "8.0.17"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.17.tgz#677bc8c118cfb76013febb62ede1f31d2c7222a1"
|
||||||
|
|
||||||
|
"@types/promises-a-plus@*":
|
||||||
|
version "0.0.27"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/promises-a-plus/-/promises-a-plus-0.0.27.tgz#c64651134614c84b8f5d7114ce8901d36a609780"
|
||||||
|
|
||||||
|
"@types/q@1.x.x":
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/q/-/q-1.0.3.tgz#08e99d20f7abfc0fe202b6d5a0921bfafcdea8d0"
|
||||||
|
|
||||||
|
"@types/shelljs@^0.7.2":
|
||||||
|
version "0.7.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.2.tgz#c2bdb3fe80cd7a3da08750ca898ae44c589671f3"
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/which@^1.0.28":
|
||||||
|
version "1.0.28"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6"
|
||||||
|
|
||||||
|
ansi-256-colors@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz#910de50efcc7c09e3d82f2f87abd6b700c18818a"
|
||||||
|
|
||||||
|
assertion-error@^1.0.1:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
|
||||||
|
|
||||||
|
balanced-match@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
|
|
||||||
|
beautycolor@^1.0.7:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/beautycolor/-/beautycolor-1.0.7.tgz#a4715738ac4c8221371e9cbeb5a6cc6d11ecbf7c"
|
||||||
|
dependencies:
|
||||||
|
ansi-256-colors "^1.1.0"
|
||||||
|
typings-global "^1.0.14"
|
||||||
|
|
||||||
|
bindings@^1.2.1:
|
||||||
|
version "1.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7"
|
||||||
|
|
||||||
|
brace-expansion@^1.1.7:
|
||||||
|
version "1.1.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
|
||||||
|
dependencies:
|
||||||
|
balanced-match "^1.0.0"
|
||||||
|
concat-map "0.0.1"
|
||||||
|
|
||||||
|
chai-as-promised@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-6.0.0.tgz#1a02a433a6f24dafac63b9c96fa1684db1aa8da6"
|
||||||
|
dependencies:
|
||||||
|
check-error "^1.0.2"
|
||||||
|
|
||||||
|
chai-string@^1.3.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.4.0.tgz#359140c051d36a4e4b1a5fc6b910152f438a8d49"
|
||||||
|
|
||||||
|
chai@^3.5.0:
|
||||||
|
version "3.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247"
|
||||||
|
dependencies:
|
||||||
|
assertion-error "^1.0.1"
|
||||||
|
deep-eql "^0.1.3"
|
||||||
|
type-detect "^1.0.0"
|
||||||
|
|
||||||
|
check-error@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
|
||||||
|
|
||||||
|
concat-map@0.0.1:
|
||||||
|
version "0.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
|
|
||||||
|
deep-eql@^0.1.3:
|
||||||
|
version "0.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2"
|
||||||
|
dependencies:
|
||||||
|
type-detect "0.1.1"
|
||||||
|
|
||||||
|
define-properties@^1.1.2:
|
||||||
|
version "1.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
|
||||||
|
dependencies:
|
||||||
|
foreach "^2.0.5"
|
||||||
|
object-keys "^1.0.8"
|
||||||
|
|
||||||
|
early@^2.1.1:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/early/-/early-2.1.1.tgz#841e23254ea5dc54d8afaeee82f5ab65c00ee23c"
|
||||||
|
dependencies:
|
||||||
|
beautycolor "^1.0.7"
|
||||||
|
smartq "^1.1.1"
|
||||||
|
typings-global "^1.0.16"
|
||||||
|
|
||||||
|
es-abstract@^1.5.1:
|
||||||
|
version "1.7.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
|
||||||
|
dependencies:
|
||||||
|
es-to-primitive "^1.1.1"
|
||||||
|
function-bind "^1.1.0"
|
||||||
|
is-callable "^1.1.3"
|
||||||
|
is-regex "^1.0.3"
|
||||||
|
|
||||||
|
es-to-primitive@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
|
||||||
|
dependencies:
|
||||||
|
is-callable "^1.1.1"
|
||||||
|
is-date-object "^1.0.1"
|
||||||
|
is-symbol "^1.0.1"
|
||||||
|
|
||||||
|
es6-error@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.2.tgz#eec5c726eacef51b7f6b73c20db6e1b13b069c98"
|
||||||
|
|
||||||
|
foreach@^2.0.5:
|
||||||
|
version "2.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
|
||||||
|
|
||||||
|
fs.realpath@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||||
|
|
||||||
|
function-bind@^1.0.2, function-bind@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
|
||||||
|
|
||||||
|
glob@^7.0.0:
|
||||||
|
version "7.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
|
||||||
|
dependencies:
|
||||||
|
fs.realpath "^1.0.0"
|
||||||
|
inflight "^1.0.4"
|
||||||
|
inherits "2"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
once "^1.3.0"
|
||||||
|
path-is-absolute "^1.0.0"
|
||||||
|
|
||||||
|
has@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
|
||||||
|
dependencies:
|
||||||
|
function-bind "^1.0.2"
|
||||||
|
|
||||||
|
inflight@^1.0.4:
|
||||||
|
version "1.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||||
|
dependencies:
|
||||||
|
once "^1.3.0"
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
inherits@2:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||||
|
|
||||||
|
interpret@^1.0.0:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
|
||||||
|
|
||||||
|
is-callable@^1.1.1, is-callable@^1.1.3:
|
||||||
|
version "1.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
|
||||||
|
|
||||||
|
is-date-object@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
|
||||||
|
|
||||||
|
is-regex@^1.0.3:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
|
||||||
|
dependencies:
|
||||||
|
has "^1.0.1"
|
||||||
|
|
||||||
|
is-symbol@^1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
|
||||||
|
|
||||||
|
isexe@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||||
|
|
||||||
|
leakage@^0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/leakage/-/leakage-0.3.0.tgz#15d698abdc76bbc6439601f4f3020e77e2d50c39"
|
||||||
|
dependencies:
|
||||||
|
es6-error "^4.0.2"
|
||||||
|
left-pad "^1.1.3"
|
||||||
|
memwatch-next "^0.3.0"
|
||||||
|
minimist "^1.2.0"
|
||||||
|
pretty-bytes "^4.0.2"
|
||||||
|
|
||||||
|
left-pad@^1.1.3:
|
||||||
|
version "1.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a"
|
||||||
|
|
||||||
|
lik@^1.0.38:
|
||||||
|
version "1.0.38"
|
||||||
|
resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.38.tgz#ccff0abd3d9236a5e4b7d80d514c5c210f18469b"
|
||||||
|
dependencies:
|
||||||
|
"@types/lodash" "^4.14.67"
|
||||||
|
"@types/minimatch" "2.x.x"
|
||||||
|
"@types/q" "1.x.x"
|
||||||
|
lodash "^4.17.4"
|
||||||
|
minimatch "^3.0.4"
|
||||||
|
q "^1.5.0"
|
||||||
|
rxjs "^5.4.1"
|
||||||
|
smartq "^1.1.1"
|
||||||
|
typings-global "^1.0.19"
|
||||||
|
|
||||||
|
lodash@^4.17.4:
|
||||||
|
version "4.17.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
|
||||||
|
|
||||||
|
memwatch-next@^0.3.0:
|
||||||
|
version "0.3.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/memwatch-next/-/memwatch-next-0.3.0.tgz#2111050f9a906e0aa2d72a4ec0f0089c78726f8f"
|
||||||
|
dependencies:
|
||||||
|
bindings "^1.2.1"
|
||||||
|
nan "^2.3.2"
|
||||||
|
|
||||||
|
minimatch@^3.0.4:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
|
||||||
|
dependencies:
|
||||||
|
brace-expansion "^1.1.7"
|
||||||
|
|
||||||
|
minimist@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||||
|
|
||||||
|
nan@^2.3.2:
|
||||||
|
version "2.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
|
||||||
|
|
||||||
|
object-keys@^1.0.8:
|
||||||
|
version "1.0.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
|
||||||
|
|
||||||
|
object.getownpropertydescriptors@^2.0.3:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
|
||||||
|
dependencies:
|
||||||
|
define-properties "^1.1.2"
|
||||||
|
es-abstract "^1.5.1"
|
||||||
|
|
||||||
|
once@^1.3.0:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
|
dependencies:
|
||||||
|
wrappy "1"
|
||||||
|
|
||||||
|
path-is-absolute@^1.0.0:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||||
|
|
||||||
|
path-parse@^1.0.5:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
|
||||||
|
|
||||||
|
pretty-bytes@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9"
|
||||||
|
|
||||||
|
q@^1.5.0:
|
||||||
|
version "1.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1"
|
||||||
|
|
||||||
|
rechoir@^0.6.2:
|
||||||
|
version "0.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
|
||||||
|
dependencies:
|
||||||
|
resolve "^1.1.6"
|
||||||
|
|
||||||
|
resolve@^1.1.6:
|
||||||
|
version "1.4.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
|
||||||
|
dependencies:
|
||||||
|
path-parse "^1.0.5"
|
||||||
|
|
||||||
|
rxjs@^5.4.1:
|
||||||
|
version "5.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.2.tgz#2a3236fcbf03df57bae06fd6972fd99e5c08fcf7"
|
||||||
|
dependencies:
|
||||||
|
symbol-observable "^1.0.1"
|
||||||
|
|
||||||
|
semver@^5.3.0:
|
||||||
|
version "5.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
|
||||||
|
|
||||||
|
shelljs@^0.7.8:
|
||||||
|
version "0.7.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
|
||||||
|
dependencies:
|
||||||
|
glob "^7.0.0"
|
||||||
|
interpret "^1.0.0"
|
||||||
|
rechoir "^0.6.2"
|
||||||
|
|
||||||
|
smartchai@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartchai/-/smartchai-1.0.3.tgz#de6d010bb8b5aef24cb70b31a5f5334e8c41b72f"
|
||||||
|
dependencies:
|
||||||
|
"@types/chai" "^3.4.35"
|
||||||
|
"@types/chai-as-promised" "0.0.29"
|
||||||
|
"@types/chai-string" "^1.1.30"
|
||||||
|
chai "^3.5.0"
|
||||||
|
chai-as-promised "^6.0.0"
|
||||||
|
chai-string "^1.3.0"
|
||||||
|
|
||||||
|
smartdelay@^1.0.3:
|
||||||
|
version "1.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartdelay/-/smartdelay-1.0.3.tgz#5fd44dad77262d110702f0293efa80c072cfb579"
|
||||||
|
dependencies:
|
||||||
|
smartq "^1.1.1"
|
||||||
|
typings-global "^1.0.16"
|
||||||
|
|
||||||
|
smartq@^1.1.1, smartq@^1.1.6:
|
||||||
|
version "1.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.6.tgz#0c1ff4336d95e95b4f1fdd8ccd7e2c5a323b8412"
|
||||||
|
dependencies:
|
||||||
|
typings-global "^1.0.19"
|
||||||
|
util.promisify "^1.0.0"
|
||||||
|
|
||||||
|
smartshell@^1.0.6:
|
||||||
|
version "1.0.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/smartshell/-/smartshell-1.0.13.tgz#277b34e6624df70003e0e3a6c900cd5ebab7eb92"
|
||||||
|
dependencies:
|
||||||
|
"@types/shelljs" "^0.7.2"
|
||||||
|
"@types/which" "^1.0.28"
|
||||||
|
shelljs "^0.7.8"
|
||||||
|
smartq "^1.1.6"
|
||||||
|
typings-global "^1.0.19"
|
||||||
|
which "^1.2.14"
|
||||||
|
|
||||||
|
symbol-observable@^1.0.1:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
|
||||||
|
|
||||||
|
systemjs@^0.20.17:
|
||||||
|
version "0.20.17"
|
||||||
|
resolved "https://registry.yarnpkg.com/systemjs/-/systemjs-0.20.17.tgz#b3143bb7e02d2f41b9a640351a06024b7b63ae59"
|
||||||
|
|
||||||
|
tapbundle@^1.1.1:
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.1.tgz#ec4172c0e82a77b1f6133fef2606311ede28a62d"
|
||||||
|
dependencies:
|
||||||
|
early "^2.1.1"
|
||||||
|
leakage "^0.3.0"
|
||||||
|
smartchai "^1.0.3"
|
||||||
|
smartdelay "^1.0.3"
|
||||||
|
smartq "^1.1.1"
|
||||||
|
typings-global "^1.0.19"
|
||||||
|
|
||||||
|
type-detect@0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822"
|
||||||
|
|
||||||
|
type-detect@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2"
|
||||||
|
|
||||||
|
typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20:
|
||||||
|
version "1.0.20"
|
||||||
|
resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.20.tgz#3da769c54db538247c5d877d1d9e97eb2ec981ff"
|
||||||
|
dependencies:
|
||||||
|
semver "^5.3.0"
|
||||||
|
smartshell "^1.0.6"
|
||||||
|
|
||||||
|
util.promisify@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
|
||||||
|
dependencies:
|
||||||
|
define-properties "^1.1.2"
|
||||||
|
object.getownpropertydescriptors "^2.0.3"
|
||||||
|
|
||||||
|
which@^1.2.14:
|
||||||
|
version "1.2.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
|
||||||
|
dependencies:
|
||||||
|
isexe "^2.0.0"
|
||||||
|
|
||||||
|
wrappy@1:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
Reference in New Issue
Block a user