New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

development-tool

Package Overview
Dependencies
Maintainers
1
Versions
64
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

development-tool - npm Package Compare versions

Comparing version 0.0.2 to 0.1.0

8

lib/TaskConfig.d.ts

@@ -35,3 +35,3 @@ /// <reference types="gulp" />

export interface LoaderOption {
type: string;
type?: string;
module?: string;

@@ -51,6 +51,7 @@ configModule?: string;

loader: LoaderOption;
src: string;
dist: string;
src?: string;
dist?: string;
externalTask?: Task;
runTasks?: Src[] | ((oper: Operation, tasks: Src[]) => Src[]);
tasks?: TaskOption | TaskOption[];
}

@@ -62,2 +63,3 @@ export interface ITaskDefine {

export interface TaskConfig {
globals?: any;
env: EnvOption;

@@ -64,0 +66,0 @@ oper: Operation;

/// <reference types="gulp" />
import { Gulp, TaskCallback } from 'gulp';
import { Gulp } from 'gulp';
import { ITaskLoader } from './ITaskLoader';

@@ -14,8 +14,10 @@ import { Src, Task, TaskOption, EnvOption, TaskConfig } from './TaskConfig';

protected option: DevelopConfig;
private globals;
static create(gulp: Gulp, dirname: string, option?: DevelopConfig): Development;
private constructor(dirname, option);
run(gulp: Gulp, env: EnvOption, callback: TaskCallback): Promise<any>;
run(gulp: Gulp, env: EnvOption): Promise<any>;
private bindingConfig(cfg);
runSequence(gulp: Gulp, tasks: Src[]): Promise<any>;
protected toSquence(tasks: Array<Src | void>): Src[];
protected loadTasks(gulp: Gulp, tasks: TaskOption | TaskOption[], env: EnvOption): Promise<Src[]>;
protected setup(gulp: Gulp, config: TaskConfig, tasks: Task[]): Promise<Src[]>;

@@ -22,0 +24,0 @@ protected createLoader(option: TaskOption): ITaskLoader;

@@ -18,2 +18,3 @@ "use strict";

this.option = option;
this.globals = {};
}

@@ -27,3 +28,3 @@ static create(gulp, dirname, option) {

});
return devtool.run(gulp, options, callback);
return devtool.run(gulp, options);
});

@@ -33,8 +34,33 @@ gulp.task('default', ['build']);

}
run(gulp, env, callback) {
run(gulp, env) {
if (!env.root) {
env.root = this.dirname;
}
return Promise.all(_.map(_.isArray(this.option.tasks) ? this.option.tasks : [this.option.tasks], optask => {
console.log(chalk.grey('begin load task via loader type:'), chalk.cyan(optask.loader.type));
if (env.help) {
console.log(chalk.grey('\n... main help ...\n'));
this.printHelp(env.help);
}
return this.loadTasks(gulp, this.option.tasks, env)
.then(tseq => {
return this.runSequence(gulp, tseq);
})
.catch(err => {
console.error(err);
});
}
bindingConfig(cfg) {
cfg.globals = this.globals;
cfg.fileFilter = cfg.fileFilter || files;
cfg.runSequence = cfg.runSequence || runSequence;
return cfg;
}
runSequence(gulp, tasks) {
return runSequence(gulp, tasks);
}
toSquence(tasks) {
return _.filter(tasks, t => !!t);
}
loadTasks(gulp, tasks, env) {
return Promise.all(_.map(_.isArray(tasks) ? tasks : [tasks], optask => {
console.log(chalk.grey('begin load task via loader type:'), chalk.cyan(optask.loader.type || 'module'));
let loader = this.createLoader(optask);

@@ -65,7 +91,3 @@ let oper;

}
else {
console.log(chalk.grey('\n... help ...\n'));
this.printHelp(cfg.env.help);
}
return null;
return [];
}

@@ -77,21 +99,37 @@ else {

return this.setup(gulp, cfg, tasks);
})
.then(tsq => {
if (optask.tasks) {
_.each(_.isArray(optask.tasks) ? optask.tasks : [optask.tasks], subopt => {
subopt.src = subopt.src || optask.src;
subopt.dist = subopt.dist || optask.dist;
});
return this.loadTasks(gulp, optask.tasks, env)
.then(subseq => {
if (subseq && subseq.length > 0) {
let first = _.first(subseq);
let last = _.last(subseq);
let frn = _.isArray(first) ? _.first(first) : first;
let lsn = _.isArray(last) ? _.first(last) : last;
let subName = frn + '_' + lsn;
gulp.task(subName, () => {
return runSequence(gulp, subseq);
});
return tsq.push(subName);
}
else {
return tsq;
}
});
}
else {
return tsq;
}
});
}
})
.then(tasksq => {
return this.runSequence(gulp, tasksq);
});
}));
})).then(tsq => {
return _.flatten(tsq);
});
}
bindingConfig(cfg) {
cfg.fileFilter = cfg.fileFilter || files;
cfg.runSequence = cfg.runSequence || runSequence;
return cfg;
}
runSequence(gulp, tasks) {
return runSequence(gulp, tasks);
}
toSquence(tasks) {
return _.filter(tasks, t => !!t);
}
setup(gulp, config, tasks) {

@@ -176,3 +214,3 @@ return Promise.all(_.map(tasks, t => {

ps = ps.then(() => {
let taskErr = null, taskStop = null;
let taskErr = null, taskStop = null, len = _.isArray(task) ? (task.length - 1) : 0;
return new Promise((reslove, reject) => {

@@ -182,10 +220,14 @@ taskErr = (err) => {

};
taskStop = () => {
reslove();
taskStop = (e) => {
if (len <= 0) {
reslove();
}
else {
if (task.indexOf(e.task) >= 0) {
len--;
}
}
};
gulp.on('task_stop', () => {
reslove();
}).on('task_err', (err) => {
reject(err);
});
gulp.on('task_stop', taskStop)
.on('task_err', taskErr);
gulp.start(task, (err) => {

@@ -192,0 +234,0 @@ if (err) {

{
"name": "development-tool",
"version": "0.0.2",
"version": "0.1.0",
"description": "development build tools.",

@@ -5,0 +5,0 @@ "main": "./lib/tools.js",

@@ -113,3 +113,3 @@ import { Gulp } from 'gulp';

/**
* loader type.
* loader type, default module.
*

@@ -119,3 +119,3 @@ * @type {string}

*/
type: string;
type?: string;
/**

@@ -222,7 +222,7 @@ * module name or url

*/
src: string;
src?: string;
/**
* build folder. default 'dist'.
*/
dist: string;
dist?: string;

@@ -242,2 +242,10 @@ /**

runTasks?: Src[] | ((oper: Operation, tasks: Src[]) => Src[]);
/**
* sub tasks.
*
* @type {(TaskOption | TaskOption[])}
* @memberOf TaskOption
*/
tasks?: TaskOption | TaskOption[];
}

@@ -289,2 +297,6 @@

/**
* custom global data cache.
*/
globals?: any;
/**
* env

@@ -291,0 +303,0 @@ *

@@ -18,2 +18,10 @@ import * as _ from 'lodash';

export class Development {
/**
* global data.
*
* @private
* @type {*}
* @memberOf Development
*/
private globals: any = {};
static create(gulp: Gulp, dirname: string, option?: DevelopConfig): Development {

@@ -26,3 +34,3 @@ let devtool = new Development(dirname, option);

});
return devtool.run(gulp, options, callback);
return devtool.run(gulp, options);
});

@@ -38,9 +46,50 @@

run(gulp: Gulp, env: EnvOption, callback: TaskCallback): Promise<any> {
run(gulp: Gulp, env: EnvOption): Promise<any> {
if (!env.root) {
env.root = this.dirname;
}
return Promise.all(
_.map(_.isArray(this.option.tasks) ? <TaskOption[]>this.option.tasks : [<TaskOption>this.option.tasks], optask => {
console.log(chalk.grey('begin load task via loader type:'), chalk.cyan(optask.loader.type));
if (env.help) {
console.log(chalk.grey('\n... main help ...\n'));
this.printHelp(env.help);
}
return this.loadTasks(gulp, this.option.tasks, env)
.then(tseq => {
return this.runSequence(gulp, tseq);
})
.catch(err => {
console.error(err);
});
}
private bindingConfig(cfg: TaskConfig): TaskConfig {
cfg.globals = this.globals;
cfg.fileFilter = cfg.fileFilter || files;
cfg.runSequence = cfg.runSequence || runSequence;
return cfg;
}
/**
* run task sequence.
*
* @protected
* @param {Gulp} gulp
* @param {Src[]} tasks
* @returns {Promise<any>}
*
* @memberOf Development
*/
runSequence(gulp: Gulp, tasks: Src[]): Promise<any> {
return runSequence(gulp, tasks);
}
protected toSquence(tasks: Array<Src | void>): Src[] {
return <Src[]>_.filter(tasks, t => !!t);
}
protected loadTasks(gulp: Gulp, tasks: TaskOption | TaskOption[], env: EnvOption): Promise<Src[]> {
return Promise.all<Src[]>(
_.map(_.isArray(tasks) ? <TaskOption[]>tasks : [<TaskOption>tasks], optask => {
console.log(chalk.grey('begin load task via loader type:'), chalk.cyan(optask.loader.type || 'module'));
let loader = this.createLoader(optask);

@@ -67,7 +116,4 @@ let oper: Operation;

cfg.printHelp(_.isString(cfg.env.help) ? cfg.env.help : '');
} else {
console.log(chalk.grey('\n... help ...\n'));
this.printHelp(cfg.env.help);
}
return null;
return [];
} else {

@@ -79,35 +125,36 @@ // console.log(chalk.grey('load tasks...'));

return this.setup(gulp, cfg, tasks)
})
.then(tsq => {
if (optask.tasks) {
_.each(_.isArray(optask.tasks) ? optask.tasks : [optask.tasks], subopt => {
subopt.src = subopt.src || optask.src;
subopt.dist = subopt.dist || optask.dist;
});
return this.loadTasks(gulp, optask.tasks, env)
.then(subseq => {
if (subseq && subseq.length > 0) {
let first = _.first(subseq);
let last = _.last(subseq);
let frn = _.isArray(first) ? _.first(first) : first;
let lsn = _.isArray(last) ? _.first(last) : last;
let subName = frn + '_' + lsn;
gulp.task(subName, () => {
return runSequence(gulp, subseq);
})
return tsq.push(subName);
} else {
return tsq;
}
});
} else {
return tsq;
}
});
}
})
.then(tasksq => {
return this.runSequence(gulp, tasksq);
});
}));
})).then(tsq => {
return _.flatten(tsq);
});
}
private bindingConfig(cfg: TaskConfig): TaskConfig {
cfg.fileFilter = cfg.fileFilter || files;
cfg.runSequence = cfg.runSequence || runSequence;
return cfg;
}
/**
* run task sequence.
*
* @protected
* @param {Gulp} gulp
* @param {Src[]} tasks
* @returns {Promise<any>}
*
* @memberOf Development
*/
runSequence(gulp: Gulp, tasks: Src[]): Promise<any> {
return runSequence(gulp, tasks);
}
protected toSquence(tasks: Array<Src | void>): Src[] {
return <Src[]>_.filter(tasks, t => !!t);
}
protected setup(gulp: Gulp, config: TaskConfig, tasks: Task[]): Promise<Src[]> {

@@ -208,3 +255,3 @@ return Promise.all(_.map(tasks, t => {

ps = ps.then(() => {
let taskErr = null, taskStop = null;
let taskErr = null, taskStop = null, len = _.isArray(task) ? (task.length - 1) : 0;
return new Promise((reslove, reject) => {

@@ -214,10 +261,13 @@ taskErr = (err) => {

};
taskStop = () => {
reslove();
taskStop = (e: any) => {
if (len <= 0) {
reslove();
} else {
if ((<string[]>task).indexOf(e.task) >= 0) {
len--;
}
}
}
gulp.on('task_stop', () => {
reslove();
}).on('task_err', (err) => {
reject(err);
});
gulp.on('task_stop', taskStop)
.on('task_err', taskErr);

@@ -224,0 +274,0 @@ gulp.start(task, (err) => {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc