Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions sdk/storage/storage-blob/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
src/generated/**/*.ts
package-lock.json
Comment thread
KarishmaGhiya marked this conversation as resolved.
Outdated
3 changes: 0 additions & 3 deletions sdk/storage/storage-blob/.prettierrc.json

This file was deleted.

6 changes: 1 addition & 5 deletions sdk/storage/storage-blob/gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@ const zipFileName = `azurestoragejs.blob-${version}.zip`;

gulp.task("zip", function(callback) {
gulp
.src([
"browser/azure-storage.blob.js",
"browser/azure-storage.blob.min.js",
"browser/*.txt"
])
.src(["browser/azure-storage.blob.js", "browser/azure-storage.blob.min.js", "browser/*.txt"])
.pipe(zip(zipFileName))
.pipe(gulp.dest("browser"))
.on("end", callback);
Expand Down
2 changes: 1 addition & 1 deletion sdk/storage/storage-blob/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// https://github.com/karma-runner/karma-chrome-launcher
process.env.CHROME_BIN = require("puppeteer").executablePath();
require("dotenv").config({path:"../.env"});
require("dotenv").config({ path: "../.env" });

module.exports = function(config) {
config.set({
Expand Down
4 changes: 2 additions & 2 deletions sdk/storage/storage-blob/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,10 @@
"build:nodebrowser": "rollup -c 2>&1",
"build:test": "npm run build:es6 && rollup -c rollup.test.config.js 2>&1",
"build": "npm run build:es6 && npm run build:nodebrowser && npm run build:browserzip",
"check-format": "prettier --list-different --config .prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
"check-format": "prettier --list-different --config ../../.prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
"clean": "rimraf dist dist-esm dist-test typings temp browser/*.js* browser/*.zip statistics.html coverage coverage-browser .nyc_output *.tgz *.log test*.xml TEST*.xml",
"extract-api": "tsc -p . && api-extractor run --local",
"format": "prettier --write --config .prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
"format": "prettier --write --config ../../.prettierrc.json \"src/**/*.ts\" \"test/**/*.ts\" \"*.{js,json}\"",
"integration-test:browser": "karma start --single-run",
"integration-test:node": "cross-env TS_NODE_COMPILER_OPTIONS=\"{\\\"module\\\": \\\"commonjs\\\"}\" nyc mocha --compilers ts-node/register --require source-map-support/register --reporter mocha-multi --reporter-options spec=-,mocha-junit-reporter=- --full-trace --no-timeouts test/*.test.ts test/node/*.test.ts",
"integration-test": "npm run integration-test:node && npm run integration-test:browser",
Expand Down
13 changes: 3 additions & 10 deletions sdk/storage/storage-blob/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const nodeRollupConfigFactory = () => {
};
};

const browserRollupConfigFactory = isProduction => {
const browserRollupConfigFactory = (isProduction) => {
const browserRollupConfig = {
input: "dist-esm/src/index.browser.js",
output: {
Expand Down Expand Up @@ -57,20 +57,13 @@ const browserRollupConfigFactory = isProduction => {
`
}),
nodeResolve({
mainFields: ['module', 'browser'],
mainFields: ["module", "browser"],
preferBuiltins: false
}),
commonjs({
namedExports: {
events: ["EventEmitter"],
assert: [
"ok",
"deepEqual",
"equal",
"fail",
"deepStrictEqual",
"notDeepEqual"
]
assert: ["ok", "deepEqual", "equal", "fail", "deepStrictEqual", "notDeepEqual"]
}
})
]
Expand Down
21 changes: 6 additions & 15 deletions sdk/storage/storage-blob/src/Aborter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,16 +83,14 @@ export class Aborter implements AbortSignalLike {
*
* @memberof Aborter
*/
public onabort?: ((ev?: Event) => any);
public onabort?: (ev?: Event) => any;

// tslint:disable-next-line:variable-name
private _aborted: boolean = false;
private timer?: any;
private readonly parent?: Aborter;
private readonly children: Aborter[] = []; // When child object calls dispose(), remove child from here
private readonly abortEventListeners: Array<
(this: AbortSignalLike, ev?: any) => any
> = [];
private readonly abortEventListeners: Array<(this: AbortSignalLike, ev?: any) => any> = [];
// Pipeline proxies need to use "abortSignal as Aborter" in order to access non AbortSignalLike methods
// immutable primitive types
private readonly key?: string;
Expand Down Expand Up @@ -164,10 +162,7 @@ export class Aborter implements AbortSignalLike {
* @returns {Aborter}
* @memberof Aborter
*/
public withValue(
key: string,
value?: string | number | boolean | null
): Aborter {
public withValue(key: string, value?: string | number | boolean | null): Aborter {
const childCancelContext = new Aborter(this, 0, key, value);
this.children.push(childCancelContext);
return childCancelContext;
Expand All @@ -184,11 +179,7 @@ export class Aborter implements AbortSignalLike {
* @memberof Aborter
*/
public getValue(key: string): string | number | boolean | null | undefined {
for (
let parent: Aborter | undefined = this;
parent;
parent = parent.parent
) {
for (let parent: Aborter | undefined = this; parent; parent = parent.parent) {
if (parent.key === key) {
return parent.value;
}
Expand Down Expand Up @@ -216,11 +207,11 @@ export class Aborter implements AbortSignalLike {
this.onabort.call(this);
}

this.abortEventListeners.forEach(listener => {
this.abortEventListeners.forEach((listener) => {
listener.call(this);
});

this.children.forEach(child => child.cancelByParent());
this.children.forEach((child) => child.cancelByParent());

this._aborted = true;
}
Expand Down
20 changes: 5 additions & 15 deletions sdk/storage/storage-blob/src/AppendBlobURL.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ import { Aborter } from "./Aborter";
import { BlobURL } from "./BlobURL";
import { ContainerURL } from "./ContainerURL";
import { AppendBlob } from "./generated/lib/operations";
import {
IAppendBlobAccessConditions,
IBlobAccessConditions,
IMetadata
} from "./models";
import { IAppendBlobAccessConditions, IBlobAccessConditions, IMetadata } from "./models";
import { Pipeline } from "./Pipeline";
import { URLConstants } from "./utils/constants";
import { appendToURLPath, setURLParameter } from "./utils/utils.common";
Expand Down Expand Up @@ -43,10 +39,7 @@ export class AppendBlobURL extends BlobURL {
* @returns {AppendBlobURL}
* @memberof AppendBlobURL
*/
public static fromContainerURL(
containerURL: ContainerURL,
blobName: string
): AppendBlobURL {
public static fromContainerURL(containerURL: ContainerURL, blobName: string): AppendBlobURL {
return new AppendBlobURL(
appendToURLPath(containerURL.url, encodeURIComponent(blobName)),
containerURL.pipeline
Expand Down Expand Up @@ -149,8 +142,7 @@ export class AppendBlobURL extends BlobURL {
blobHTTPHeaders: options.blobHTTPHeaders,
leaseAccessConditions: options.accessConditions.leaseAccessConditions,
metadata: options.metadata,
modifiedAccessConditions:
options.accessConditions.modifiedAccessConditions
modifiedAccessConditions: options.accessConditions.modifiedAccessConditions
});
}

Expand All @@ -175,11 +167,9 @@ export class AppendBlobURL extends BlobURL {
options.accessConditions = options.accessConditions || {};
return this.appendBlobContext.appendBlock(body, contentLength, {
abortSignal: aborter,
appendPositionAccessConditions:
options.accessConditions.appendPositionAccessConditions,
appendPositionAccessConditions: options.accessConditions.appendPositionAccessConditions,
leaseAccessConditions: options.accessConditions.leaseAccessConditions,
modifiedAccessConditions:
options.accessConditions.modifiedAccessConditions,
modifiedAccessConditions: options.accessConditions.modifiedAccessConditions,
onUploadProgress: options.progress,
transactionalContentMD5: options.transactionalContentMD5
});
Expand Down
5 changes: 1 addition & 4 deletions sdk/storage/storage-blob/src/BlobDownloadResponse.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,7 @@ import { Aborter } from "./Aborter";
import * as Models from "./generated/lib/models";
import { IMetadata } from "./models";
import { IRetriableReadableStreamOptions } from "./utils/RetriableReadableStream";
import {
ReadableStreamGetter,
RetriableReadableStream
} from "./utils/RetriableReadableStream";
import { ReadableStreamGetter, RetriableReadableStream } from "./utils/RetriableReadableStream";

/**
* ONLY AVAILABLE IN NODE.JS RUNTIME.
Expand Down
73 changes: 23 additions & 50 deletions sdk/storage/storage-blob/src/BlobURL.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@ import { rangeToString } from "./IRange";
import { IBlobAccessConditions, IMetadata } from "./models";
import { Pipeline } from "./Pipeline";
import { StorageURL } from "./StorageURL";
import {
DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS,
URLConstants
} from "./utils/constants";
import { DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS, URLConstants } from "./utils/constants";
import { appendToURLPath, setURLParameter } from "./utils/utils.common";

export interface IBlobDownloadOptions {
Expand Down Expand Up @@ -213,11 +210,9 @@ export class BlobURL extends StorageURL {
const res = await this.blobContext.download({
abortSignal: aborter,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions,
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions,
onDownloadProgress: isNode ? undefined : options.progress,
range:
offset === 0 && !count ? undefined : rangeToString({ offset, count }),
range: offset === 0 && !count ? undefined : rangeToString({ offset, count }),
rangeGetContentMD5: options.rangeGetContentMD5,
snapshot: options.snapshot
});
Expand All @@ -232,43 +227,32 @@ export class BlobURL extends StorageURL {
// bundlers may try to bundle following code and "FileReadResponse.ts".
// In this case, "FileDownloadResponse.browser.ts" will be used as a shim of "FileDownloadResponse.ts"
// The config is in package.json "browser" field
if (
options.maxRetryRequests === undefined ||
options.maxRetryRequests < 0
) {
if (options.maxRetryRequests === undefined || options.maxRetryRequests < 0) {
// TODO: Default value or make it a required parameter?
options.maxRetryRequests = DEFAULT_MAX_DOWNLOAD_RETRY_REQUESTS;
}

if (res.contentLength === undefined) {
throw new RangeError(
`File download response doesn't contain valid content length header`
);
throw new RangeError(`File download response doesn't contain valid content length header`);
}

if (!res.eTag) {
throw new RangeError(
`File download response doesn't contain valid etag header`
);
throw new RangeError(`File download response doesn't contain valid etag header`);
}

return new BlobDownloadResponse(
aborter,
res,
async (start: number): Promise<NodeJS.ReadableStream> => {
const updatedOptions: Models.BlobDownloadOptionalParams = {
leaseAccessConditions: options.blobAccessConditions!
.leaseAccessConditions,
leaseAccessConditions: options.blobAccessConditions!.leaseAccessConditions,
modifiedAccessConditions: {
ifMatch:
options.blobAccessConditions!.modifiedAccessConditions!.ifMatch ||
res.eTag,
ifModifiedSince: options.blobAccessConditions!
.modifiedAccessConditions!.ifModifiedSince,
ifNoneMatch: options.blobAccessConditions!.modifiedAccessConditions!
.ifNoneMatch,
ifUnmodifiedSince: options.blobAccessConditions!
.modifiedAccessConditions!.ifUnmodifiedSince
ifMatch: options.blobAccessConditions!.modifiedAccessConditions!.ifMatch || res.eTag,
ifModifiedSince: options.blobAccessConditions!.modifiedAccessConditions!
.ifModifiedSince,
ifNoneMatch: options.blobAccessConditions!.modifiedAccessConditions!.ifNoneMatch,
ifUnmodifiedSince: options.blobAccessConditions!.modifiedAccessConditions!
.ifUnmodifiedSince
},
range: rangeToString({
count: offset + res.contentLength! - start,
Expand Down Expand Up @@ -317,8 +301,7 @@ export class BlobURL extends StorageURL {
return this.blobContext.getProperties({
abortSignal: aborter,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions
});
}

Expand All @@ -344,8 +327,7 @@ export class BlobURL extends StorageURL {
abortSignal: aborter,
deleteSnapshots: options.deleteSnapshots,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions
});
}

Expand All @@ -360,9 +342,7 @@ export class BlobURL extends StorageURL {
* @returns {Promise<Models.BlobUndeleteResponse>}
* @memberof BlobURL
*/
public async undelete(
aborter: Aborter
): Promise<Models.BlobUndeleteResponse> {
public async undelete(aborter: Aborter): Promise<Models.BlobUndeleteResponse> {
return this.blobContext.undelete({
abortSignal: aborter
});
Expand Down Expand Up @@ -394,8 +374,7 @@ export class BlobURL extends StorageURL {
abortSignal: aborter,
blobHTTPHeaders,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions
});
}

Expand Down Expand Up @@ -424,8 +403,7 @@ export class BlobURL extends StorageURL {
abortSignal: aborter,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
metadata,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions
});
}

Expand Down Expand Up @@ -569,8 +547,7 @@ export class BlobURL extends StorageURL {
abortSignal: aborter,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
metadata: options.metadata,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions
});
}

Expand All @@ -597,22 +574,18 @@ export class BlobURL extends StorageURL {
options: IBlobStartCopyFromURLOptions = {}
): Promise<Models.BlobStartCopyFromURLResponse> {
options.blobAccessConditions = options.blobAccessConditions || {};
options.sourceModifiedAccessConditions =
options.sourceModifiedAccessConditions || {};
options.sourceModifiedAccessConditions = options.sourceModifiedAccessConditions || {};

return this.blobContext.startCopyFromURL(copySource, {
abortSignal: aborter,
leaseAccessConditions: options.blobAccessConditions.leaseAccessConditions,
metadata: options.metadata,
modifiedAccessConditions:
options.blobAccessConditions.modifiedAccessConditions,
modifiedAccessConditions: options.blobAccessConditions.modifiedAccessConditions,
sourceModifiedAccessConditions: {
sourceIfMatch: options.sourceModifiedAccessConditions.ifMatch,
sourceIfModifiedSince:
options.sourceModifiedAccessConditions.ifModifiedSince,
sourceIfModifiedSince: options.sourceModifiedAccessConditions.ifModifiedSince,
sourceIfNoneMatch: options.sourceModifiedAccessConditions.ifNoneMatch,
sourceIfUnmodifiedSince:
options.sourceModifiedAccessConditions.ifUnmodifiedSince
sourceIfUnmodifiedSince: options.sourceModifiedAccessConditions.ifUnmodifiedSince
}
});
}
Expand Down
Loading