UNPKG

6.55 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.inspectProvider = exports.log = void 0;
4const debug = require("debug");
5const util_1 = require("util");
6/**
7 * Faast.js loggers.
8 * @remarks
9 * Unless otherwise specified, each log is disabled by default unless the value
10 * of the DEBUG environment variable is set to the corresponding value. For
11 * example:
12 *
13 * ```
14 * $ DEBUG=faast:info,faast:provider <cmd>
15 * $ DEBUG=faast:* <cmd>
16 * ```
17 *
18 * Logs can also be enabled or disabled programmatically:
19 * ```typescript
20 * import { log } from "faastjs"
21 * log.info.enabled = true;
22 * log.provider.enabled = true;
23 * ```
24 *
25 * Each log outputs specific information:
26 *
27 * `info` - General informational logging.
28 *
29 * `minimal` - Outputs only basic information like the function name created in
30 * the cloud.
31 *
32 * `warn` - Warnings. Enabled by default.
33 *
34 * `gc` - Garbage collection verbose logging.
35 *
36 * `leaks` - Memory leak detector warnings for the cloud function. Enabled by
37 * default.
38 *
39 * `calls` - Verbose logging of each faast.js enabled function invocation.
40 *
41 * `webpack` - Verbose logging from webpack and packaging details.
42 *
43 * `provider` - Verbose logging of each interaction between faast.js runtime and
44 * the provider-specific implementation.
45 *
46 * `awssdk` - Verbose logging of AWS SDK. This can be useful for identifying
47 * which API calls are failing, retrying, or encountering rate limits.
48 *
49 * @public
50 */
51exports.log = {
52 info: debug("faast:info"),
53 minimal: debug("faast:minimal"),
54 warn: debug("faast:warning"),
55 gc: debug("faast:gc"),
56 leaks: debug("faast:leaks"),
57 calls: debug("faast:calls"),
58 webpack: debug("faast:webpack"),
59 provider: debug("faast:provider"),
60 awssdk: debug("faast:awssdk")
61};
62/* istanbul ignore next */
63function truncate(s, len) {
64 return s.length > len ? `${s.substr(0, len)}...` : s;
65}
66function inspectProvider(o) {
67 if (!exports.log.provider.enabled) {
68 return "";
69 }
70 /* istanbul ignore next */
71 return truncate((0, util_1.inspect)(o, false, 3), 1024);
72}
73exports.inspectProvider = inspectProvider;
74exports.log.warn.enabled = true;
75exports.log.leaks.enabled = true;
76//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsK0JBQStCO0FBRS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNVLFFBQUEsR0FBRyxHQUFHO0lBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDekIsT0FBTyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDNUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQztDQUNoQyxDQUFDO0FBRUYsMkJBQTJCO0FBQzNCLFNBQVMsUUFBUSxDQUFDLENBQVMsRUFBRSxHQUFXO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsQ0FBUztJQUNyQyxJQUFJLENBQUMsV0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7UUFDdkIsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUNELDJCQUEyQjtJQUMzQixPQUFPLFFBQVEsQ0FBQyxJQUFBLGNBQU8sRUFBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFORCwwQ0FNQztBQUVELFdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztBQUN4QixXQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBkZWJ1ZyBmcm9tIFwiZGVidWdcIjtcbmltcG9ydCB7IGluc3BlY3QgfSBmcm9tIFwidXRpbFwiO1xuXG4vKipcbiAqIEZhYXN0LmpzIGxvZ2dlcnMuXG4gKiBAcmVtYXJrc1xuICogVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIGVhY2ggbG9nIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgdW5sZXNzIHRoZSB2YWx1ZVxuICogb2YgdGhlIERFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZS4gRm9yXG4gKiBleGFtcGxlOlxuICpcbiAqIGBgYFxuICogICAkIERFQlVHPWZhYXN0OmluZm8sZmFhc3Q6cHJvdmlkZXIgPGNtZD5cbiAqICAgJCBERUJVRz1mYWFzdDoqIDxjbWQ+XG4gKiBgYGBcbiAqXG4gKiBMb2dzIGNhbiBhbHNvIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgcHJvZ3JhbW1hdGljYWxseTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGxvZyB9IGZyb20gXCJmYWFzdGpzXCJcbiAqIGxvZy5pbmZvLmVuYWJsZWQgPSB0cnVlO1xuICogbG9nLnByb3ZpZGVyLmVuYWJsZWQgPSB0cnVlO1xuICogYGBgXG4gKlxuICogRWFjaCBsb2cgb3V0cHV0cyBzcGVjaWZpYyBpbmZvcm1hdGlvbjpcbiAqXG4gKiBgaW5mb2AgLSBHZW5lcmFsIGluZm9ybWF0aW9uYWwgbG9nZ2luZy5cbiAqXG4gKiBgbWluaW1hbGAgLSBPdXRwdXRzIG9ubHkgYmFzaWMgaW5mb3JtYXRpb24gbGlrZSB0aGUgZnVuY3Rpb24gbmFtZSBjcmVhdGVkIGluXG4gKiB0aGUgY2xvdWQuXG4gKlxuICogYHdhcm5gIC0gV2FybmluZ3MuIEVuYWJsZWQgYnkgZGVmYXVsdC5cbiAqXG4gKiBgZ2NgIC0gR2FyYmFnZSBjb2xsZWN0aW9uIHZlcmJvc2UgbG9nZ2luZy5cbiAqXG4gKiBgbGVha3NgIC0gTWVtb3J5IGxlYWsgZGV0ZWN0b3Igd2FybmluZ3MgZm9yIHRoZSBjbG91ZCBmdW5jdGlvbi4gRW5hYmxlZCBieVxuICogZGVmYXVsdC5cbiAqXG4gKiBgY2FsbHNgIC0gVmVyYm9zZSBsb2dnaW5nIG9mIGVhY2ggZmFhc3QuanMgZW5hYmxlZCBmdW5jdGlvbiBpbnZvY2F0aW9uLlxuICpcbiAqIGB3ZWJwYWNrYCAtIFZlcmJvc2UgbG9nZ2luZyBmcm9tIHdlYnBhY2sgYW5kIHBhY2thZ2luZyBkZXRhaWxzLlxuICpcbiAqIGBwcm92aWRlcmAgLSBWZXJib3NlIGxvZ2dpbmcgb2YgZWFjaCBpbnRlcmFjdGlvbiBiZXR3ZWVuIGZhYXN0LmpzIHJ1bnRpbWUgYW5kXG4gKiB0aGUgcHJvdmlkZXItc3BlY2lmaWMgaW1wbGVtZW50YXRpb24uXG4gKlxuICogYGF3c3Nka2AgLSBWZXJib3NlIGxvZ2dpbmcgb2YgQVdTIFNESy4gVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpZGVudGlmeWluZ1xuICogd2hpY2ggQVBJIGNhbGxzIGFyZSBmYWlsaW5nLCByZXRyeWluZywgb3IgZW5jb3VudGVyaW5nIHJhdGUgbGltaXRzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZyA9IHtcbiAgICBpbmZvOiBkZWJ1ZyhcImZhYXN0OmluZm9cIiksXG4gICAgbWluaW1hbDogZGVidWcoXCJmYWFzdDptaW5pbWFsXCIpLFxuICAgIHdhcm46IGRlYnVnKFwiZmFhc3Q6d2FybmluZ1wiKSxcbiAgICBnYzogZGVidWcoXCJmYWFzdDpnY1wiKSxcbiAgICBsZWFrczogZGVidWcoXCJmYWFzdDpsZWFrc1wiKSxcbiAgICBjYWxsczogZGVidWcoXCJmYWFzdDpjYWxsc1wiKSxcbiAgICB3ZWJwYWNrOiBkZWJ1ZyhcImZhYXN0OndlYnBhY2tcIiksXG4gICAgcHJvdmlkZXI6IGRlYnVnKFwiZmFhc3Q6cHJvdmlkZXJcIiksXG4gICAgYXdzc2RrOiBkZWJ1ZyhcImZhYXN0OmF3c3Nka1wiKVxufTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiB0cnVuY2F0ZShzOiBzdHJpbmcsIGxlbjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHMubGVuZ3RoID4gbGVuID8gYCR7cy5zdWJzdHIoMCwgbGVuKX0uLi5gIDogcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3BlY3RQcm92aWRlcihvOiBvYmplY3QpIHtcbiAgICBpZiAoIWxvZy5wcm92aWRlci5lbmFibGVkKSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbiAgICByZXR1cm4gdHJ1bmNhdGUoaW5zcGVjdChvLCBmYWxzZSwgMyksIDEwMjQpO1xufVxuXG5sb2cud2Fybi5lbmFibGVkID0gdHJ1ZTtcbmxvZy5sZWFrcy5lbmFibGVkID0gdHJ1ZTtcbiJdfQ==
\No newline at end of file