@jakubmazanec/carson 0.2.1-unstable.9ab3865 → 0.3.0-next.dc4435e

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.
@@ -2,7 +2,6 @@ export declare const PACKAGE_PATH: string;
2
2
  export declare const CARSON_CONFIG_DIRECTORY = ".carson";
3
3
  export declare const PROJECT_CONFIG_FILENAME = "project.json";
4
4
  export declare const WORKSPACE_CONFIG_FILENAME = "workspace.json";
5
- export declare const SNAPSHOTS_FILENAME = ".snapshots";
6
5
  export declare const PROJECT_SNAPSHOT_FILENAME = "project.snapshot";
7
6
  export declare const WORKSPACE_SNAPSHOT_FILENAME = "workspace.snapshot";
8
7
  export declare const TEMPLATES_PATH = "templates";
package/dist/constants.js CHANGED
@@ -5,7 +5,6 @@ export const PACKAGE_PATH = path.resolve(directory, '..');
5
5
  export const CARSON_CONFIG_DIRECTORY = '.carson';
6
6
  export const PROJECT_CONFIG_FILENAME = 'project.json';
7
7
  export const WORKSPACE_CONFIG_FILENAME = 'workspace.json';
8
- export const SNAPSHOTS_FILENAME = '.snapshots';
9
8
  export const PROJECT_SNAPSHOT_FILENAME = 'project.snapshot';
10
9
  export const WORKSPACE_SNAPSHOT_FILENAME = 'workspace.snapshot';
11
10
  export const TEMPLATES_PATH = 'templates';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["import path from 'node:path';\nimport url from 'node:url';\n\nlet directory = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport const PACKAGE_PATH = path.resolve(directory, '..');\n\nexport const CARSON_CONFIG_DIRECTORY = '.carson';\nexport const PROJECT_CONFIG_FILENAME = 'project.json';\nexport const WORKSPACE_CONFIG_FILENAME = 'workspace.json';\nexport const SNAPSHOTS_FILENAME = '.snapshots';\nexport const PROJECT_SNAPSHOT_FILENAME = 'project.snapshot';\nexport const WORKSPACE_SNAPSHOT_FILENAME = 'workspace.snapshot';\nexport const TEMPLATES_PATH = 'templates';\nexport const TEMPLATE_CONFIG_FILENAME = 'config.json';\nexport const PACKAGE_JSON_FILENAME = 'package.json';\n"],"names":["path","url","directory","dirname","fileURLToPath","PACKAGE_PATH","resolve","CARSON_CONFIG_DIRECTORY","PROJECT_CONFIG_FILENAME","WORKSPACE_CONFIG_FILENAME","SNAPSHOTS_FILENAME","PROJECT_SNAPSHOT_FILENAME","WORKSPACE_SNAPSHOT_FILENAME","TEMPLATES_PATH","TEMPLATE_CONFIG_FILENAME","PACKAGE_JSON_FILENAME"],"mappings":"AAAA,OAAOA,UAAU,YAAY;AAC7B,OAAOC,SAAS,WAAW;AAE3B,IAAIC,YAAYF,KAAKG,OAAO,CAACF,IAAIG,aAAa,CAAC,YAAYH,GAAG;AAE9D,OAAO,MAAMI,eAAeL,KAAKM,OAAO,CAACJ,WAAW,MAAM;AAE1D,OAAO,MAAMK,0BAA0B,UAAU;AACjD,OAAO,MAAMC,0BAA0B,eAAe;AACtD,OAAO,MAAMC,4BAA4B,iBAAiB;AAC1D,OAAO,MAAMC,qBAAqB,aAAa;AAC/C,OAAO,MAAMC,4BAA4B,mBAAmB;AAC5D,OAAO,MAAMC,8BAA8B,qBAAqB;AAChE,OAAO,MAAMC,iBAAiB,YAAY;AAC1C,OAAO,MAAMC,2BAA2B,cAAc;AACtD,OAAO,MAAMC,wBAAwB,eAAe"}
1
+ {"version":3,"sources":["../src/constants.ts"],"sourcesContent":["import path from 'node:path';\nimport url from 'node:url';\n\nlet directory = path.dirname(url.fileURLToPath(import.meta.url));\n\nexport const PACKAGE_PATH = path.resolve(directory, '..');\n\nexport const CARSON_CONFIG_DIRECTORY = '.carson';\nexport const PROJECT_CONFIG_FILENAME = 'project.json';\nexport const WORKSPACE_CONFIG_FILENAME = 'workspace.json';\nexport const PROJECT_SNAPSHOT_FILENAME = 'project.snapshot';\nexport const WORKSPACE_SNAPSHOT_FILENAME = 'workspace.snapshot';\nexport const TEMPLATES_PATH = 'templates';\nexport const TEMPLATE_CONFIG_FILENAME = 'config.json';\nexport const PACKAGE_JSON_FILENAME = 'package.json';\n"],"names":["path","url","directory","dirname","fileURLToPath","PACKAGE_PATH","resolve","CARSON_CONFIG_DIRECTORY","PROJECT_CONFIG_FILENAME","WORKSPACE_CONFIG_FILENAME","PROJECT_SNAPSHOT_FILENAME","WORKSPACE_SNAPSHOT_FILENAME","TEMPLATES_PATH","TEMPLATE_CONFIG_FILENAME","PACKAGE_JSON_FILENAME"],"mappings":"AAAA,OAAOA,UAAU,YAAY;AAC7B,OAAOC,SAAS,WAAW;AAE3B,IAAIC,YAAYF,KAAKG,OAAO,CAACF,IAAIG,aAAa,CAAC,YAAYH,GAAG;AAE9D,OAAO,MAAMI,eAAeL,KAAKM,OAAO,CAACJ,WAAW,MAAM;AAE1D,OAAO,MAAMK,0BAA0B,UAAU;AACjD,OAAO,MAAMC,0BAA0B,eAAe;AACtD,OAAO,MAAMC,4BAA4B,iBAAiB;AAC1D,OAAO,MAAMC,4BAA4B,mBAAmB;AAC5D,OAAO,MAAMC,8BAA8B,qBAAqB;AAChE,OAAO,MAAMC,iBAAiB,YAAY;AAC1C,OAAO,MAAMC,2BAA2B,cAAc;AACtD,OAAO,MAAMC,wBAAwB,eAAe"}
@@ -4,19 +4,12 @@ import path from 'node:path';
4
4
  import prettier from 'prettier';
5
5
  import { CarsonTemplateError } from './CarsonTemplateError.js';
6
6
  import { createUsingTemplateRender, deleteUsingTemplateRender, insertUsingTemplateRender, loadTemplateRenderSnapshots, mergeUsingTemplateRender, overwriteUsingTemplateRender, saveTemplateRenderSnapshots, uninsertUsingTemplateRender, unmergeUsingTemplateRender } from './internals.js';
7
- import { CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME } from '../constants.js';
7
+ import { CARSON_CONFIG_DIRECTORY } from '../constants.js';
8
8
  /**
9
9
  * Applies rendered Carson template to a specified path, i.e. creates and updates files based on the result of rendering each Carson template file.
10
10
  */ export async function applyTemplateRenders({ templateRenders, targetPath, snapshotPath, ignoreStrategies }) {
11
11
  // we need to clear Prettier cache, because we are changing file system
12
12
  await prettier.clearConfigCache();
13
- // TODO: remove all logic about legacy snapshots after Carson reaches v1
14
- // use previous version of snapshot file if it exists
15
- let legacySnapshotPath = path.join(targetPath, CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME);
16
- if (await fs.pathExists(legacySnapshotPath)) {
17
- // eslint-disable-next-line no-param-reassign -- needed; also, this is temporary feature
18
- snapshotPath = legacySnapshotPath;
19
- }
20
13
  // first, we read the existing snapshots and use them to undo previous changes
21
14
  if (await fs.pathExists(snapshotPath)) {
22
15
  let templateRenderSnapshots = await loadTemplateRenderSnapshots(snapshotPath);
@@ -92,10 +85,6 @@ import { CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME } from '../constants.js';
92
85
  }
93
86
  await fs.ensureDir(path.join(targetPath, CARSON_CONFIG_DIRECTORY));
94
87
  await saveTemplateRenderSnapshots(templateRenders, snapshotPath);
95
- // delete legacy snapshots
96
- if (await fs.pathExists(legacySnapshotPath)) {
97
- await fs.rm(legacySnapshotPath);
98
- }
99
88
  }
100
89
 
101
90
  //# sourceMappingURL=applyTemplateRenders.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/template/applyTemplateRenders.ts"],"sourcesContent":["// TODO: can this be fixed?\n/* eslint-disable complexity -- TODO */\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport prettier from 'prettier';\n\nimport {CarsonTemplateError} from './CarsonTemplateError.js';\nimport {\n createUsingTemplateRender,\n deleteUsingTemplateRender,\n insertUsingTemplateRender,\n loadTemplateRenderSnapshots,\n mergeUsingTemplateRender,\n overwriteUsingTemplateRender,\n saveTemplateRenderSnapshots,\n uninsertUsingTemplateRender,\n unmergeUsingTemplateRender,\n} from './internals.js';\nimport {type TemplateRenders} from './TemplateRenders.js';\nimport {CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME} from '../constants.js';\n\nexport type ApplyTemplateRendersOptions = {\n templateRenders: TemplateRenders;\n targetPath: string;\n snapshotPath: string;\n ignoreStrategies: string[];\n};\n\n/**\n * Applies rendered Carson template to a specified path, i.e. creates and updates files based on the result of rendering each Carson template file.\n */\nexport async function applyTemplateRenders({\n templateRenders,\n targetPath,\n snapshotPath,\n ignoreStrategies,\n}: ApplyTemplateRendersOptions) {\n // we need to clear Prettier cache, because we are changing file system\n await prettier.clearConfigCache();\n\n // TODO: remove all logic about legacy snapshots after Carson reaches v1\n // use previous version of snapshot file if it exists\n let legacySnapshotPath = path.join(targetPath, CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME);\n\n if (await fs.pathExists(legacySnapshotPath)) {\n // eslint-disable-next-line no-param-reassign -- needed; also, this is temporary feature\n snapshotPath = legacySnapshotPath;\n }\n\n // first, we read the existing snapshots and use them to undo previous changes\n if (await fs.pathExists(snapshotPath)) {\n let templateRenderSnapshots = await loadTemplateRenderSnapshots(snapshotPath);\n\n for (let templateRenderSnapshot of templateRenderSnapshots) {\n let strategy =\n typeof templateRenderSnapshot.attributes.strategy === 'string'\n ? templateRenderSnapshot.attributes.strategy\n : templateRenderSnapshot.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'ensure') {\n await deleteUsingTemplateRender(templateRenderSnapshot, targetPath, {\n onlyDeleteWhenContentsMatch: true,\n });\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'overwrite') {\n await deleteUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'merge') {\n await unmergeUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy[0] === 'insert') {\n await uninsertUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n }\n }\n\n // second, we apply strategies that create files\n for (let templateRender of templateRenders) {\n let strategy =\n typeof templateRender.attributes.strategy === 'string'\n ? templateRender.attributes.strategy\n : templateRender.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRender.attributes.strategy === 'create') {\n await createUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'ensure') {\n let to = path.join(targetPath, templateRender.attributes.to);\n let doesToExist = await fs.pathExists(to);\n\n if (!doesToExist) {\n await createUsingTemplateRender(templateRender, targetPath);\n }\n }\n }\n\n // third, we apply strategies that change files\n for (let templateRender of templateRenders) {\n let strategy =\n typeof templateRender.attributes.strategy === 'string'\n ? templateRender.attributes.strategy\n : templateRender.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRender.attributes.strategy === 'overwrite') {\n await overwriteUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'merge') {\n await mergeUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy[0] === 'insert') {\n await insertUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'check') {\n let to = path.join(targetPath, templateRender.attributes.to);\n let doesToExist = await fs.pathExists(to);\n\n if (!doesToExist) {\n throw new CarsonTemplateError('STRATEGY_MISSING_FILE', {\n messageParameters: [templateRender.attributes.strategy, templateRender.template.path, to],\n data: {\n path: to,\n },\n });\n }\n }\n }\n\n await fs.ensureDir(path.join(targetPath, CARSON_CONFIG_DIRECTORY));\n\n await saveTemplateRenderSnapshots(templateRenders, snapshotPath);\n\n // delete legacy snapshots\n if (await fs.pathExists(legacySnapshotPath)) {\n await fs.rm(legacySnapshotPath);\n }\n}\n"],"names":["fs","path","prettier","CarsonTemplateError","createUsingTemplateRender","deleteUsingTemplateRender","insertUsingTemplateRender","loadTemplateRenderSnapshots","mergeUsingTemplateRender","overwriteUsingTemplateRender","saveTemplateRenderSnapshots","uninsertUsingTemplateRender","unmergeUsingTemplateRender","CARSON_CONFIG_DIRECTORY","SNAPSHOTS_FILENAME","applyTemplateRenders","templateRenders","targetPath","snapshotPath","ignoreStrategies","clearConfigCache","legacySnapshotPath","join","pathExists","templateRenderSnapshots","templateRenderSnapshot","strategy","attributes","includes","onlyDeleteWhenContentsMatch","templateRender","to","doesToExist","messageParameters","template","data","ensureDir","rm"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/template/applyTemplateRenders.ts"],"sourcesContent":["// TODO: can this be fixed?\n/* eslint-disable complexity -- TODO */\nimport fs from 'fs-extra';\nimport path from 'node:path';\nimport prettier from 'prettier';\n\nimport {CarsonTemplateError} from './CarsonTemplateError.js';\nimport {\n createUsingTemplateRender,\n deleteUsingTemplateRender,\n insertUsingTemplateRender,\n loadTemplateRenderSnapshots,\n mergeUsingTemplateRender,\n overwriteUsingTemplateRender,\n saveTemplateRenderSnapshots,\n uninsertUsingTemplateRender,\n unmergeUsingTemplateRender,\n} from './internals.js';\nimport {type TemplateRenders} from './TemplateRenders.js';\nimport {CARSON_CONFIG_DIRECTORY} from '../constants.js';\n\nexport type ApplyTemplateRendersOptions = {\n templateRenders: TemplateRenders;\n targetPath: string;\n snapshotPath: string;\n ignoreStrategies: string[];\n};\n\n/**\n * Applies rendered Carson template to a specified path, i.e. creates and updates files based on the result of rendering each Carson template file.\n */\nexport async function applyTemplateRenders({\n templateRenders,\n targetPath,\n snapshotPath,\n ignoreStrategies,\n}: ApplyTemplateRendersOptions) {\n // we need to clear Prettier cache, because we are changing file system\n await prettier.clearConfigCache();\n\n // first, we read the existing snapshots and use them to undo previous changes\n if (await fs.pathExists(snapshotPath)) {\n let templateRenderSnapshots = await loadTemplateRenderSnapshots(snapshotPath);\n\n for (let templateRenderSnapshot of templateRenderSnapshots) {\n let strategy =\n typeof templateRenderSnapshot.attributes.strategy === 'string'\n ? templateRenderSnapshot.attributes.strategy\n : templateRenderSnapshot.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'ensure') {\n await deleteUsingTemplateRender(templateRenderSnapshot, targetPath, {\n onlyDeleteWhenContentsMatch: true,\n });\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'overwrite') {\n await deleteUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy === 'merge') {\n await unmergeUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n\n if (templateRenderSnapshot.attributes.strategy[0] === 'insert') {\n await uninsertUsingTemplateRender(templateRenderSnapshot, targetPath);\n }\n }\n }\n\n // second, we apply strategies that create files\n for (let templateRender of templateRenders) {\n let strategy =\n typeof templateRender.attributes.strategy === 'string'\n ? templateRender.attributes.strategy\n : templateRender.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRender.attributes.strategy === 'create') {\n await createUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'ensure') {\n let to = path.join(targetPath, templateRender.attributes.to);\n let doesToExist = await fs.pathExists(to);\n\n if (!doesToExist) {\n await createUsingTemplateRender(templateRender, targetPath);\n }\n }\n }\n\n // third, we apply strategies that change files\n for (let templateRender of templateRenders) {\n let strategy =\n typeof templateRender.attributes.strategy === 'string'\n ? templateRender.attributes.strategy\n : templateRender.attributes.strategy[0];\n\n if (ignoreStrategies.includes(strategy)) {\n continue;\n }\n\n if (templateRender.attributes.strategy === 'overwrite') {\n await overwriteUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'merge') {\n await mergeUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy[0] === 'insert') {\n await insertUsingTemplateRender(templateRender, targetPath);\n }\n\n if (templateRender.attributes.strategy === 'check') {\n let to = path.join(targetPath, templateRender.attributes.to);\n let doesToExist = await fs.pathExists(to);\n\n if (!doesToExist) {\n throw new CarsonTemplateError('STRATEGY_MISSING_FILE', {\n messageParameters: [templateRender.attributes.strategy, templateRender.template.path, to],\n data: {\n path: to,\n },\n });\n }\n }\n }\n\n await fs.ensureDir(path.join(targetPath, CARSON_CONFIG_DIRECTORY));\n\n await saveTemplateRenderSnapshots(templateRenders, snapshotPath);\n}\n"],"names":["fs","path","prettier","CarsonTemplateError","createUsingTemplateRender","deleteUsingTemplateRender","insertUsingTemplateRender","loadTemplateRenderSnapshots","mergeUsingTemplateRender","overwriteUsingTemplateRender","saveTemplateRenderSnapshots","uninsertUsingTemplateRender","unmergeUsingTemplateRender","CARSON_CONFIG_DIRECTORY","applyTemplateRenders","templateRenders","targetPath","snapshotPath","ignoreStrategies","clearConfigCache","pathExists","templateRenderSnapshots","templateRenderSnapshot","strategy","attributes","includes","onlyDeleteWhenContentsMatch","templateRender","to","join","doesToExist","messageParameters","template","data","ensureDir"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jakubmazanec/carson",
3
- "version": "0.2.1-unstable.9ab3865",
3
+ "version": "0.3.0-next.dc4435e",
4
4
  "description": "Tool for managing workspace and project configuration.",
5
5
  "repository": {
6
6
  "type": "git",
package/src/constants.ts CHANGED
@@ -8,7 +8,6 @@ export const PACKAGE_PATH = path.resolve(directory, '..');
8
8
  export const CARSON_CONFIG_DIRECTORY = '.carson';
9
9
  export const PROJECT_CONFIG_FILENAME = 'project.json';
10
10
  export const WORKSPACE_CONFIG_FILENAME = 'workspace.json';
11
- export const SNAPSHOTS_FILENAME = '.snapshots';
12
11
  export const PROJECT_SNAPSHOT_FILENAME = 'project.snapshot';
13
12
  export const WORKSPACE_SNAPSHOT_FILENAME = 'workspace.snapshot';
14
13
  export const TEMPLATES_PATH = 'templates';
@@ -17,7 +17,7 @@ import {
17
17
  unmergeUsingTemplateRender,
18
18
  } from './internals.js';
19
19
  import {type TemplateRenders} from './TemplateRenders.js';
20
- import {CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME} from '../constants.js';
20
+ import {CARSON_CONFIG_DIRECTORY} from '../constants.js';
21
21
 
22
22
  export type ApplyTemplateRendersOptions = {
23
23
  templateRenders: TemplateRenders;
@@ -38,15 +38,6 @@ export async function applyTemplateRenders({
38
38
  // we need to clear Prettier cache, because we are changing file system
39
39
  await prettier.clearConfigCache();
40
40
 
41
- // TODO: remove all logic about legacy snapshots after Carson reaches v1
42
- // use previous version of snapshot file if it exists
43
- let legacySnapshotPath = path.join(targetPath, CARSON_CONFIG_DIRECTORY, SNAPSHOTS_FILENAME);
44
-
45
- if (await fs.pathExists(legacySnapshotPath)) {
46
- // eslint-disable-next-line no-param-reassign -- needed; also, this is temporary feature
47
- snapshotPath = legacySnapshotPath;
48
- }
49
-
50
41
  // first, we read the existing snapshots and use them to undo previous changes
51
42
  if (await fs.pathExists(snapshotPath)) {
52
43
  let templateRenderSnapshots = await loadTemplateRenderSnapshots(snapshotPath);
@@ -147,9 +138,4 @@ export async function applyTemplateRenders({
147
138
  await fs.ensureDir(path.join(targetPath, CARSON_CONFIG_DIRECTORY));
148
139
 
149
140
  await saveTemplateRenderSnapshots(templateRenders, snapshotPath);
150
-
151
- // delete legacy snapshots
152
- if (await fs.pathExists(legacySnapshotPath)) {
153
- await fs.rm(legacySnapshotPath);
154
- }
155
141
  }