-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Storage] Rollup for tests in storage (#2297)
* Rename test files for consistency * rollup for node tests * this is undefined, update paths for rollup * Import dotenv in index.ts * Update output path in rollup * delete mocha report conf - pass args in live test cmd * restructure package.json similar to other pkgs * Add mocha.reporter.config to publish node results * Remove unwanted warnings, code for min version * Update gulp to zip both min and unmin versions * Update rollup to generate min and unmin versions * Add (commented) rollup visualizer * remove unused import path * remove unnecessary comment * Update rollup for tests in storage-file * Update rollup for tests in storage-queue * add rollup-plugin-json in devdependency * Update coverage commands * Update nycrc for code coverage - storage-blob * Update .nycrc - code coverage -storage{file,queue} * Update test:node command - storage-blob * Add rollup-plugin-json * Update package.json as per rush * Increase timeout to 120 seconds for tests * resolve merge conflicts * Update JavaScript Bundle file names * Update test path in karma conf * undo adding rollup-plugin-json for storage-pkgs * Update test command as the per updates to master * remove onwarn handler, update with context="null"
- Loading branch information
1 parent
0940cd5
commit 58a0881
Showing
66 changed files
with
706 additions
and
510 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
|
||
import nodeResolve from "rollup-plugin-node-resolve"; | ||
import multiEntry from "rollup-plugin-multi-entry"; | ||
import cjs from "rollup-plugin-commonjs"; | ||
import replace from "rollup-plugin-replace"; | ||
import { uglify } from "rollup-plugin-uglify"; | ||
import sourcemaps from "rollup-plugin-sourcemaps"; | ||
import shim from "rollup-plugin-shim"; | ||
// import visualizer from "rollup-plugin-visualizer"; | ||
|
||
const version = require("./package.json").version; | ||
const banner = [ | ||
"/*!", | ||
` * Azure Storage SDK for JavaScript - Blob, ${version}`, | ||
" * Copyright (c) Microsoft and contributors. All rights reserved.", | ||
" */" | ||
].join("\n"); | ||
|
||
const pkg = require("./package.json"); | ||
const depNames = Object.keys(pkg.dependencies); | ||
const production = process.env.NODE_ENV === "production"; | ||
|
||
export function nodeConfig(test = false) { | ||
const externalNodeBuiltins = ["@azure/ms-rest-js", "crypto", "fs", "events", "os", "stream"]; | ||
const baseConfig = { | ||
input: "dist-esm/src/index.js", | ||
external: depNames.concat(externalNodeBuiltins), | ||
output: { | ||
file: "dist/index.js", | ||
format: "cjs", | ||
sourcemap: true | ||
}, | ||
preserveSymlinks: false, | ||
plugins: [ | ||
sourcemaps(), | ||
replace({ | ||
delimiters: ["", ""], | ||
values: { | ||
// replace dynamic checks with if (true) since this is for node only. | ||
// Allows rollup's dead code elimination to be more aggressive. | ||
"if (isNode)": "if (true)" | ||
} | ||
}), | ||
nodeResolve({ preferBuiltins: true }), | ||
cjs() | ||
] | ||
}; | ||
|
||
if (test) { | ||
// entry point is every test file | ||
baseConfig.input = ["dist-esm/test/*.spec.js", "dist-esm/test/node/*.spec.js"]; | ||
baseConfig.plugins.unshift(multiEntry({ exports: false })); | ||
|
||
// different output file | ||
baseConfig.output.file = "dist-test/index.node.js"; | ||
|
||
// mark assert as external | ||
baseConfig.external.push("assert", "fs", "path"); | ||
|
||
baseConfig.context = "null"; | ||
} else if (production) { | ||
baseConfig.plugins.push(uglify()); | ||
} | ||
|
||
return baseConfig; | ||
} | ||
|
||
export function browserConfig(test = false, production = false) { | ||
const baseConfig = { | ||
input: "dist-esm/src/index.browser.js", | ||
external: ["ms-rest-js"], | ||
output: { | ||
file: "browser/azure-storage-blob.js", | ||
banner: banner, | ||
format: "umd", | ||
name: "azblob", | ||
sourcemap: true | ||
}, | ||
preserveSymlinks: false, | ||
plugins: [ | ||
sourcemaps(), | ||
replace({ | ||
delimiters: ["", ""], | ||
values: { | ||
// replace dynamic checks with if (false) since this is for | ||
// browser only. Rollup's dead code elimination will remove | ||
// any code guarded by if (isNode) { ... } | ||
"if (isNode)": "if (false)" | ||
} | ||
}), | ||
// os is not used by the browser bundle, so just shim it | ||
shim({ | ||
dotenv: `export function config() { }`, | ||
os: ` | ||
export const type = 1; | ||
export const release = 1; | ||
` | ||
}), | ||
nodeResolve({ | ||
mainFields: ["module", "browser"], | ||
preferBuiltins: false | ||
}), | ||
cjs({ | ||
namedExports: { | ||
events: ["EventEmitter"], | ||
assert: ["ok", "deepEqual", "equal", "fail", "deepStrictEqual", "notDeepEqual"] | ||
} | ||
}) | ||
] | ||
}; | ||
|
||
if (test) { | ||
baseConfig.input = ["dist-esm/test/*.spec.js", "dist-esm/test/browser/*.spec.js"]; | ||
baseConfig.plugins.unshift(multiEntry({ exports: false })); | ||
baseConfig.output.file = "dist-test/index.browser.js"; | ||
baseConfig.context = "null"; | ||
} else if (production) { | ||
baseConfig.output.file = "browser/azure-storage-blob.min.js"; | ||
baseConfig.plugins.push( | ||
uglify({ | ||
output: { | ||
preamble: banner | ||
} | ||
}) | ||
// Comment visualizer because it only works on Node.js 8+; Uncomment it to get bundle analysis report | ||
// visualizer({ | ||
// filename: "./statistics.html", | ||
// sourcemap: true | ||
// }) | ||
); | ||
} | ||
|
||
return baseConfig; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,95 +1,18 @@ | ||
import nodeResolve from "rollup-plugin-node-resolve"; | ||
import { uglify } from "rollup-plugin-uglify"; | ||
import replace from "rollup-plugin-replace"; | ||
import commonjs from "rollup-plugin-commonjs"; | ||
import shim from "rollup-plugin-shim"; | ||
// import visualizer from "rollup-plugin-visualizer"; | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
|
||
const version = require("./package.json").version; | ||
const banner = [ | ||
"/*!", | ||
` * Azure Storage SDK for JavaScript - Blob, ${version}`, | ||
" * Copyright (c) Microsoft and contributors. All rights reserved.", | ||
" */" | ||
].join("\n"); | ||
import * as base from "./rollup.base.config"; | ||
|
||
const nodeRollupConfigFactory = () => { | ||
return { | ||
external: ["@azure/ms-rest-js", "crypto", "fs", "events", "os", "stream"], | ||
input: "dist-esm/src/index.js", | ||
output: { | ||
file: "dist/index.js", | ||
format: "cjs", | ||
sourcemap: true | ||
}, | ||
preserveSymlinks: false, | ||
plugins: [nodeResolve(), uglify()] | ||
}; | ||
}; | ||
const inputs = []; | ||
|
||
const browserRollupConfigFactory = (isProduction) => { | ||
const browserRollupConfig = { | ||
input: "dist-esm/src/index.browser.js", | ||
output: { | ||
file: "browser/azure-storage.blob.js", | ||
banner: banner, | ||
format: "umd", | ||
name: "azblob", | ||
sourcemap: true | ||
}, | ||
preserveSymlinks: false, | ||
plugins: [ | ||
replace({ | ||
delimiters: ["", ""], | ||
values: { | ||
// replace dynamic checks with if (false) since this is for | ||
// browser only. Rollup's dead code elimination will remove | ||
// any code guarded by if (isNode) { ... } | ||
"if (isNode)": "if (false)" | ||
} | ||
}), | ||
// os is not used by the browser bundle, so just shim it | ||
shim({ | ||
dotenv: `export function config() { }`, | ||
os: ` | ||
export const type = 1; | ||
export const release = 1; | ||
` | ||
}), | ||
nodeResolve({ | ||
mainFields: ["module", "browser"], | ||
preferBuiltins: false | ||
}), | ||
commonjs({ | ||
namedExports: { | ||
events: ["EventEmitter"], | ||
assert: ["ok", "deepEqual", "equal", "fail", "deepStrictEqual", "notDeepEqual"] | ||
} | ||
}) | ||
] | ||
}; | ||
if (!process.env.ONLY_BROWSER) { | ||
inputs.push(base.nodeConfig()); | ||
} | ||
|
||
if (isProduction) { | ||
browserRollupConfig.output.file = "browser/azure-storage.blob.min.js"; | ||
browserRollupConfig.plugins.push( | ||
uglify({ | ||
output: { | ||
preamble: banner | ||
} | ||
}) | ||
// Comment visualizer because it only works on Node.js 8+; Uncomment it to get bundle analysis report | ||
// visualizer({ | ||
// filename: "./statistics.html", | ||
// sourcemap: true | ||
// }) | ||
); | ||
} | ||
// Disable this until we are ready to run rollup for the browser. | ||
if (!process.env.ONLY_NODE) { | ||
inputs.push(base.browserConfig()); | ||
inputs.push(base.browserConfig(false, true)); | ||
} | ||
|
||
return browserRollupConfig; | ||
}; | ||
|
||
export default [ | ||
browserRollupConfigFactory(false), | ||
browserRollupConfigFactory(true), | ||
nodeRollupConfigFactory() | ||
]; | ||
export default inputs; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,6 @@ | ||
import multi from "rollup-plugin-multi-entry"; | ||
import baseConfig from "./rollup.config"; | ||
import sourcemaps from "rollup-plugin-sourcemaps"; | ||
const [browser] = baseConfig; | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
|
||
browser.input = ["dist-esm/test/*.js", "dist-esm/test/browser/*.js"]; | ||
browser.output.sourcemap = "inline"; | ||
browser.output.file = "dist-test/index.browser.js"; | ||
browser.plugins.unshift(multi()); | ||
browser.plugins.unshift(sourcemaps()); | ||
browser.context = "null"; | ||
import * as base from "./rollup.base.config"; | ||
|
||
export default [browser]; | ||
export default [base.nodeConfig(true), base.browserConfig(true)]; |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.