Merge pull request #8396 from mukulmishra18/streams-lib

Adds streams-lib polyfill and exports ReadableStream from shared/util.
This commit is contained in:
Yury Delendik 2017-05-31 08:42:48 -05:00 committed by GitHub
commit bd288df909
7 changed files with 4015 additions and 3 deletions

View File

@ -8,6 +8,7 @@ external/webL10n/
external/cmapscompress/
external/builder/fixtures/
external/builder/fixtures_esprima/
external/streams/
src/shared/cffStandardStrings.js
src/shared/fonts_utils.js
test/tmp/

21
external/streams/LICENSE.md vendored Normal file
View File

@ -0,0 +1,21 @@
# WHATWG Streams Reference Implementation Licensing
For the reference implementation and tests for the WHATWG Streams Standard.
This code is dual-licensed under CC0 and the MIT license. You can choose which one you want to use.
## CC0
To the extent possible under law, the authors have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see https://creativecommons.org/publicdomain/zero/1.0/.
## MIT
Copyright (c) 20132015 Streams Standard Reference Implementation Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

9
external/streams/README.md vendored Normal file
View File

@ -0,0 +1,9 @@
# Streams API polyfill for PDF.js
This folder contains streams-lib.js file that works as a polyfill for `Streams API
in PDF.js` project.
## Steps to create streams-lib.js file
- Fork [Streams API](https://github.com/whatwg/streams/tree/master/reference-implementation) reference implementation.
- Bundle and port to es5 ref-implementation files using webpack to create commonjs module.

3961
external/streams/streams-lib.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1018,8 +1018,7 @@ gulp.task('lib', ['buildnumber'], function () {
};
var licenseHeader = fs.readFileSync('./src/license_header.js').toString();
var preprocessor2 = require('./external/builder/preprocessor2.js');
return merge([
var buildLib = merge([
gulp.src([
'src/{core,display}/*.js',
'src/shared/{compatibility,util}.js',
@ -1034,6 +1033,11 @@ gulp.task('lib', ['buildnumber'], function () {
gulp.src('test/unit/*.js', {base: '.'}),
]).pipe(transform(preprocess))
.pipe(gulp.dest('build/lib/'));
return merge([
buildLib,
gulp.src('external/streams/streams-lib.js', {base: '.'})
.pipe(gulp.dest('build/')),
]);
});
gulp.task('web-pre', ['generic', 'extension', 'jsdoc']);
@ -1327,6 +1331,8 @@ gulp.task('dist-repo-prepare', ['dist-pre'], function () {
createStringSource('bower.json', JSON.stringify(bowerManifest, null, 2));
return merge([
gulp.src('external/streams/streams-lib.js', {base: '.'})
.pipe(gulp.dest('build/dist/')),
packageJsonSrc.pipe(gulp.dest(DIST_DIR)),
bowerJsonSrc.pipe(gulp.dest(DIST_DIR)),
vinyl.src('external/dist/**/*',

View File

@ -15,6 +15,7 @@
/* globals global, process, __pdfjsdev_webpack__ */
import './compatibility';
import { ReadableStream } from '../../external/streams/streams-lib';
var globalScope = (typeof window !== 'undefined') ? window :
(typeof global !== 'undefined') ? global :
@ -1419,6 +1420,7 @@ export {
readUint16,
readUint32,
removeNullCharacters,
ReadableStream,
setVerbosityLevel,
shadow,
string32,

View File

@ -14,7 +14,7 @@
*/
import {
removeNullCharacters, stringToPDFString
ReadableStream, removeNullCharacters, stringToPDFString
} from '../../src/shared/util';
describe('util', function() {
@ -51,4 +51,16 @@ describe('util', function() {
expect(removeNullCharacters(str)).toEqual('stringWithNullChars');
});
});
describe('ReadableStream', function() {
it('should return an Object', function () {
var readable = new ReadableStream();
expect(typeof readable).toEqual('object');
});
it('should have property getReader', function () {
var readable = new ReadableStream();
expect(typeof readable.getReader).toEqual('function');
});
});
});