UNPKG

6.54 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(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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFDL0IsK0JBQStCO0FBRS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNVLFFBQUEsR0FBRyxHQUFHO0lBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDekIsT0FBTyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsSUFBSSxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDNUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDckIsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDM0IsT0FBTyxFQUFFLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDL0IsUUFBUSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQztDQUNoQyxDQUFDO0FBRUYsMkJBQTJCO0FBQzNCLFNBQVMsUUFBUSxDQUFDLENBQVMsRUFBRSxHQUFXO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsQ0FBUztJQUNyQyxJQUFJLENBQUMsV0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7UUFDdkIsT0FBTyxFQUFFLENBQUM7S0FDYjtJQUNELDJCQUEyQjtJQUMzQixPQUFPLFFBQVEsQ0FBQyxjQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBTkQsMENBTUM7QUFFRCxXQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7QUFDeEIsV0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZGVidWcgZnJvbSBcImRlYnVnXCI7XG5pbXBvcnQgeyBpbnNwZWN0IH0gZnJvbSBcInV0aWxcIjtcblxuLyoqXG4gKiBGYWFzdC5qcyBsb2dnZXJzLlxuICogQHJlbWFya3NcbiAqIFVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLCBlYWNoIGxvZyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IHVubGVzcyB0aGUgdmFsdWVcbiAqIG9mIHRoZSBERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUuIEZvclxuICogZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqICAgJCBERUJVRz1mYWFzdDppbmZvLGZhYXN0OnByb3ZpZGVyIDxjbWQ+XG4gKiAgICQgREVCVUc9ZmFhc3Q6KiA8Y21kPlxuICogYGBgXG4gKlxuICogTG9ncyBjYW4gYWxzbyBiZSBlbmFibGVkIG9yIGRpc2FibGVkIHByb2dyYW1tYXRpY2FsbHk6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBsb2cgfSBmcm9tIFwiZmFhc3Rqc1wiXG4gKiBsb2cuaW5mby5lbmFibGVkID0gdHJ1ZTtcbiAqIGxvZy5wcm92aWRlci5lbmFibGVkID0gdHJ1ZTtcbiAqIGBgYFxuICpcbiAqIEVhY2ggbG9nIG91dHB1dHMgc3BlY2lmaWMgaW5mb3JtYXRpb246XG4gKlxuICogYGluZm9gIC0gR2VuZXJhbCBpbmZvcm1hdGlvbmFsIGxvZ2dpbmcuXG4gKlxuICogYG1pbmltYWxgIC0gT3V0cHV0cyBvbmx5IGJhc2ljIGluZm9ybWF0aW9uIGxpa2UgdGhlIGZ1bmN0aW9uIG5hbWUgY3JlYXRlZCBpblxuICogdGhlIGNsb3VkLlxuICpcbiAqIGB3YXJuYCAtIFdhcm5pbmdzLiBFbmFibGVkIGJ5IGRlZmF1bHQuXG4gKlxuICogYGdjYCAtIEdhcmJhZ2UgY29sbGVjdGlvbiB2ZXJib3NlIGxvZ2dpbmcuXG4gKlxuICogYGxlYWtzYCAtIE1lbW9yeSBsZWFrIGRldGVjdG9yIHdhcm5pbmdzIGZvciB0aGUgY2xvdWQgZnVuY3Rpb24uIEVuYWJsZWQgYnlcbiAqIGRlZmF1bHQuXG4gKlxuICogYGNhbGxzYCAtIFZlcmJvc2UgbG9nZ2luZyBvZiBlYWNoIGZhYXN0LmpzIGVuYWJsZWQgZnVuY3Rpb24gaW52b2NhdGlvbi5cbiAqXG4gKiBgd2VicGFja2AgLSBWZXJib3NlIGxvZ2dpbmcgZnJvbSB3ZWJwYWNrIGFuZCBwYWNrYWdpbmcgZGV0YWlscy5cbiAqXG4gKiBgcHJvdmlkZXJgIC0gVmVyYm9zZSBsb2dnaW5nIG9mIGVhY2ggaW50ZXJhY3Rpb24gYmV0d2VlbiBmYWFzdC5qcyBydW50aW1lIGFuZFxuICogdGhlIHByb3ZpZGVyLXNwZWNpZmljIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIGBhd3NzZGtgIC0gVmVyYm9zZSBsb2dnaW5nIG9mIEFXUyBTREsuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaWRlbnRpZnlpbmdcbiAqIHdoaWNoIEFQSSBjYWxscyBhcmUgZmFpbGluZywgcmV0cnlpbmcsIG9yIGVuY291bnRlcmluZyByYXRlIGxpbWl0cy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBsb2cgPSB7XG4gICAgaW5mbzogZGVidWcoXCJmYWFzdDppbmZvXCIpLFxuICAgIG1pbmltYWw6IGRlYnVnKFwiZmFhc3Q6bWluaW1hbFwiKSxcbiAgICB3YXJuOiBkZWJ1ZyhcImZhYXN0Ondhcm5pbmdcIiksXG4gICAgZ2M6IGRlYnVnKFwiZmFhc3Q6Z2NcIiksXG4gICAgbGVha3M6IGRlYnVnKFwiZmFhc3Q6bGVha3NcIiksXG4gICAgY2FsbHM6IGRlYnVnKFwiZmFhc3Q6Y2FsbHNcIiksXG4gICAgd2VicGFjazogZGVidWcoXCJmYWFzdDp3ZWJwYWNrXCIpLFxuICAgIHByb3ZpZGVyOiBkZWJ1ZyhcImZhYXN0OnByb3ZpZGVyXCIpLFxuICAgIGF3c3NkazogZGVidWcoXCJmYWFzdDphd3NzZGtcIilcbn07XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gdHJ1bmNhdGUoczogc3RyaW5nLCBsZW46IG51bWJlcikge1xuICAgIHJldHVybiBzLmxlbmd0aCA+IGxlbiA/IGAke3Muc3Vic3RyKDAsIGxlbil9Li4uYCA6IHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNwZWN0UHJvdmlkZXIobzogb2JqZWN0KSB7XG4gICAgaWYgKCFsb2cucHJvdmlkZXIuZW5hYmxlZCkge1xuICAgICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG4gICAgcmV0dXJuIHRydW5jYXRlKGluc3BlY3QobywgZmFsc2UsIDMpLCAxMDI0KTtcbn1cblxubG9nLndhcm4uZW5hYmxlZCA9IHRydWU7XG5sb2cubGVha3MuZW5hYmxlZCA9IHRydWU7XG4iXX0=
\No newline at end of file