UNPKG

@vmutafov/firebase-auth-node-persistence

Version:

Configurable file-based Firebase Authentication NodeJS persistence

74 lines (72 loc) 2.43 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { createNodeFilePersistence: () => createNodeFilePersistence }); module.exports = __toCommonJS(src_exports); var import_node_fs = require("fs"); var import_promises = require("fs/promises"); function createNodeFilePersistence(opts) { var _a; function defaultGetStorage() { if (!(0, import_node_fs.existsSync)(opts.filePath)) { return {}; } const storageContent = (0, import_node_fs.readFileSync)(opts.filePath, { encoding: "utf-8" }); return JSON.parse(storageContent); } async function defaultSetStorage(storage) { await (0, import_promises.writeFile)(opts.filePath, JSON.stringify(storage, null, 2), { encoding: "utf-8" }); } return _a = class { constructor() { this.type = "NONE"; this.getStorage = opts.getStorage || defaultGetStorage; this.setStorage = opts.setStorage || defaultSetStorage; this.filePath = opts.filePath; this.storage = this.getStorage(); } async _isAvailable() { return true; } async _set(key, value) { this.storage[key] = value; await this.setStorage(this.storage); } async _get(key) { const value = this.storage[key]; return value === void 0 ? null : value; } async _remove(key) { delete this.storage[key]; await this.setStorage(this.storage); } _addListener(_key, _listener) { return; } _removeListener(_key, _listener) { return; } }, _a.type = "NONE", _a; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createNodeFilePersistence });