Browse Source

Merge pull request #8396 from mukulmishra18/streams-lib

Adds streams-lib polyfill and exports ReadableStream from shared/util.
Yury Delendik 8 years ago committed by GitHub
parent
commit
bd288df909
  1. 1
      .eslintignore
  2. 21
      external/streams/LICENSE.md
  3. 9
      external/streams/README.md
  4. 3961
      external/streams/streams-lib.js
  5. 10
      gulpfile.js
  6. 2
      src/shared/util.js
  7. 14
      test/unit/util_spec.js

1
.eslintignore

@ -8,6 +8,7 @@ external/webL10n/ @@ -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

@ -0,0 +1,21 @@ @@ -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) 2013–2015 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

@ -0,0 +1,9 @@ @@ -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

File diff suppressed because it is too large Load Diff

10
gulpfile.js

@ -1018,8 +1018,7 @@ gulp.task('lib', ['buildnumber'], function () { @@ -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 () { @@ -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 () { @@ -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/**/*',

2
src/shared/util.js

@ -15,6 +15,7 @@ @@ -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 { @@ -1419,6 +1420,7 @@ export {
readUint16,
readUint32,
removeNullCharacters,
ReadableStream,
setVerbosityLevel,
shadow,
string32,

14
test/unit/util_spec.js

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
*/
import {
removeNullCharacters, stringToPDFString
ReadableStream, removeNullCharacters, stringToPDFString
} from '../../src/shared/util';
describe('util', function() {
@ -51,4 +51,16 @@ 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');
});
});
});

Loading…
Cancel
Save