work on archiver
This commit is contained in:
@ -0,0 +1,15 @@
|
|||||||
|
import {Packer} from "./packer";
|
||||||
|
import * as fs from 'fs';
|
||||||
|
|
||||||
|
export class LocalPacker extends Packer {
|
||||||
|
private stream: fs.WriteStream
|
||||||
|
|
||||||
|
constructor(path: string) {
|
||||||
|
super();
|
||||||
|
this.stream = fs.createWriteStream(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
pack() {
|
||||||
|
super.pack(this.stream);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,22 @@
|
|||||||
import * as archiver from "archiver";
|
import {archiver, Zip} from "archiver";
|
||||||
|
import * as fs from 'fs';
|
||||||
|
|
||||||
export class Packer {
|
export class Packer {
|
||||||
|
protected archive: Zip;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
this.archive = archiver.create("fgf", {});
|
||||||
|
}
|
||||||
|
|
||||||
|
pack(output: fs.WriteStream): void {
|
||||||
|
this.archive.pipe(output);
|
||||||
|
|
||||||
|
this.archive.bulk([
|
||||||
|
{
|
||||||
|
expand: true,
|
||||||
|
cwd: __dirname + '/template',
|
||||||
|
src: ['**', '**/.rels']
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
@ -11,7 +11,7 @@ function jsonify(obj: Object) {
|
|||||||
return JSON.parse(stringifiedJson);
|
return JSON.parse(stringifiedJson);
|
||||||
}
|
}
|
||||||
|
|
||||||
describe.only('Formatter', () => {
|
describe('Formatter', () => {
|
||||||
var formatter: Formatter;
|
var formatter: Formatter;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
19
ts/tests/localPackerTest.ts
Normal file
19
ts/tests/localPackerTest.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/// <reference path="../typings/mocha/mocha.d.ts" />
|
||||||
|
/// <reference path="../typings/chai/chai.d.ts" />
|
||||||
|
import {LocalPacker} from "../export/packer/local";
|
||||||
|
import {assert} from "chai";
|
||||||
|
|
||||||
|
describe.only('Packer', () => {
|
||||||
|
var packer: LocalPacker;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
packer = new LocalPacker("test.zip");
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('#pack()', () => {
|
||||||
|
|
||||||
|
it("should create a standard docx file", () => {
|
||||||
|
packer.pack();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
11
ts/typings/archiver/archiver.d.ts
vendored
11
ts/typings/archiver/archiver.d.ts
vendored
@ -22,21 +22,20 @@ declare module "archiver" {
|
|||||||
name?: string;
|
name?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Archiver extends STREAM.Transform {
|
export interface Zip extends STREAM.Transform {
|
||||||
pipe(writeStream: FS.WriteStream): void;
|
pipe(writeStream: FS.WriteStream): void;
|
||||||
append(readStream: FS.ReadStream, name: nameInterface): void;
|
append(readStream: FS.ReadStream, name: nameInterface): void;
|
||||||
finalize(): void;
|
finalize(): void;
|
||||||
|
bulk(mappings: any): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Options {
|
interface Options {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function archiver(format: string, options?: Options): Archiver;
|
function archiver(format: string, options?: Options): Zip;
|
||||||
|
|
||||||
namespace archiver {
|
export namespace archiver {
|
||||||
function create(format: string, options?: Options): Archiver;
|
function create(format: string, options?: Options): Zip;
|
||||||
}
|
}
|
||||||
|
|
||||||
export = archiver;
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user