New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

template-file

Package Overview
Dependencies
Maintainers
9
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

template-file - npm Package Compare versions

Comparing version 5.1.0 to 6.0.0-0

1

dist/cli.d.ts

@@ -1,2 +0,1 @@

#!/usr/bin/env node
export {};

@@ -1,65 +0,1 @@

#!/usr/bin/env node
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const meow_1 = __importDefault(require("meow"));
const path_1 = __importDefault(require("path"));
const _1 = require(".");
function main() {
return __awaiter(this, void 0, void 0, function* () {
const cli = meow_1.default(`
Usage
$ template-file <dataFile> <sourceGlob> <destination>
Arguments
data Data file in JSON; used to replace variables in source files
sourceGlob Files to process; see [glob](https://npmjs.com/glob) for syntax
destination Destination directory where processed files go
Examples
Just handle one file
$ template-file data.json template.txt build/
Compile all .abc files in src/ to build/
$ template-file stuff.json 'src/**/*.abc' build/
`);
if (cli.input.length !== 3) {
cli.showHelp(2);
}
const [dataFile, sourceGlob, destination] = cli.input;
const data = yield Promise.resolve().then(() => __importStar(require(path_1.default.resolve(dataFile))));
_1.renderToFolder(sourceGlob, destination, data);
});
}
main();
//# sourceMappingURL=cli.js.map
(()=>{var e={706:(e,t,n)=>{"use strict";n.d(t,{renderToFolder:()=>m});const r=require("@blakek/deep");var s=n(147);const o=require("glob");var i=n.n(o);const a=require("mkdirp");var c=n.n(a),u=n(17),l=n.n(u);const d=require("util");class p{value;next;constructor(e){this.value=e}}class f{#e;#t;#n;constructor(){this.clear()}enqueue(e){const t=new p(e);this.#e?(this.#t.next=t,this.#t=t):(this.#e=t,this.#t=t),this.#n++}dequeue(){const e=this.#e;if(e)return this.#e=this.#e.next,this.#n--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}}const h=function(e){if(!Number.isInteger(e)&&e!==Number.POSITIVE_INFINITY||!(e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=new f;let n=0;const r=async(e,r,s)=>{n++;const o=(async()=>e(...s))();r(o);try{await o}catch{}n--,t.size>0&&t.dequeue()()},s=(s,...o)=>new Promise((i=>{((s,o,i)=>{t.enqueue(r.bind(void 0,s,o,i)),(async()=>{await Promise.resolve(),n<e&&t.size>0&&t.dequeue()()})()})(s,i,o)}));return Object.defineProperties(s,{activeCount:{get:()=>n},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),s}(Number(process.env.TF_FILE_LIMIT)||1024);function v(e,t){const n=function(){const e=String.raw`([\s\S]*?)`,t=String.raw`\n*`,n=String.raw`\s*`,r=`{{${n}`,s=`${n}}}`,o=`${String.raw`[ \t]*`}${r}(?:#(.*?))${s}${t}`,i=String.raw`${n}${r}/\1${s}`;return new RegExp(`${o}${e}${i}|${r}(.*?)${s}`,"g")}();return e.replace(n,((e,n,s,o)=>{if(void 0!==n)return(0,r.get)(n,t).map((e=>v(s,{...e,this:e}))).join("\n");const i=(0,r.get)(o,t);return null==i?"":"function"==typeof i?i():i}))}async function g(e,t){return v(await s.promises.readFile(e,{encoding:"utf-8"}),t)}async function m(e,t,n){return await c()(t),async function(e,t,n){const r=(0,d.promisify)(i()),s=await r(e);for(const e of s){const r=await h((()=>g(e,t)));n(e,r)}}(e,n,(function(e,n){const r=l().join(t,l().basename(e));s.promises.writeFile(r,n)}))}},70:e=>{function t(e){return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}))}t.keys=()=>[],t.resolve=t,t.id=70,e.exports=t},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r);var e=n(147),t=n(17),s=n.n(t),o=n(706);!async function(){const t=process.argv.slice(2),r=t.some((e=>["-h","--help","help"].includes(e))),i=t.some((e=>["-v","--version","version"].includes(e))),a=3===t.length;if(i)return void console.log(await async function(){return(await e.promises.readFile(s().resolve(__dirname,"../package.json"),"utf-8").then(JSON.parse)).version}());!r&&a||(function(){const e=function(e){const t="\n Usage\n $ template-file <dataFile> <sourceGlob> <destination>\n\n Arguments\n dataFile Data file in JSON; used to replace variables in source files\n sourceGlob Files to process; see [glob](https://npmjs.com/glob) for syntax\n destination Destination directory where processed files go\n\n Examples\n Just handle one file\n $ template-file data.json template.txt build/\n\n Compile all .abc files in src/ to build/\n $ template-file stuff.json 'src/**/*.abc' build/\n ".replace(/^(\s*\n)*|(\s*\n)*$/g,""),n=t.match(/^\s*/)[0].length;return t.replace(new RegExp(`^ {${n}}`,"gm"),"")}();console.log(e)}(),process.exit(r?0:1));const[c,u,l]=t,d=await n(70)(s().resolve(c));(0,o.renderToFolder)(u,l,d)}()})();var s=exports;for(var o in r)s[o]=r[o];r.__esModule&&Object.defineProperty(s,"__esModule",{value:!0})})();

@@ -1,91 +0,1 @@

"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());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderToFolder = exports.renderFile = exports.render = exports.renderGlob = void 0;
const deep_1 = require("@blakek/deep");
const fs_1 = require("fs");
const glob_1 = __importDefault(require("glob"));
const mkdirp_1 = __importDefault(require("mkdirp"));
const path_1 = __importDefault(require("path"));
const util_1 = require("util");
const utils_1 = require("./utils");
function renderGlob(sourceGlob, data, onFileCallback) {
return __awaiter(this, void 0, void 0, function* () {
const glob = util_1.promisify(glob_1.default);
const files = yield glob(sourceGlob);
for (const file of files) {
const contents = yield utils_1.limitOpenFiles(() => renderFile(file, data));
onFileCallback(file, contents);
}
});
}
exports.renderGlob = renderGlob;
function getTemplateRegEx() {
const anything = String.raw `([\s\S]*?)`;
const optionalNewLines = String.raw `\n*`;
const optionalWhitespace = String.raw `\s*`;
const spaceNotNewLines = String.raw `[ \t]*`;
const tagStart = `{{${optionalWhitespace}`;
const tagEnd = `${optionalWhitespace}}}`;
const sectionStart = `${spaceNotNewLines}${tagStart}(?:#(.*?))${tagEnd}${optionalNewLines}`;
const sectionEnd = String.raw `${optionalWhitespace}${tagStart}/\1${tagEnd}`;
const repeatingSectionTag = `${sectionStart}${anything}${sectionEnd}`;
const replacementTag = `${tagStart}(.*?)${tagEnd}`;
const combinedRegEx = new RegExp(`${repeatingSectionTag}|${replacementTag}`, 'g');
return combinedRegEx;
}
function render(template, data) {
const templateRegEx = getTemplateRegEx();
return template.replace(templateRegEx, (_match, sectionTag, sectionContents, replacementTag) => {
// Tag is for a repeating section
if (sectionTag !== undefined) {
const replacements = deep_1.get(sectionTag, data);
return replacements
.map((subData) => {
return render(sectionContents, Object.assign(Object.assign({}, subData), { this: subData }));
})
.join('\n');
}
const replacement = deep_1.get(replacementTag, data);
// If a template variable is found but nothing is supplied to fill it, remove it
if (replacement === null || replacement === undefined) {
return '';
}
// If the replacement is a function, replace the variable with the result of the function
if (typeof replacement === 'function') {
return replacement();
}
return replacement;
});
}
exports.render = render;
function renderFile(filepath, data) {
return __awaiter(this, void 0, void 0, function* () {
const templateString = yield fs_1.promises.readFile(filepath, { encoding: 'utf-8' });
return render(templateString, data);
});
}
exports.renderFile = renderFile;
function renderToFolder(sourceGlob, destination, data) {
return __awaiter(this, void 0, void 0, function* () {
yield mkdirp_1.default(destination);
function writeFile(filename, contents) {
const fullPath = path_1.default.join(destination, path_1.default.basename(filename));
fs_1.promises.writeFile(fullPath, contents);
}
return renderGlob(sourceGlob, data, writeFile);
});
}
exports.renderToFolder = renderToFolder;
//# sourceMappingURL=index.js.map
(()=>{"use strict";var e={147:e=>{e.exports=require("fs")},17:e=>{e.exports=require("path")}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{r.r(n),r.d(n,{render:()=>v,renderFile:()=>y,renderGlob:()=>h,renderToFolder:()=>b});const e=require("@blakek/deep");var t=r(147);const i=require("glob");var o=r.n(i);const s=require("mkdirp");var a=r.n(s),u=r(17),c=r.n(u);const l=require("util");class d{value;next;constructor(e){this.value=e}}class f{#e;#t;#r;constructor(){this.clear()}enqueue(e){const t=new d(e);this.#e?(this.#t.next=t,this.#t=t):(this.#e=t,this.#t=t),this.#r++}dequeue(){const e=this.#e;if(e)return this.#e=this.#e.next,this.#r--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}}const p=function(e){if(!Number.isInteger(e)&&e!==Number.POSITIVE_INFINITY||!(e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=new f;let r=0;const n=async(e,n,i)=>{r++;const o=(async()=>e(...i))();n(o);try{await o}catch{}r--,t.size>0&&t.dequeue()()},i=(i,...o)=>new Promise((s=>{((i,o,s)=>{t.enqueue(n.bind(void 0,i,o,s)),(async()=>{await Promise.resolve(),r<e&&t.size>0&&t.dequeue()()})()})(i,s,o)}));return Object.defineProperties(i,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),i}(Number(process.env.TF_FILE_LIMIT)||1024);async function h(e,t,r){const n=(0,l.promisify)(o()),i=await n(e);for(const e of i){const n=await p((()=>y(e,t)));r(e,n)}}function v(t,r){const n=function(){const e=String.raw`([\s\S]*?)`,t=String.raw`\n*`,r=String.raw`\s*`,n=`{{${r}`,i=`${r}}}`,o=`${String.raw`[ \t]*`}${n}(?:#(.*?))${i}${t}`,s=String.raw`${r}${n}/\1${i}`;return new RegExp(`${o}${e}${s}|${n}(.*?)${i}`,"g")}();return t.replace(n,((t,n,i,o)=>{if(void 0!==n)return(0,e.get)(n,r).map((e=>v(i,{...e,this:e}))).join("\n");const s=(0,e.get)(o,r);return null==s?"":"function"==typeof s?s():s}))}async function y(e,r){return v(await t.promises.readFile(e,{encoding:"utf-8"}),r)}async function b(e,r,n){return await a()(r),h(e,n,(function(e,n){const i=c().join(r,c().basename(e));t.promises.writeFile(i,n)}))}})();var i=exports;for(var o in n)i[o]=n[o];n.__esModule&&Object.defineProperty(i,"__esModule",{value:!0})})();

3

dist/utils.d.ts

@@ -1,2 +0,1 @@

import pLimit from 'p-limit';
export declare const limitOpenFiles: pLimit.Limit;
export declare const limitOpenFiles: import("p-limit").LimitFunction;
{
"name": "template-file",
"version": "5.1.0",
"version": "6.0.0-0",
"main": "dist/index.js",
"exports": {
"require": "./dist/index.js"
},
"description": "🔀 Replace {{ variables }} in all your files",

@@ -41,3 +44,3 @@ "repository": "https://github.com/gsandf/template-file",

"require": [
"ts-node/register"
"./.ava-entry.js"
],

@@ -52,22 +55,12 @@ "timeout": "30s"

"dependencies": {
"@blakek/deep": "^2.1.1",
"@blakek/deep": "^2.2.0",
"glob": "^7.1.6",
"meow": "^8.0.0",
"mkdirp": "^1.0.4",
"p-limit": "^3.1.0"
"p-limit": "^4.0.0"
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/plugin-transform-runtime": "^7.12.1",
"@babel/preset-env": "^7.12.7",
"@babel/preset-typescript": "^7.12.7",
"@rollup/plugin-babel": "^5.2.2",
"@rollup/plugin-commonjs": "^17.0.0",
"@rollup/plugin-node-resolve": "^11.0.0",
"@rollup/plugin-typescript": "^8.0.0",
"@types/glob": "^7.1.3",
"@types/mkdirp": "^1.0.1",
"@typescript-eslint/eslint-plugin": "^4.9.0",
"@typescript-eslint/parser": "^4.9.0",
"@typescript-eslint/eslint-plugin": "^5.3.1",
"@typescript-eslint/parser": "^5.3.1",
"amper-scripts": "^1.0.0-1",

@@ -79,16 +72,16 @@ "ava": "^3.13.0",

"rimraf": "^3.0.2",
"rollup": "^2.34.0",
"rollup-plugin-terser": "^7.0.2",
"ts-node": "^9.0.0",
"typescript": "^4.1.2"
"ts-loader": "^9.2.6",
"ts-node": "^10.4.0",
"typescript": "^4.1.2",
"webpack": "^5.63.0",
"webpack-cli": "^4.9.1"
},
"peerDependencies": {},
"scripts": {
"build:clean": "rimraf ./dist",
"build:js": "tsc --build",
"build": "run-s build:clean build:js",
"build": "webpack --mode=production",
"build:dev": "webpack --mode=development",
"format-check": "amper-scripts format-check '*.{js,ts,tsx}' 'src/**/*.{js,ts,tsx}'",
"format": "amper-scripts format-write '*.{js,ts,tsx}' 'src/**/*.{js,ts,tsx}'",
"lint": "amper-scripts lint --config ./.eslintrc.js '*.{js,ts,tsx}' 'src/**/*.{js,ts,tsx}'",
"prepack": "run-s validate build",
"prepack": "run-s build validate",
"test": "ava",

@@ -95,0 +88,0 @@ "typeCheck": "tsc --noEmit",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc