diff --git a/package.json b/package.json index cc838aa..c69675b 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,12 @@ "version": "0.2.3", "description": "A DNS zone file parser and generator", "main": "lib/index", + "types": "lib/index.d.ts", "scripts": { - "compile": "rm -rf lib; babel --presets env src -d lib", + "compile": "rm -rf lib; babel --presets env src -d lib && npm run copy-ts-declarations", "prepublish": "npm run compile", - "test": "npm run compile; node lib/testing/unitTests.js" + "test": "npm run compile; node lib/testing/unitTests.js", + "copy-ts-declarations": "cd src/ && find . -name '*.d.ts' -exec cp --parents '{}' ../lib/ \\; && cd ../" }, "repository": { "type": "git", diff --git a/src/index.d.ts b/src/index.d.ts new file mode 100644 index 0000000..c2be03b --- /dev/null +++ b/src/index.d.ts @@ -0,0 +1,25 @@ +export declare interface JsonZoneFile { + $origin?: string + $ttl?: number + txt?: { name: string, txt: string, ttl?: number }[] + soa?: { name: string, minimum: number, expire: number, retry: number, refresh: number, serial: number, rname: string, mname: string, ttl?: number }[] + ns?: { name: string, host: string, ttl?: number }[] + a?: { name: string, ip: string, ttl?: number }[] + aaaa?: { name: string, ip: string, ttl?: number }[] + cname?: { name: string, alias: string, ttl?: number }[] + mx?: { name: string, preference: number, host: string, ttl?: number }[] + ptr?: { name: string, fullname: string, host: string, ttl?: number }[] + srv?: { name: string, target: string, priority: number, weight: number, port: number, ttl?: number }[] + spf?: { name: string, data: string, ttl?: number }[] + uri?: { name: string, target: string, priority: number, weight: number, ttl?: number }[] +} + +export declare function makeZoneFile(jsonZoneFile: JsonZoneFile, template?: string): string; + +export declare function parseZoneFile(text: string): JsonZoneFile; + +export declare class ZoneFile { + constructor(zoneFile: JsonZoneFile|string); + toJSON(): JsonZoneFile; + toString(): string; +}