mono/packages/osrl/plugins/ds.js
2025-12-30 16:33:03 +01:00

125 lines
11 KiB
JavaScript

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.register = exports.testDS = void 0;
const liquid_1 = require("../liquidjs/liquid");
const sheets_1 = require("../lib/net/sheets");
const jsonpath = require("jsonpath");
const cacache_1 = require("cacache");
const index_1 = require("../index");
const constants_1 = require("../constants");
const exists_1 = require("@plastichub/fs/exists");
const dir_1 = require("@plastichub/fs/dir");
const osr_commons_1 = require("@plastichub/osr-commons");
const fs_path = require("path");
const cache_path = (_namespace) => `${fs_path.resolve(fs_path.join((0, osr_commons_1.OSR_CACHE)(), _namespace))}`;
function testDS(engine) {
return __awaiter(this, void 0, void 0, function* () {
// let ret = await read('1oVEiGH4o3SV-mAA3Mb-WNVJMyYl4VMxLjWjrSw_ipJY', 'ElenaMargin');
// console.log('sheet result : ', ret);
});
}
exports.testDS = testDS;
const register = (engine) => {
engine.registerTag('googlesheet', {
parse: function (token, other) {
const args = token.args;
const tokenizer = new liquid_1.Tokenizer(args, this.liquid.options.operatorsTrie);
this.name = tokenizer.readValue();
const begin = tokenizer.p;
tokenizer.readIdentifier();
tokenizer.p = begin;
this.hash = new liquid_1.Hash(tokenizer.remaining());
},
render: function* (ctx, emitter) {
const { liquid, hash, name } = this;
let name_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(name)
? yield ((0, liquid_1.evalQuotedToken)(name))
: yield (0, liquid_1.evalToken)(name, ctx))
: name.getText();
const id = this.hash.hash['id'];
let id_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(id)
? yield ((0, liquid_1.evalQuotedToken)(id))
: yield (0, liquid_1.evalToken)(id, ctx))
: id.getText();
const range = this.hash.hash['range'];
let range_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(range)
? yield ((0, liquid_1.evalQuotedToken)(range))
: yield (0, liquid_1.evalToken)(range, ctx))
: range.getText();
const path = this.hash.hash['path'];
let path_;
if (path) {
path_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(path)
? yield ((0, liquid_1.evalQuotedToken)(path))
: yield (0, liquid_1.evalToken)(path, ctx))
: path.getText();
}
const cache = this.hash.hash['cache'];
let cache_ = true;
if (cache) {
cache_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(path)
? yield ((0, liquid_1.evalQuotedToken)(path))
: yield (0, liquid_1.evalToken)(path, ctx))
: cache.getText();
}
const assign = this.hash.hash['assign'];
let assign_;
if (assign) {
assign_ = ctx.opts.dynamicPartials
? (liquid_1.TypeGuards.isQuotedToken(assign)
? yield ((0, liquid_1.evalQuotedToken)(assign))
: yield (0, liquid_1.evalToken)(path, ctx))
: assign_.getText();
}
const cache_dir = fs_path.resolve(`${cache_path(constants_1.MODULE_NAME)}`);
if (!(0, exists_1.sync)(cache_dir)) {
(0, dir_1.sync)(cache_dir);
}
const c_integrity = `${id_}_${range_}`;
const cached = yield cacache_1.get.info(cache_dir, c_integrity);
let data = [];
if (cached && cache_) {
data = JSON.parse((yield (0, cacache_1.get)(cache_dir, c_integrity)).data.toString());
}
else {
data = yield (0, sheets_1.read)(id_, range_);
}
let ret = [];
if (path) {
try {
ret = jsonpath.query(data, path_);
if (assign_) {
ctx.bottom()[assign_] = ret[0];
liquid.owner.variables[assign_] = ret[0];
ret = '';
}
ret = ret[0];
}
catch (e) {
index_1.logger.error('error jsonpath', e);
}
}
ret = data[0];
if (cache_ && !cached) {
yield (0, cacache_1.put)(cache_dir, c_integrity, JSON.stringify(data, null, 2));
}
return ret;
}
});
};
exports.register = register;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGx1Z2lucy9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBdUk7QUFDdkksOENBQXlDO0FBQ3pDLHFDQUFvQztBQUVwQyxxQ0FBNkQ7QUFFN0Qsb0NBQWlDO0FBQ2pDLDRDQUEwQztBQUUxQyxrREFBc0Q7QUFDdEQsNENBQWtEO0FBRWxELHlEQUFtRDtBQUVuRCxnQ0FBK0I7QUFFL0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxVQUFrQixFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFBLHVCQUFTLEdBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFHdEcsU0FBc0IsTUFBTSxDQUFDLE1BQU07O1FBQy9CLHVGQUF1RjtRQUN2Rix1Q0FBdUM7SUFDM0MsQ0FBQztDQUFBO0FBSEQsd0JBR0M7QUFHTSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFO0lBRS9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1FBRTlCLEtBQUssRUFBRSxVQUFVLEtBQWUsRUFBRSxLQUFLO1lBQ25DLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUE7WUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUN4RSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFCLFNBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksYUFB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