Skip to content

Commit

Permalink
committing lib
Browse files Browse the repository at this point in the history
  • Loading branch information
justinwilaby committed Feb 4, 2019
1 parent 458f612 commit 8e0180f
Show file tree
Hide file tree
Showing 14 changed files with 388 additions and 134 deletions.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
/coverage
/.nyc_output
/target
/node_modules
.idea
/lib
/pkg
1 change: 1 addition & 0 deletions lib/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from './saxWasm';
7 changes: 7 additions & 0 deletions lib/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions lib/index.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added lib/sax-wasm.wasm
Binary file not shown.
64 changes: 64 additions & 0 deletions lib/saxWasm.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
export declare class SaxEventType {
static Text: number;
static ProcessingInstruction: number;
static SGMLDeclaration: number;
static Doctype: number;
static Comment: number;
static OpenTagStart: number;
static Attribute: number;
static OpenTag: number;
static CloseTag: number;
static OpenCDATA: number;
static Cdata: number;
static CloseCDATA: number;
}
declare abstract class Reader<T> {
constructor(buf: Uint8Array, ptr: number);
protected abstract read(buf: Uint8Array, ptr: number): void;
}
export declare class Position {
line: number;
character: number;
constructor(line: number, character: number);
}
export declare class Attribute extends Reader<string | number | Position> {
static BYTES_IN_DESCRIPTOR: number;
nameEnd: Position;
nameStart: Position;
valueEnd: Position;
valueStart: Position;
name: string;
value: string;
protected read(buf: Uint8Array, ptr: number): void;
}
export declare class Text extends Reader<string | Position> {
static BYTES_IN_DESCRIPTOR: number;
end: Position;
start: Position;
value: string;
protected read(buf: Uint8Array, ptr: number): void;
}
export declare class Tag extends Reader<Attribute[] | Text[] | Position | string | number | boolean> {
name: string;
attributes: Attribute[];
textNodes: Text[];
selfClosing: boolean;
openStart: Position;
openEnd: Position;
closeStart: Position;
closeEnd: Position;
protected read(buf: Uint8Array, ptr: number): void;
}
export declare class SAXParser {
static textDecoder: TextDecoder;
static textEncoder: TextEncoder;
events: number;
eventHandler: (type: SaxEventType, detail: Reader<any> | Position | string) => void;
private wasmSaxParser;
constructor(events?: number);
write(value: string): void;
end(): void;
prepareWasm(saxWasm: Uint8Array): Promise<boolean>;
protected eventTrap: (event: number, ptr: number, len: number) => void;
}
export {};
196 changes: 196 additions & 0 deletions lib/saxWasm.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions lib/saxWasm.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 13 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
"expect.js": "^0.3.1",
"mocha": "^5.2.0",
"nyc": "^13.1.0",
"sax": "^1.2.4",
"typescript": "^3.2.4"
}
}
28 changes: 28 additions & 0 deletions src/js/__test__/benchmarks.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
const sax = require("sax");
const {SaxEventType, SAXParser} = require('../../../lib/');
const parser = sax.parser(true);
const fs = require('fs');
const path = require('path');
const doc = fs.readFileSync(path.resolve(__dirname + '/xml.xml'), {encoding:'utf8'});
const saxWasm = fs.readFileSync(path.resolve(__dirname, '../../../lib/sax-wasm.wasm'));

parser.onopentag = function() {

}

let t = Date.now();
parser.write(doc);
console.log(Date.now() - t);


const wasmParser = new SAXParser(SaxEventType.OpenTagStart);

wasmParser.eventHandler = function (event, data) {

};

wasmParser.prepareWasm(saxWasm).then(() => {
let t = Date.now();
wasmParser.write(doc);
console.log(Date.now() - t);
});
Loading

0 comments on commit 8e0180f

Please sign in to comment.