1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var needsQuotes = require("needsquotes");
|
4 | function displayName(name) {
|
5 | var needs = needsQuotes(name);
|
6 | if (needs.needsQuotes) {
|
7 | return needs.quotedValue;
|
8 | }
|
9 | return name;
|
10 | }
|
11 | function memberName(node) {
|
12 | var propName = displayName(node.name);
|
13 | if (node.optional) {
|
14 | return propName + '?';
|
15 | }
|
16 | return propName;
|
17 | }
|
18 | function typeDisplay(node) {
|
19 | return node.types.join('|');
|
20 | }
|
21 | function print(interfaceNodes, options) {
|
22 | var lineEnd = options.flow ? ',' : ';';
|
23 | var blocks = interfaceNodes
|
24 | .reverse()
|
25 | .map(function (node) {
|
26 | return [
|
27 | interfaceLine(node),
|
28 | node.members.map(memberLine).join('\n'),
|
29 | "}"
|
30 | ].join('\n');
|
31 | }).join('\n\n');
|
32 | return wrapper(blocks, options) + '\n';
|
33 | function interfaceLine(node) {
|
34 | if (options.flow) {
|
35 | return "export type " + nameDisplay(node) + " = {";
|
36 | }
|
37 | if (options.namespace) {
|
38 | return "export interface " + nameDisplay(node) + " {";
|
39 | }
|
40 | return "interface " + nameDisplay(node) + " {";
|
41 | }
|
42 | function memberLine(node) {
|
43 | return " " + memberName(node) + ": " + typeDisplay(node) + lineEnd;
|
44 | }
|
45 | function nameDisplay(node) {
|
46 | return node.name;
|
47 | }
|
48 | }
|
49 | exports.print = print;
|
50 | function wrapper(blocks, options) {
|
51 | if (options.namespace) {
|
52 | var lines = [
|
53 | "declare namespace " + options.namespace + " {"
|
54 | ].concat(blocks.split('\n').map(function (x) { return " " + x; }), [
|
55 | "}",
|
56 | ]);
|
57 | return lines.join('\n');
|
58 | }
|
59 | return blocks;
|
60 | }
|
61 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcmludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EseUNBQTRDO0FBRzVDLHFCQUFxQixJQUFZO0lBQzdCLElBQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUM3QixDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsb0JBQW9CLElBQWdCO0lBQ2hDLElBQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUE7SUFDekIsQ0FBQztJQUNELE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELHFCQUFxQixJQUFnQjtJQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQztBQUVELGVBQXNCLGNBQStCLEVBQUUsT0FBc0I7SUFDekUsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLElBQU0sTUFBTSxHQUFHLGNBQWM7U0FDeEIsT0FBTyxFQUFFO1NBQ1QsR0FBRyxDQUFDLFVBQUEsSUFBSTtRQUNMLE1BQU0sQ0FBQztZQUNILGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QyxHQUFHO1NBQ04sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXBCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztJQUV2Qyx1QkFBd0IsSUFBbUI7UUFDdkMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDZixNQUFNLENBQUMsaUJBQWUsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFNLENBQUE7UUFDakQsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxzQkFBb0IsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFJLENBQUE7UUFDcEQsQ0FBQztRQUNELE1BQU0sQ0FBQyxlQUFhLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBSSxDQUFDO0lBQzlDLENBQUM7SUFFRCxvQkFBb0IsSUFBZ0I7UUFDaEMsTUFBTSxDQUFDLE9BQUssVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFTLENBQUE7SUFDbEUsQ0FBQztJQUVELHFCQUFxQixJQUFtQjtRQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQztBQS9CRCxzQkErQkM7QUFFRCxpQkFBaUIsTUFBTSxFQUFFLE9BQU87SUFDNUIsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBTSxLQUFLO1lBQ1AsdUJBQXFCLE9BQU8sQ0FBQyxTQUFTLE9BQUk7aUJBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsT0FBSyxDQUFHLEVBQVIsQ0FBUSxDQUFDO1lBQ3hDLEdBQUc7VUFDTixDQUFDO1FBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW50ZXJmYWNlTm9kZSwgTWVtYmVyTm9kZX0gZnJvbSBcIi4vdHJhbnNmb3JtZXJcIjtcbmltcG9ydCBuZWVkc1F1b3RlcyA9IHJlcXVpcmUoJ25lZWRzcXVvdGVzJyk7XG5pbXBvcnQge0pzb25Uc09wdGlvbnN9IGZyb20gXCIuL2luZGV4XCI7XG5cbmZ1bmN0aW9uIGRpc3BsYXlOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbmVlZHMgPSBuZWVkc1F1b3RlcyhuYW1lKTtcblxuICAgIGlmIChuZWVkcy5uZWVkc1F1b3Rlcykge1xuICAgICAgICByZXR1cm4gbmVlZHMucXVvdGVkVmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBtZW1iZXJOYW1lKG5vZGU6IE1lbWJlck5vZGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByb3BOYW1lID0gZGlzcGxheU5hbWUobm9kZS5uYW1lKTtcbiAgICBpZiAobm9kZS5vcHRpb25hbCkge1xuICAgICAgICByZXR1cm4gcHJvcE5hbWUgKyAnPydcbiAgICB9XG4gICAgcmV0dXJuIHByb3BOYW1lO1xufVxuXG5mdW5jdGlvbiB0eXBlRGlzcGxheShub2RlOiBNZW1iZXJOb2RlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbm9kZS50eXBlcy5qb2luKCd8Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmludChpbnRlcmZhY2VOb2RlczogSW50ZXJmYWNlTm9kZVtdLCBvcHRpb25zOiBKc29uVHNPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBsaW5lRW5kID0gb3B0aW9ucy5mbG93ID8gJywnIDogJzsnO1xuICAgIGNvbnN0IGJsb2NrcyA9IGludGVyZmFjZU5vZGVzXG4gICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgLm1hcChub2RlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlTGluZShub2RlKSxcbiAgICAgICAgICAgICAgICBub2RlLm1lbWJlcnMubWFwKG1lbWJlckxpbmUpLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgIGB9YFxuICAgICAgICAgICAgXS5qb2luKCdcXG4nKVxuICAgICAgICB9KS5qb2luKCdcXG5cXG4nKTtcblxuICAgIHJldHVybiB3cmFwcGVyKGJsb2Nrcywgb3B0aW9ucykgKyAnXFxuJztcblxuICAgIGZ1bmN0aW9uIGludGVyZmFjZUxpbmUgKG5vZGU6IEludGVyZmFjZU5vZGUpOiBzdHJpbmcge1xuICAgICAgICBpZiAob3B0aW9ucy5mbG93KSB7XG4gICAgICAgICAgICByZXR1cm4gYGV4cG9ydCB0eXBlICR7bmFtZURpc3BsYXkobm9kZSl9ID0ge2BcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBgZXhwb3J0IGludGVyZmFjZSAke25hbWVEaXNwbGF5KG5vZGUpfSB7YFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgaW50ZXJmYWNlICR7bmFtZURpc3BsYXkobm9kZSl9IHtgO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1lbWJlckxpbmUobm9kZTogTWVtYmVyTm9kZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgICAke21lbWJlck5hbWUobm9kZSl9OiAke3R5cGVEaXNwbGF5KG5vZGUpfSR7bGluZUVuZH1gXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbmFtZURpc3BsYXkobm9kZTogSW50ZXJmYWNlTm9kZSkge1xuICAgICAgICByZXR1cm4gbm9kZS5uYW1lO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gd3JhcHBlcihibG9ja3MsIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9ucy5uYW1lc3BhY2UpIHtcbiAgICAgICAgY29uc3QgbGluZXMgPSBbXG4gICAgICAgICAgICBgZGVjbGFyZSBuYW1lc3BhY2UgJHtvcHRpb25zLm5hbWVzcGFjZX0ge2AsXG4gICAgICAgICAgICAuLi5ibG9ja3Muc3BsaXQoJ1xcbicpLm1hcCh4ID0+IGAgICR7eH1gKSxcbiAgICAgICAgICAgIGB9YCxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgIH1cbiAgICByZXR1cm4gYmxvY2tzO1xufVxuIl19 |
\ | No newline at end of file |