diff --git a/docx-wasm/pkg/docx_rs.d.ts b/docx-wasm/pkg/docx_rs.d.ts index 32e6d93..d6480dc 100644 --- a/docx-wasm/pkg/docx_rs.d.ts +++ b/docx-wasm/pkg/docx_rs.d.ts @@ -1,17 +1,21 @@ /* tslint:disable */ /** +* @returns {TableCell} +*/ +export function createTableCell(): TableCell; +/** * @returns {Docx} */ export function createDocx(): Docx; /** -* @returns {Delete} -*/ -export function createDelete(): Delete; -/** * @returns {Insert} */ export function createInsert(): Insert; /** +* @returns {Delete} +*/ +export function createDelete(): Delete; +/** * @param {number} id * @returns {Numbering} */ @@ -21,24 +25,24 @@ export function createNumbering(id: number): Numbering; */ export function createTable(): Table; /** -* @returns {TableRow} -*/ -export function createTableRow(): TableRow; -/** * @returns {Paragraph} */ export function createParagraph(): Paragraph; /** -* @param {string} id -* @returns {Comment} -*/ -export function createComment(id: string): Comment; -/** * @returns {Run} */ export function createRun(): Run; /** * @param {number} id +* @returns {Comment} +*/ +export function createComment(id: number): Comment; +/** +* @returns {TableRow} +*/ +export function createTableRow(): TableRow; +/** +* @param {number} id * @param {number} start * @param {string} format * @param {string} text @@ -46,34 +50,12 @@ export function createRun(): Run; * @returns {Level} */ export function createLevel(id: number, start: number, format: string, text: string, jc: string): Level; -/** -* @returns {TableCell} -*/ -export function createTableCell(): TableCell; -export enum SpecialIndentKind { - FirstLine, - Hanging, -} -/** -*/ -export enum StyleType { - Paragraph, - Character, -} -/** -*/ export enum VMergeType { Continue, Restart, } /** */ -export enum WidthType { - DXA, - Auto, -} -/** -*/ export enum BorderType { None, Single, @@ -95,13 +77,6 @@ export enum AlignmentType { } /** */ -export enum FontPitchType { - Default, - Fixed, - Variable, -} -/** -*/ export enum BreakType { Page, Column, @@ -109,6 +84,13 @@ export enum BreakType { } /** */ +export enum FontPitchType { + Default, + Fixed, + Variable, +} +/** +*/ export enum TableAlignmentType { Center, Left, @@ -116,6 +98,24 @@ export enum TableAlignmentType { } /** */ +export enum SpecialIndentKind { + FirstLine, + Hanging, +} +/** +*/ +export enum StyleType { + Paragraph, + Character, +} +/** +*/ +export enum WidthType { + DXA, + Auto, +} +/** +*/ /** */ export class Comment { @@ -136,9 +136,9 @@ export class Comment { */ paragraph(p: Paragraph): Comment; /** -* @returns {string} +* @returns {number} */ - id(): string; + id(): number; } /** */ @@ -232,10 +232,10 @@ export class Paragraph { */ add_comment_start(comment: Comment): Paragraph; /** -* @param {string} id +* @param {number} id * @returns {Paragraph} */ - add_comment_end(id: string): Paragraph; + add_comment_end(id: number): Paragraph; /** * @param {number} alignment_type * @returns {Paragraph} @@ -311,6 +311,10 @@ export class Run { * @returns {Run} */ underline(line_type: string): Run; +/** +* @returns {Run} +*/ + vanish(): Run; } /** */ @@ -321,6 +325,26 @@ export class Table { * @returns {Table} */ add_row(row: TableRow): Table; +/** +* @param {Uint32Array} grid +* @returns {Table} +*/ + set_grid(grid: Uint32Array): Table; +/** +* @param {number} v +* @returns {Table} +*/ + indent(v: number): Table; +/** +* @param {number} v +* @returns {Table} +*/ + align(v: number): Table; +/** +* @param {number} w +* @returns {Table} +*/ + width(w: number): Table; } /** */ @@ -352,14 +376,3 @@ export class TableRow { */ add_cell(cell: TableCell): TableRow; } - -/** -* If `module_or_path` is {RequestInfo}, makes a request and -* for everything else, calls `WebAssembly.instantiate` directly. -* -* @param {RequestInfo | BufferSource | WebAssembly.Module} module_or_path -* -* @returns {Promise} -*/ -export default function init (module_or_path?: RequestInfo | BufferSource | WebAssembly.Module): Promise; - \ No newline at end of file diff --git a/docx-wasm/pkg/docx_rs.js b/docx-wasm/pkg/docx_rs.js index 6d4c729..51a026d 100644 --- a/docx-wasm/pkg/docx_rs.js +++ b/docx-wasm/pkg/docx_rs.js @@ -1,12 +1,11 @@ - -let wasm; +import * as wasm from './docx_rs_bg.wasm'; /** -* @returns {Docx} +* @returns {TableCell} */ -export function createDocx() { - const ret = wasm.createDocx(); - return Docx.__wrap(ret); +export function createTableCell() { + const ret = wasm.createTableCell(); + return TableCell.__wrap(ret); } function _assertClass(instance, klass) { @@ -15,6 +14,13 @@ function _assertClass(instance, klass) { } return instance.ptr; } +/** +* @returns {Docx} +*/ +export function createDocx() { + const ret = wasm.createDocx(); + return Docx.__wrap(ret); +} let cachegetInt32Memory = null; function getInt32Memory() { @@ -35,14 +41,6 @@ function getUint8Memory() { function getArrayU8FromWasm(ptr, len) { return getUint8Memory().subarray(ptr / 1, ptr / 1 + len); } -/** -* @returns {Delete} -*/ -export function createDelete() { - const ret = wasm.createDelete(); - return Delete.__wrap(ret); -} - /** * @returns {Insert} */ @@ -51,6 +49,14 @@ export function createInsert() { return Insert.__wrap(ret); } +/** +* @returns {Delete} +*/ +export function createDelete() { + const ret = wasm.createDelete(); + return Delete.__wrap(ret); +} + /** * @param {number} id * @returns {Numbering} @@ -68,14 +74,22 @@ export function createTable() { return Table.__wrap(ret); } -/** -* @returns {TableRow} -*/ -export function createTableRow() { - const ret = wasm.createTableRow(); - return TableRow.__wrap(ret); +let cachegetUint32Memory = null; +function getUint32Memory() { + if (cachegetUint32Memory === null || cachegetUint32Memory.buffer !== wasm.memory.buffer) { + cachegetUint32Memory = new Uint32Array(wasm.memory.buffer); + } + return cachegetUint32Memory; } +let WASM_VECTOR_LEN = 0; + +function passArray32ToWasm(arg) { + const ptr = wasm.__wbindgen_malloc(arg.length * 4); + getUint32Memory().set(arg, ptr / 4); + WASM_VECTOR_LEN = arg.length; + return ptr; +} /** * @returns {Paragraph} */ @@ -84,8 +98,6 @@ export function createParagraph() { return Paragraph.__wrap(ret); } -let WASM_VECTOR_LEN = 0; - let cachedTextEncoder = new TextEncoder('utf-8'); const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' @@ -135,22 +147,6 @@ function isLikeNone(x) { return x === undefined || x === null; } /** -* @param {string} id -* @returns {Comment} -*/ -export function createComment(id) { - const ret = wasm.createComment(passStringToWasm(id), WASM_VECTOR_LEN); - return Comment.__wrap(ret); -} - -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -function getStringFromWasm(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len)); -} -/** * @returns {Run} */ export function createRun() { @@ -158,6 +154,23 @@ export function createRun() { return Run.__wrap(ret); } +/** +* @param {number} id +* @returns {Comment} +*/ +export function createComment(id) { + const ret = wasm.createComment(id); + return Comment.__wrap(ret); +} + +/** +* @returns {TableRow} +*/ +export function createTableRow() { + const ret = wasm.createTableRow(); + return TableRow.__wrap(ret); +} + /** * @param {number} id * @param {number} start @@ -171,12 +184,12 @@ export function createLevel(id, start, format, text, jc) { return Level.__wrap(ret); } -/** -* @returns {TableCell} -*/ -export function createTableCell() { - const ret = wasm.createTableCell(); - return TableCell.__wrap(ret); +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +function getStringFromWasm(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory().subarray(ptr, ptr + len)); } const heap = new Array(32); @@ -211,33 +224,33 @@ function takeObject(idx) { } /** */ -export const SpecialIndentKind = Object.freeze({ FirstLine:0,Hanging:1, }); -/** -*/ -export const StyleType = Object.freeze({ Paragraph:0,Character:1, }); -/** -*/ export const VMergeType = Object.freeze({ Continue:0,Restart:1, }); /** */ -export const WidthType = Object.freeze({ DXA:0,Auto:1, }); -/** -*/ export const BorderType = Object.freeze({ None:0,Single:1,Thick:2,Double:3,Dotted:4,Dashed:5,DotDash:6,DotDotDash:7,Triple:8, }); /** */ export const AlignmentType = Object.freeze({ Center:0,Left:1,Right:2,Justified:3, }); /** */ -export const FontPitchType = Object.freeze({ Default:0,Fixed:1,Variable:2, }); -/** -*/ export const BreakType = Object.freeze({ Page:0,Column:1,TextWrapping:2, }); /** */ +export const FontPitchType = Object.freeze({ Default:0,Fixed:1,Variable:2, }); +/** +*/ export const TableAlignmentType = Object.freeze({ Center:0,Left:1,Right:2, }); /** */ +export const SpecialIndentKind = Object.freeze({ FirstLine:0,Hanging:1, }); +/** +*/ +export const StyleType = Object.freeze({ Paragraph:0,Character:1, }); +/** +*/ +export const WidthType = Object.freeze({ DXA:0,Auto:1, }); +/** +*/ export class Comment { static __wrap(ptr) { @@ -287,15 +300,11 @@ export class Comment { return Comment.__wrap(ret); } /** - * @returns {string} + * @returns {number} */ id() { - const retptr = 8; - const ret = wasm.comment_id(retptr, this.ptr); - const memi32 = getInt32Memory(); - const v0 = getStringFromWasm(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1]).slice(); - wasm.__wbindgen_free(memi32[retptr / 4 + 0], memi32[retptr / 4 + 1] * 1); - return v0; + const ret = wasm.comment_id(this.ptr); + return ret >>> 0; } } /** @@ -554,13 +563,13 @@ export class Paragraph { return Paragraph.__wrap(ret); } /** - * @param {string} id + * @param {number} id * @returns {Paragraph} */ add_comment_end(id) { const ptr = this.ptr; this.ptr = 0; - const ret = wasm.paragraph_add_comment_end(ptr, passStringToWasm(id), WASM_VECTOR_LEN); + const ret = wasm.paragraph_add_comment_end(ptr, id); return Paragraph.__wrap(ret); } /** @@ -721,6 +730,15 @@ export class Run { const ret = wasm.run_underline(ptr, passStringToWasm(line_type), WASM_VECTOR_LEN); return Run.__wrap(ret); } + /** + * @returns {Run} + */ + vanish() { + const ptr = this.ptr; + this.ptr = 0; + const ret = wasm.run_vanish(ptr); + return Run.__wrap(ret); + } } /** */ @@ -752,6 +770,46 @@ export class Table { const ret = wasm.table_add_row(ptr, ptr0); return Table.__wrap(ret); } + /** + * @param {Uint32Array} grid + * @returns {Table} + */ + set_grid(grid) { + const ptr = this.ptr; + this.ptr = 0; + const ret = wasm.table_set_grid(ptr, passArray32ToWasm(grid), WASM_VECTOR_LEN); + return Table.__wrap(ret); + } + /** + * @param {number} v + * @returns {Table} + */ + indent(v) { + const ptr = this.ptr; + this.ptr = 0; + const ret = wasm.table_indent(ptr, v); + return Table.__wrap(ret); + } + /** + * @param {number} v + * @returns {Table} + */ + align(v) { + const ptr = this.ptr; + this.ptr = 0; + const ret = wasm.table_align(ptr, v); + return Table.__wrap(ret); + } + /** + * @param {number} w + * @returns {Table} + */ + width(w) { + const ptr = this.ptr; + this.ptr = 0; + const ret = wasm.table_width(ptr, w); + return Table.__wrap(ret); + } } /** */ @@ -836,64 +894,16 @@ export class TableRow { } } -function init(module) { - if (typeof module === 'undefined') { - module = import.meta.url.replace(/\.js$/, '_bg.wasm'); - } - let result; - const imports = {}; - imports.wbg = {}; - imports.wbg.__wbindgen_string_new = function(arg0, arg1) { - const ret = getStringFromWasm(arg0, arg1); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_throw = function(arg0, arg1) { - throw new Error(getStringFromWasm(arg0, arg1)); - }; - imports.wbg.__wbindgen_rethrow = function(arg0) { - throw takeObject(arg0); - }; +export const __wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm(arg0, arg1); + return addHeapObject(ret); +}; - if ((typeof URL === 'function' && module instanceof URL) || typeof module === 'string' || (typeof Request === 'function' && module instanceof Request)) { +export const __wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm(arg0, arg1)); +}; - const response = fetch(module); - if (typeof WebAssembly.instantiateStreaming === 'function') { - result = WebAssembly.instantiateStreaming(response, imports) - .catch(e => { - return response - .then(r => { - if (r.headers.get('Content-Type') != 'application/wasm') { - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); - return r.arrayBuffer(); - } else { - throw e; - } - }) - .then(bytes => WebAssembly.instantiate(bytes, imports)); - }); - } else { - result = response - .then(r => r.arrayBuffer()) - .then(bytes => WebAssembly.instantiate(bytes, imports)); - } - } else { - - result = WebAssembly.instantiate(module, imports) - .then(result => { - if (result instanceof WebAssembly.Instance) { - return { instance: result, module }; - } else { - return result; - } - }); - } - return result.then(({instance, module}) => { - wasm = instance.exports; - init.__wbindgen_wasm_module = module; - - return wasm; - }); -} - -export default init; +export const __wbindgen_rethrow = function(arg0) { + throw takeObject(arg0); +}; diff --git a/docx-wasm/pkg/docx_rs_bg.d.ts b/docx-wasm/pkg/docx_rs_bg.d.ts index c5a1105..9886d60 100644 --- a/docx-wasm/pkg/docx_rs_bg.d.ts +++ b/docx-wasm/pkg/docx_rs_bg.d.ts @@ -1,24 +1,30 @@ /* tslint:disable */ export const memory: WebAssembly.Memory; +export function __wbg_tablecell_free(a: number): void; +export function createTableCell(): number; +export function tablecell_add_paragraph(a: number, b: number): number; +export function tablecell_vertical_merge(a: number, b: number): number; +export function tablecell_grid_span(a: number, b: number): number; export function __wbg_docx_free(a: number): void; export function createDocx(): number; export function docx_add_paragraph(a: number, b: number): number; export function docx_add_table(a: number, b: number): number; export function docx_add_numbering(a: number, b: number): number; export function docx_build(a: number, b: number): void; +export function __wbg_insert_free(a: number): void; +export function createInsert(): number; export function __wbg_delete_free(a: number): void; export function createDelete(): number; -export function createInsert(): number; -export function __wbg_insert_free(a: number): void; export function __wbg_numbering_free(a: number): void; export function createNumbering(a: number): number; export function numbering_add_level(a: number, b: number): number; export function __wbg_table_free(a: number): void; export function createTable(): number; export function table_add_row(a: number, b: number): number; -export function __wbg_tablerow_free(a: number): void; -export function createTableRow(): number; -export function tablerow_add_cell(a: number, b: number): number; +export function table_set_grid(a: number, b: number, c: number): number; +export function table_indent(a: number, b: number): number; +export function table_align(a: number, b: number): number; +export function table_width(a: number, b: number): number; export function __wbg_paragraph_free(a: number): void; export function createParagraph(): number; export function paragraph_add_run(a: number, b: number): number; @@ -27,17 +33,11 @@ export function paragraph_add_delete(a: number, b: number): number; export function paragraph_add_bookmark_start(a: number, b: number, c: number, d: number, e: number): number; export function paragraph_add_bookmark_end(a: number, b: number, c: number): number; export function paragraph_add_comment_start(a: number, b: number): number; -export function paragraph_add_comment_end(a: number, b: number, c: number): number; +export function paragraph_add_comment_end(a: number, b: number): number; export function paragraph_align(a: number, b: number): number; export function paragraph_style(a: number, b: number, c: number): number; export function paragraph_indent(a: number, b: number, c: number, d: number, e: number): number; export function paragraph_numbering(a: number, b: number, c: number): number; -export function __wbg_comment_free(a: number): void; -export function createComment(a: number, b: number): number; -export function comment_author(a: number, b: number, c: number): number; -export function comment_date(a: number, b: number, c: number): number; -export function comment_paragraph(a: number, b: number): number; -export function comment_id(a: number, b: number): void; export function __wbg_run_free(a: number): void; export function createRun(): number; export function run_add_text(a: number, b: number, c: number): number; @@ -50,14 +50,19 @@ export function run_highlight(a: number, b: number, c: number): number; export function run_bold(a: number): number; export function run_italic(a: number): number; export function run_underline(a: number, b: number, c: number): number; +export function run_vanish(a: number): number; +export function __wbg_comment_free(a: number): void; +export function createComment(a: number): number; +export function comment_author(a: number, b: number, c: number): number; +export function comment_date(a: number, b: number, c: number): number; +export function comment_paragraph(a: number, b: number): number; +export function comment_id(a: number): number; +export function __wbg_tablerow_free(a: number): void; +export function createTableRow(): number; +export function tablerow_add_cell(a: number, b: number): number; export function __wbg_level_free(a: number): void; export function createLevel(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number): number; export function level_indent(a: number, b: number, c: number, d: number, e: number): number; -export function __wbg_tablecell_free(a: number): void; -export function createTableCell(): number; -export function tablecell_add_paragraph(a: number, b: number): number; -export function tablecell_vertical_merge(a: number, b: number): number; -export function tablecell_grid_span(a: number, b: number): number; export function __wbindgen_malloc(a: number): number; export function __wbindgen_realloc(a: number, b: number, c: number): number; export function __wbindgen_free(a: number, b: number): void; diff --git a/docx-wasm/pkg/docx_rs_bg.wasm b/docx-wasm/pkg/docx_rs_bg.wasm index a4978da..affdbb2 100644 Binary files a/docx-wasm/pkg/docx_rs_bg.wasm and b/docx-wasm/pkg/docx_rs_bg.wasm differ diff --git a/docx-wasm/pkg/package.json b/docx-wasm/pkg/package.json index a69d8d8..5503474 100644 --- a/docx-wasm/pkg/package.json +++ b/docx-wasm/pkg/package.json @@ -5,11 +5,11 @@ ], "version": "0.1.0", "files": [ - "index_bg.wasm", - "index.js", - "index.d.ts" + "docx_rs_bg.wasm", + "docx_rs.js", + "docx_rs.d.ts" ], - "module": "index.js", - "types": "index.d.ts", + "module": "docx_rs.js", + "types": "docx_rs.d.ts", "sideEffects": "false" } \ No newline at end of file