dev-dep-tool
Advanced tools
Comparing version 0.2.0-dev.3 to 0.2.0
@@ -5,34 +5,33 @@ var e=require("fs") | ||
var i=require("dr-js/library/node/file/File") | ||
var o=require("dr-js/library/node/system/Run") | ||
var s=require("dr-js/library/node/file/Modify") | ||
exports.initOutput=(async({fromRoot:t,fromOutput:r,deleteKeyList:o=["private","scripts","engines","devDependencies"],copyPathList:n=["LICENSE","README.md"],logger:{padLog:a,log:u},quiet:p=!1})=>{const c=p?u:a | ||
c("reset output") | ||
await s.modify.delete(r()).catch(()=>{}) | ||
var s=require("dr-js/library/node/system/Run") | ||
var o=require("dr-js/library/node/file/Modify") | ||
var a=require("./__utils__") | ||
exports.initOutput=(async({fromRoot:t,fromOutput:r,deleteKeyList:s=["private","scripts","engines","devDependencies"],copyPathList:a=["LICENSE","README.md"],logger:{padLog:n,log:u}})=>{n("reset output") | ||
await o.modify.delete(r()).catch(()=>{}) | ||
await(0,i.createDirectory)(r()) | ||
c("init output package.json") | ||
const d=require(t("package.json")) | ||
for(const e of o)delete d[e] | ||
!p&&u(`dropped ${JSON.stringify(o)} from package.json`);(0,e.writeFileSync)(r("package.json"),JSON.stringify(d)) | ||
c(`init output file from root: ${JSON.stringify(n)}`) | ||
for(const e of n)await s.modify.copy(t(e),r(e)) | ||
return d}) | ||
exports.packOutput=(async({fromRoot:i,fromOutput:o,logger:{padLog:n,log:a},quiet:u=!1})=>{const p=u?a:n | ||
p("run pack output");(0,t.execSync)("npm pack",{cwd:o(),stdio:u?["ignore","ignore"]:"inherit",shell:!0}) | ||
p("move to root path") | ||
const c=require(o("package.json")) | ||
const d=`${c.name}-${c.version}.tgz` | ||
await s.modify.move(o(d),i(d)) | ||
p(`pack size: ${(0,r.binary)((0,e.statSync)(i(d)).size)}B`) | ||
return i(d)}) | ||
n("init output package.json") | ||
const p=require(t("package.json")) | ||
for(const e of s){delete p[e] | ||
u(`dropped key: ${e}`)}(0,e.writeFileSync)(r("package.json"),JSON.stringify(p)) | ||
n("init output file") | ||
for(const e of a){await o.modify.copy(t(e),r(e)) | ||
u(`copied: ${e}`)}return p}) | ||
exports.packOutput=(async({fromRoot:i,fromOutput:s,logger:{padLog:n,log:u}})=>{n("run pack output");(0,t.execSync)("npm pack",{cwd:s(),stdio:a.__VERBOSE__?"inherit":["ignore","ignore"],shell:!0}) | ||
u("move to root path") | ||
const p=require(s("package.json")) | ||
const c=`${p.name}-${p.version}.tgz` | ||
await o.modify.move(s(c),i(c)) | ||
n(`pack size: ${(0,r.binary)((0,e.statSync)(i(c)).size)}B`) | ||
return i(c)}) | ||
const n=e=>{const t=e.includes("publish-dev") | ||
return{isPublish:t||e.includes("publish"),isDev:t}} | ||
exports.getPublishFlag=n | ||
const a=({isDev:e,version:t})=>e?p.test(t):u.test(t) | ||
exports.checkPublishVersion=a | ||
const u=/^\d+\.\d+\.\d+$/ | ||
const p=/^\d+\.\d+\.\d+-dev\.\d+$/ | ||
exports.publishOutput=(async({flagList:e,packageJSON:t,pathPackagePack:r,extraArgs:i=[],logger:s})=>{const{isPublish:u,isDev:p}=n(e) | ||
if(!u)return s.padLog("skipped publish output, no flag found") | ||
const u=({isDev:e,version:t})=>e?c.test(t):p.test(t) | ||
exports.checkPublishVersion=u | ||
const p=/^\d+\.\d+\.\d+$/ | ||
const c=/^\d+\.\d+\.\d+-dev\.\d+$/ | ||
exports.publishOutput=(async({flagList:e,packageJSON:t,pathPackagePack:r,extraArgs:i=[],logger:o})=>{const{isPublish:a,isDev:p}=n(e) | ||
if(!a)return o.padLog("skipped publish output, no flag found") | ||
if(!r||!r.endsWith(".tgz"))throw new Error(`[publishOutput] invalid pathPackagePack: ${r}`) | ||
if(!a({isDev:p,version:t.version}))throw new Error(`[publishOutput] invalid version: ${t.version}, isDev: ${p}`) | ||
s.padLog(`${p?"publish-dev":"publish"}: ${t.version}`);(0,o.runSync)({command:"npm",argList:["publish",r,"--tag",p?"dev":"latest",...i]})}) | ||
if(!u({isDev:p,version:t.version}))throw new Error(`[publishOutput] invalid version: ${t.version}, isDev: ${p}`) | ||
o.padLog(`${p?"publish-dev":"publish"}: ${t.version}`);(0,s.runSync)({command:"npm",argList:["publish",r,"--tag",p?"dev":"latest",...i]})}) |
var e=require("fs") | ||
var r=require("dr-js/library/common/format") | ||
var s=require("./__utils__") | ||
exports.wrapFileProcessor=(({processor:o,logger:t,quiet:i=!s.__VERBOSE__})=>async s=>{const c=(0,e.readFileSync)(s,"utf8") | ||
const n=await o(c,s) | ||
if(c===n){!i&&t.log(`process skipped ${s}`) | ||
return 0}const{size:a}=(0,e.statSync)(s) | ||
n?(0,e.writeFileSync)(s,n):(0,e.unlinkSync)(s) | ||
const{size:l}=n?(0,e.statSync)(s):{size:0} | ||
const p=l-a | ||
t.devLog(`∆${(l/a).toFixed(2)}(${(0,r.binary)(p)}B)`,`${(0,r.binary)(a)}B → ${(0,r.binary)(l)}B`,`${s}`) | ||
return l-a}) | ||
exports.wrapFileProcessor=(({processor:s,logger:{log:o,devLog:t}})=>async o=>{const c=(0,e.readFileSync)(o,"utf8") | ||
const i=await s(c,o) | ||
if(c===i){t(`process skipped ${o}`) | ||
return 0}const{size:n}=(0,e.statSync)(o) | ||
i?(0,e.writeFileSync)(o,i):(0,e.unlinkSync)(o) | ||
const{size:a}=i?(0,e.statSync)(o):{size:0} | ||
const p=a-n | ||
t(`∆${(a/n).toFixed(2)}(${(0,r.binary)(p)}B)`,`${(0,r.binary)(n)}B → ${(0,r.binary)(a)}B`,`${o}`) | ||
return a-n}) | ||
exports.fileProcessorBabel=(e=>e.replace(/['"]use strict['"];?\s*/g,"").replace(/Object\.defineProperty\(exports,\s*['"]__esModule['"],\s*{\s*value:\s*(true|!0)\s*}\)[;,]?\s*/g,"").replace(/(exports\.\w+\s*=\s*)+(undefined|void 0)[;,]?\s*/g,"").replace(/[\n\r]{2,}/g,"\n").replace(/^[\n\r]+/,"")) | ||
exports.fileProcessorWebpack=(e=>e.replace(/function\s*\(\)\s*{\s*return\s+([\w$]{1,3})\s*}/g,"()=>$1")) |
var e=require("path") | ||
var i=require("fs") | ||
var t=function(e){return e&&e.__esModule?e:{default:e}}(require("uglify-es")) | ||
var t=require("fs") | ||
var i=function(e){return e&&e.__esModule?e:{default:e}}(require("uglify-es")) | ||
var o=require("dr-js/library/common/time") | ||
var r=require("dr-js/library/common/format") | ||
var l=require("./__utils__") | ||
exports.getUglifyESOption=(({isDevelopment:e=!1,isModule:i=!1})=>{return{ecma:8,toplevel:!0,parse:{ecma:8},compress:{ecma:8,toplevel:!0,join_vars:!1,sequences:!1,global_defs:{"process.env.NODE_ENV":e?"development":"production",__DEV__:Boolean(e)},inline:!1},mangle:!i&&{toplevel:!0},output:i?{ecma:8,beautify:!0,indent_level:2,width:240}:{ecma:8,beautify:!1,semicolons:!1},sourceMap:!1}}) | ||
exports.getUglifyESOption=(({isDevelopment:e=!1,isModule:t=!1})=>{return{ecma:8,toplevel:!0,parse:{ecma:8},compress:{ecma:8,toplevel:!0,join_vars:!1,sequences:!1,global_defs:{"process.env.NODE_ENV":e?"development":"production",__DEV__:Boolean(e)},inline:!1},mangle:!t&&{toplevel:!0},output:t?{ecma:8,beautify:!0,indent_level:2,width:240}:{ecma:8,beautify:!1,semicolons:!1},sourceMap:!1}}) | ||
const n=({filePath:e,option:r,logger:l})=>{const n=(0,o.clock)() | ||
const s=(0,i.readFileSync)(e,{encoding:"utf8"}) | ||
const{error:a,code:c}=t.default.minify(s,r) | ||
const s=(0,t.readFileSync)(e,{encoding:"utf8"}) | ||
const{error:a,code:c}=i.default.minify(s,r) | ||
if(a){l.padLog(`[minifyWithUglifyEs] failed to minify file: ${e}`) | ||
throw a}(0,i.writeFileSync)(e,c) | ||
throw a}(0,t.writeFileSync)(e,c) | ||
const f=(0,o.clock)() | ||
return{sizeSource:Buffer.byteLength(s),sizeOutput:Buffer.byteLength(c),timeStart:n,timeEnd:f}} | ||
exports.minifyWithUglifyEs=n | ||
exports.minifyFileListWithUglifyEs=(async({fileList:i,option:t,rootPath:s="",logger:a,quiet:c=!l.__VERBOSE__})=>{a.padLog(`minify ${i.length} file with uglify-es`) | ||
const f=[] | ||
let u=(0,o.clock)() | ||
exports.minifyFileListWithUglifyEs=(async({fileList:t,option:i,rootPath:s="",logger:a})=>{a.padLog(`minify ${t.length} file with uglify-es`) | ||
const c=[] | ||
let f=(0,o.clock)() | ||
let u=0 | ||
let p=0 | ||
let d=0 | ||
for(const o of i){const{sizeSource:i,sizeOutput:l,timeStart:u,timeEnd:m}=n({filePath:o,option:t,logger:a}) | ||
const y=l-i | ||
!c&&f.push([`∆ ${(100*y/i).toFixed(2)}% (${(0,r.binary)(y)}B)`,(0,r.time)(m-u),`${(0,e.relative)(s,o)}`]) | ||
p+=i | ||
d+=y}!c&&f.push(["--","--","--"]) | ||
f.push([`∆ ${(100*d/p).toFixed(2)}% (${(0,r.binary)(d)}B)`,(0,r.time)((0,o.clock)()-u),`TOTAL of ${i.length} file (${(0,r.binary)(p)}B)`]) | ||
a.log(`result:\n ${(0,r.padTable)({table:f,cellPad:" | ",rowPad:"\n ",padFuncList:[(e,i)=>e.padEnd(i),void 0,e=>e]})}`)}) | ||
for(const o of t){const{sizeSource:t,sizeOutput:f,timeStart:m,timeEnd:y}=n({filePath:o,option:i,logger:a}) | ||
const d=f-t | ||
u+=t | ||
p+=d | ||
l.__VERBOSE__&&c.push([`∆ ${(100*d/t).toFixed(2)}% (${(0,r.binary)(d)}B)`,(0,r.time)(y-m),`${(0,e.relative)(s,o)}`])}l.__VERBOSE__&&c.push(["--","--","--"]) | ||
c.push([`∆ ${(100*p/u).toFixed(2)}% (${(0,r.binary)(p)}B)`,(0,r.time)((0,o.clock)()-f),`TOTAL of ${t.length} file (${(0,r.binary)(u)}B)`]) | ||
a.log(`result:\n ${(0,r.padTable)({table:c,padFuncList:["L","R","L"],cellPad:" | ",rowPad:"\n "})}`) | ||
return p}) |
@@ -5,4 +5,4 @@ var e=require("fs") | ||
var o=require("dr-js/library/node/system/ProcessExitListener") | ||
var i=require("./__utils__") | ||
const s=(e,t)=>(r,o)=>{if(r)return e(r) | ||
var a=require("./__utils__") | ||
const i=(e,t)=>(r,o)=>{if(r)return e(r) | ||
if(o.hasErrors()||o.hasWarnings()){const{errors:t=[],warnings:r=[]}=o.toJson() | ||
@@ -12,17 +12,21 @@ t.forEach(e=>console.error(e)) | ||
if(o.hasErrors())return e(new Error("webpack stats Error"))}t(o)} | ||
exports.compileWithWebpack=(async({config:a,isWatch:n,profileOutput:c,logger:l,quiet:u=!i.__VERBOSE__})=>{c&&n&&l.log("[watch] warning: skipped generate profileOutput") | ||
c&&(a.profile=!0) | ||
const p=(0,t.default)(a) | ||
const g=((e,t,o)=>{const i=o?({startTime:e,endTime:o})=>{e&&o&&t.log(`compile time: ${(0,r.time)(o-e)}`)}:({compilation:{assets:o},startTime:i,endTime:s})=>{e&&t.padLog("watch") | ||
Object.entries(o).forEach(([e,o])=>o.emitted&&t.log(`emitted asset: ${e} [${(0,r.binary)(o.size())}B]`)) | ||
i&&s&&t.log(`compile time: ${(0,r.time)(s-i)}`)} | ||
return e=>{if(e.compilation)i(e) | ||
else{if(!e.stats){console.warn("[getLogStats] unexpected statData",e) | ||
throw new Error("[getLogStats] unexpected statData")}e.stats.map(i)}}})(n,l,u) | ||
if(n){!u&&l.log("[watch] start") | ||
const{eventType:e,code:t}=await new Promise(e=>{p.watch({aggregateTimeout:300,poll:void 0},s(e=>l.log(`error: ${e}`),g));(0,o.setProcessExitListener)({listenerSync:e})}) | ||
!u&&l.log(`[watch] exit with eventType: ${e}, code: ${t}`) | ||
return null}const m=await new Promise((e,t)=>p.run(s(t,e))) | ||
g(m) | ||
if(c){(0,e.writeFileSync)(c,JSON.stringify(m.toJson())) | ||
!u&&l.log(`generated profileOutput: ${c}`)}return m}) | ||
const n=(...e)=>e.filter(Boolean).join(",") | ||
exports.compileWithWebpack=(async({config:s,isWatch:c,profileOutput:l,logger:u})=>{const{log:p}=u | ||
if(l){c&&console.warn("[watch] warning: skipped generate profileOutput") | ||
s.profile=!0}const d=(0,t.default)(s) | ||
const f=((e,{padLog:t,log:o})=>{const i=({compilation:{assets:i={},chunks:s=[]},startTime:c,endTime:l})=>{c&&l&&t(`[${e?"watch":"compile"}] time: ${(0,r.time)(l-c)}`) | ||
const u=[] | ||
Object.entries(i).forEach(([e,t])=>u.push(["asset",e,`${(0,r.binary)(t.size())}B`,n(t.emitted&&"emitted")])) | ||
a.__VERBOSE__&&s.forEach(e=>u.push(["chunk",e.name||e.id,`${(0,r.binary)(e.modulesSize())}B`,n(e.canBeInitial()&&"initial",e.hasRuntime()&&"entry",e.rendered&&"rendered")])) | ||
o(`output:\n ${(0,r.padTable)({table:u,padFuncList:["L","R","R","L"],cellPad:" | ",rowPad:"\n "})}`)} | ||
return e=>{if(e.compilation)return i(e) | ||
if(e.stats)return e.stats.map(i) | ||
console.warn("[getLogStats] unexpected statData",e) | ||
throw new Error("[getLogStats] unexpected statData")}})(c,u) | ||
if(!c){p("[compile] start") | ||
const t=await new Promise((e,t)=>d.run(i(t,e))) | ||
f(t) | ||
l&&(0,e.writeFileSync)(l,JSON.stringify(t.toJson())) | ||
l&&p(`[compile] generated profileOutput at: ${l}`) | ||
return t}p("[watch] start") | ||
d.watch({aggregateTimeout:300,poll:void 0},i(e=>p(`error: ${e}`),f));(0,o.setProcessExitListener)({listenerSync:({eventType:e,code:t})=>p(`[watch] exit with eventType: ${e}, code: ${t}`)})}) |
@@ -1,1 +0,1 @@ | ||
{"name":"dev-dep-tool","version":"0.2.0-dev.3","author":"dr-js","license":"MIT","description":"Provide common package devDependencies","keywords":["Dr","Dr-js","JavaScript"],"repository":"https://github.com/dr-js/dev-dep.git","homepage":"https://github.com/dr-js/dev-dep#readme","bugs":"https://github.com/dr-js/dev-dep/issues","bin":"bin/index.js","dependencies":{"dr-js":"^0.13.2"},"sideEffects":false} | ||
{"name":"dev-dep-tool","version":"0.2.0","author":"dr-js","license":"MIT","description":"Provide common package devDependencies","keywords":["Dr","Dr-js","JavaScript"],"repository":"https://github.com/dr-js/dev-dep.git","homepage":"https://github.com/dr-js/dev-dep#readme","bugs":"https://github.com/dr-js/dev-dep/issues","bin":"bin/index.js","dependencies":{"dr-js":"^0.13.3"},"sideEffects":false} |
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
22690
335
4
Updateddr-js@^0.13.3