@jakubmazanec/carson 0.1.0-2d1145f → 0.1.0-5f6d70c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,12 @@
1
+ import { pathToPosixPath } from '@jakubmazanec/fs-utils';
1
2
  import _ from 'lodash';
2
- import { importCarsonTemplate, readCarsonTemplate } from './internals.js';
3
+ import path from 'node:path';
4
+ import { importCarsonTemplate, parseCarsonTemplateId, readCarsonTemplate, resolveModule } from './internals.js';
3
5
  /**
4
6
  * Renders a Carson template with provided template data.
5
7
  */ export async function renderCarsonTemplate(options) {
8
+ let [moduleId] = parseCarsonTemplateId(options.templateId);
9
+ let modulePath = await resolveModule(moduleId);
6
10
  let template = await readCarsonTemplate(options.templateId);
7
11
  let templateModule = await importCarsonTemplate(options.templateId);
8
12
  let templateRenders = [];
@@ -15,7 +19,7 @@ import { importCarsonTemplate, readCarsonTemplate } from './internals.js';
15
19
  })).map((templateRender)=>({
16
20
  ...templateRender,
17
21
  template: {
18
- path: file.path ?? ''
22
+ path: pathToPosixPath(`${moduleId}/${path.relative(modulePath, file.path ?? modulePath)}`)
19
23
  }
20
24
  })));
21
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/template/renderCarsonTemplate.ts"],"sourcesContent":["import _ from 'lodash';\n\nimport {importCarsonTemplate, readCarsonTemplate} from './internals.js';\nimport {type TemplateData} from './TemplateData.js';\nimport {type TemplateRenders} from './TemplateRenders.js';\n\nexport type RenderCarsonTemplateOptions = {\n templateId: string;\n templateData: TemplateData;\n};\n\n/**\n * Renders a Carson template with provided template data.\n */\nexport async function renderCarsonTemplate(\n options: RenderCarsonTemplateOptions,\n): Promise<TemplateRenders> {\n let template = await readCarsonTemplate(options.templateId);\n let templateModule = await importCarsonTemplate(options.templateId);\n let templateRenders: TemplateRenders = [];\n\n for (let file of template.files) {\n templateRenders.push(\n ...(\n await file.render(\n {\n ...templateModule,\n ...options.templateData,\n },\n {disablePrettier: true},\n )\n ).map((templateRender) => ({...templateRender, template: {path: file.path ?? ''}})),\n );\n }\n\n templateRenders = _.sortBy(templateRenders, [\n (templateRender) => templateRender.attributes.to,\n (templateRender) => templateRender.attributes.strategy,\n (templateRender) => templateRender.content,\n ]);\n\n return templateRenders;\n}\n"],"names":["_","importCarsonTemplate","readCarsonTemplate","renderCarsonTemplate","options","template","templateId","templateModule","templateRenders","file","files","push","render","templateData","disablePrettier","map","templateRender","path","sortBy","attributes","to","strategy","content"],"mappings":"AAAA,OAAOA,OAAO,SAAS;AAEvB,SAAQC,oBAAoB,EAAEC,kBAAkB,QAAO,iBAAiB;AASxE;;CAEC,GACD,OAAO,eAAeC,qBACpBC,OAAoC;IAEpC,IAAIC,WAAW,MAAMH,mBAAmBE,QAAQE,UAAU;IAC1D,IAAIC,iBAAiB,MAAMN,qBAAqBG,QAAQE,UAAU;IAClE,IAAIE,kBAAmC,EAAE;IAEzC,KAAK,IAAIC,QAAQJ,SAASK,KAAK,CAAE;QAC/BF,gBAAgBG,IAAI,IACf,AACD,CAAA,MAAMF,KAAKG,MAAM,CACf;YACE,GAAGL,cAAc;YACjB,GAAGH,QAAQS,YAAY;QACzB,GACA;YAACC,iBAAiB;QAAI,EACxB,EACAC,GAAG,CAAC,CAACC,iBAAoB,CAAA;gBAAC,GAAGA,cAAc;gBAAEX,UAAU;oBAACY,MAAMR,KAAKQ,IAAI,IAAI;gBAAE;YAAC,CAAA;IAEpF;IAEAT,kBAAkBR,EAAEkB,MAAM,CAACV,iBAAiB;QAC1C,CAACQ,iBAAmBA,eAAeG,UAAU,CAACC,EAAE;QAChD,CAACJ,iBAAmBA,eAAeG,UAAU,CAACE,QAAQ;QACtD,CAACL,iBAAmBA,eAAeM,OAAO;KAC3C;IAED,OAAOd;AACT"}
1
+ {"version":3,"sources":["../../src/template/renderCarsonTemplate.ts"],"sourcesContent":["import {pathToPosixPath} from '@jakubmazanec/fs-utils';\nimport _ from 'lodash';\nimport path from 'node:path';\n\nimport {\n importCarsonTemplate,\n parseCarsonTemplateId,\n readCarsonTemplate,\n resolveModule,\n} from './internals.js';\nimport {type TemplateData} from './TemplateData.js';\nimport {type TemplateRenders} from './TemplateRenders.js';\n\nexport type RenderCarsonTemplateOptions = {\n templateId: string;\n templateData: TemplateData;\n};\n\n/**\n * Renders a Carson template with provided template data.\n */\nexport async function renderCarsonTemplate(\n options: RenderCarsonTemplateOptions,\n): Promise<TemplateRenders> {\n let [moduleId] = parseCarsonTemplateId(options.templateId);\n let modulePath = await resolveModule(moduleId);\n let template = await readCarsonTemplate(options.templateId);\n let templateModule = await importCarsonTemplate(options.templateId);\n let templateRenders: TemplateRenders = [];\n\n for (let file of template.files) {\n templateRenders.push(\n ...(\n await file.render(\n {\n ...templateModule,\n ...options.templateData,\n },\n {disablePrettier: true},\n )\n ).map((templateRender) => ({\n ...templateRender,\n template: {\n path: pathToPosixPath(\n `${moduleId}/${path.relative(modulePath, file.path ?? modulePath)}`,\n ),\n },\n })),\n );\n }\n\n templateRenders = _.sortBy(templateRenders, [\n (templateRender) => templateRender.attributes.to,\n (templateRender) => templateRender.attributes.strategy,\n (templateRender) => templateRender.content,\n ]);\n\n return templateRenders;\n}\n"],"names":["pathToPosixPath","_","path","importCarsonTemplate","parseCarsonTemplateId","readCarsonTemplate","resolveModule","renderCarsonTemplate","options","moduleId","templateId","modulePath","template","templateModule","templateRenders","file","files","push","render","templateData","disablePrettier","map","templateRender","relative","sortBy","attributes","to","strategy","content"],"mappings":"AAAA,SAAQA,eAAe,QAAO,yBAAyB;AACvD,OAAOC,OAAO,SAAS;AACvB,OAAOC,UAAU,YAAY;AAE7B,SACEC,oBAAoB,EACpBC,qBAAqB,EACrBC,kBAAkB,EAClBC,aAAa,QACR,iBAAiB;AASxB;;CAEC,GACD,OAAO,eAAeC,qBACpBC,OAAoC;IAEpC,IAAI,CAACC,SAAS,GAAGL,sBAAsBI,QAAQE,UAAU;IACzD,IAAIC,aAAa,MAAML,cAAcG;IACrC,IAAIG,WAAW,MAAMP,mBAAmBG,QAAQE,UAAU;IAC1D,IAAIG,iBAAiB,MAAMV,qBAAqBK,QAAQE,UAAU;IAClE,IAAII,kBAAmC,EAAE;IAEzC,KAAK,IAAIC,QAAQH,SAASI,KAAK,CAAE;QAC/BF,gBAAgBG,IAAI,IACf,AACD,CAAA,MAAMF,KAAKG,MAAM,CACf;YACE,GAAGL,cAAc;YACjB,GAAGL,QAAQW,YAAY;QACzB,GACA;YAACC,iBAAiB;QAAI,EACxB,EACAC,GAAG,CAAC,CAACC,iBAAoB,CAAA;gBACzB,GAAGA,cAAc;gBACjBV,UAAU;oBACRV,MAAMF,gBACJ,CAAC,EAAES,SAAS,CAAC,EAAEP,KAAKqB,QAAQ,CAACZ,YAAYI,KAAKb,IAAI,IAAIS,YAAY,CAAC;gBAEvE;YACF,CAAA;IAEJ;IAEAG,kBAAkBb,EAAEuB,MAAM,CAACV,iBAAiB;QAC1C,CAACQ,iBAAmBA,eAAeG,UAAU,CAACC,EAAE;QAChD,CAACJ,iBAAmBA,eAAeG,UAAU,CAACE,QAAQ;QACtD,CAACL,iBAAmBA,eAAeM,OAAO;KAC3C;IAED,OAAOd;AACT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/carson",
3
- "version": "0.1.0-2d1145f",
3
+ "version": "0.1.0-5f6d70c",
4
4
  "description": "Tool for managing workspace and project configuration.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,13 +31,13 @@
31
31
  "typecheck": "tsc --project tsconfig.typecheck.json"
32
32
  },
33
33
  "dependencies": {
34
- "@jakubmazanec/args": "1.0.1-2d1145f",
35
- "@jakubmazanec/cli": "0.1.0-2d1145f",
36
- "@jakubmazanec/error": "2.0.1-2d1145f",
37
- "@jakubmazanec/fs-utils": "0.1.0-2d1145f",
38
- "@jakubmazanec/template": "1.0.1-2d1145f",
39
- "@jakubmazanec/ts-utils": "2.1.0-2d1145f",
40
- "@jakubmazanec/zod-utils": "1.0.0-2d1145f",
34
+ "@jakubmazanec/args": "1.0.1-5f6d70c",
35
+ "@jakubmazanec/cli": "0.1.0-5f6d70c",
36
+ "@jakubmazanec/error": "2.0.1-5f6d70c",
37
+ "@jakubmazanec/fs-utils": "0.1.0-5f6d70c",
38
+ "@jakubmazanec/template": "1.0.1-5f6d70c",
39
+ "@jakubmazanec/ts-utils": "2.1.0-5f6d70c",
40
+ "@jakubmazanec/zod-utils": "1.0.0-5f6d70c",
41
41
  "chalk": "^5.2.0",
42
42
  "diff": "^5.1.0",
43
43
  "fast-glob": "^3.2.11",
@@ -1,6 +1,13 @@
1
+ import {pathToPosixPath} from '@jakubmazanec/fs-utils';
1
2
  import _ from 'lodash';
3
+ import path from 'node:path';
2
4
 
3
- import {importCarsonTemplate, readCarsonTemplate} from './internals.js';
5
+ import {
6
+ importCarsonTemplate,
7
+ parseCarsonTemplateId,
8
+ readCarsonTemplate,
9
+ resolveModule,
10
+ } from './internals.js';
4
11
  import {type TemplateData} from './TemplateData.js';
5
12
  import {type TemplateRenders} from './TemplateRenders.js';
6
13
 
@@ -15,6 +22,8 @@ export type RenderCarsonTemplateOptions = {
15
22
  export async function renderCarsonTemplate(
16
23
  options: RenderCarsonTemplateOptions,
17
24
  ): Promise<TemplateRenders> {
25
+ let [moduleId] = parseCarsonTemplateId(options.templateId);
26
+ let modulePath = await resolveModule(moduleId);
18
27
  let template = await readCarsonTemplate(options.templateId);
19
28
  let templateModule = await importCarsonTemplate(options.templateId);
20
29
  let templateRenders: TemplateRenders = [];
@@ -29,7 +38,14 @@ export async function renderCarsonTemplate(
29
38
  },
30
39
  {disablePrettier: true},
31
40
  )
32
- ).map((templateRender) => ({...templateRender, template: {path: file.path ?? ''}})),
41
+ ).map((templateRender) => ({
42
+ ...templateRender,
43
+ template: {
44
+ path: pathToPosixPath(
45
+ `${moduleId}/${path.relative(modulePath, file.path ?? modulePath)}`,
46
+ ),
47
+ },
48
+ })),
33
49
  );
34
50
  }
35
51