@hanseltime/template-repo-sync 2.2.1 → 2.4.0-alpha.0
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.
- package/CHANGELOG.md +43 -45
- package/dist/cjs/checkout-drivers/git-checkout.js +37 -0
- package/dist/cjs/checkout-drivers/git-checkout.spec.js +60 -0
- package/dist/cjs/checkout-drivers/index.js +21 -0
- package/dist/cjs/checkout-drivers/types.js +11 -0
- package/dist/cjs/clone-drivers/git-clone.js +25 -0
- package/dist/cjs/clone-drivers/index.js +21 -0
- package/dist/cjs/clone-drivers/types.js +8 -0
- package/dist/cjs/diff-drivers/git-diff.js +30 -0
- package/dist/cjs/diff-drivers/git-diff.spec.js +138 -0
- package/dist/cjs/diff-drivers/index.js +21 -0
- package/dist/cjs/diff-drivers/types.js +6 -0
- package/dist/cjs/formatting/index.js +21 -0
- package/dist/cjs/formatting/infer-json-indent.js +26 -0
- package/dist/cjs/formatting/infer-json-indent.spec.js +50 -0
- package/dist/cjs/formatting/sync-results-to-md.js +62 -0
- package/dist/cjs/formatting/sync-results-to-md.spec.js +45 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/load-plugin.js +44 -0
- package/dist/cjs/match.js +51 -0
- package/dist/cjs/match.spec.js +75 -0
- package/dist/cjs/merge-file.js +91 -0
- package/dist/cjs/merge-file.spec.js +508 -0
- package/dist/cjs/plugins/index.js +20 -0
- package/dist/cjs/plugins/json-merge.js +228 -0
- package/dist/cjs/plugins/json-merge.spec.js +514 -0
- package/dist/cjs/ref-drivers/git-current-ref.js +18 -0
- package/dist/cjs/ref-drivers/git-current-ref.spec.js +15 -0
- package/dist/cjs/ref-drivers/index.js +20 -0
- package/dist/cjs/ref-drivers/types.js +11 -0
- package/dist/cjs/template-sync.js +236 -0
- package/dist/cjs/template-sync.spec.js +521 -0
- package/dist/cjs/test-utils/index.js +26 -0
- package/dist/cjs/types.js +12 -0
- package/dist/esm/checkout-drivers/git-checkout.mjs +27 -0
- package/dist/esm/checkout-drivers/git-checkout.spec.mjs +56 -0
- package/dist/esm/checkout-drivers/index.mjs +4 -0
- package/dist/esm/checkout-drivers/types.mjs +8 -0
- package/dist/esm/clone-drivers/git-clone.mjs +15 -0
- package/dist/esm/clone-drivers/index.mjs +4 -0
- package/dist/esm/clone-drivers/types.mjs +8 -0
- package/dist/esm/diff-drivers/git-diff.mjs +26 -0
- package/dist/esm/diff-drivers/git-diff.spec.mjs +93 -0
- package/dist/esm/diff-drivers/index.mjs +4 -0
- package/dist/esm/diff-drivers/types.mjs +6 -0
- package/dist/esm/formatting/index.mjs +4 -0
- package/dist/esm/formatting/infer-json-indent.mjs +16 -0
- package/dist/esm/formatting/infer-json-indent.spec.mjs +46 -0
- package/dist/esm/formatting/sync-results-to-md.mjs +52 -0
- package/dist/esm/formatting/sync-results-to-md.spec.mjs +41 -0
- package/dist/esm/index.mjs +5 -0
- package/dist/esm/load-plugin.mjs +40 -0
- package/dist/esm/match.mjs +40 -0
- package/dist/esm/match.spec.mjs +71 -0
- package/dist/esm/merge-file.mjs +88 -0
- package/dist/esm/merge-file.spec.mjs +504 -0
- package/dist/esm/plugins/index.mjs +10 -0
- package/dist/esm/plugins/json-merge.mjs +164 -0
- package/dist/esm/plugins/json-merge.spec.mjs +469 -0
- package/dist/esm/ref-drivers/git-current-ref.mjs +8 -0
- package/dist/esm/ref-drivers/git-current-ref.spec.mjs +11 -0
- package/dist/esm/ref-drivers/index.mjs +3 -0
- package/dist/esm/ref-drivers/types.mjs +8 -0
- package/dist/esm/template-sync.mjs +174 -0
- package/dist/esm/template-sync.spec.mjs +517 -0
- package/dist/esm/test-utils/index.mjs +10 -0
- package/dist/esm/types.mjs +9 -0
- package/{lib/cjs → dist/types}/checkout-drivers/git-checkout.d.ts +1 -0
- package/dist/types/checkout-drivers/git-checkout.d.ts.map +1 -0
- package/dist/types/checkout-drivers/git-checkout.spec.d.ts +2 -0
- package/dist/types/checkout-drivers/git-checkout.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/checkout-drivers/index.d.ts +1 -0
- package/dist/types/checkout-drivers/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/checkout-drivers/types.d.ts +1 -0
- package/dist/types/checkout-drivers/types.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/clone-drivers/git-clone.d.ts +2 -1
- package/dist/types/clone-drivers/git-clone.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/clone-drivers/index.d.ts +2 -1
- package/dist/types/clone-drivers/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/clone-drivers/types.d.ts +1 -0
- package/dist/types/clone-drivers/types.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/diff-drivers/git-diff.d.ts +1 -0
- package/dist/types/diff-drivers/git-diff.d.ts.map +1 -0
- package/dist/types/diff-drivers/git-diff.spec.d.ts +2 -0
- package/dist/types/diff-drivers/git-diff.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/diff-drivers/index.d.ts +2 -1
- package/dist/types/diff-drivers/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/diff-drivers/types.d.ts +1 -0
- package/dist/types/diff-drivers/types.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/formatting/index.d.ts +2 -1
- package/dist/types/formatting/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/formatting/infer-json-indent.d.ts +1 -0
- package/dist/types/formatting/infer-json-indent.d.ts.map +1 -0
- package/dist/types/formatting/infer-json-indent.spec.d.ts +2 -0
- package/dist/types/formatting/infer-json-indent.spec.d.ts.map +1 -0
- package/dist/types/formatting/sync-results-to-md.d.ts +3 -0
- package/dist/types/formatting/sync-results-to-md.d.ts.map +1 -0
- package/dist/types/formatting/sync-results-to-md.spec.d.ts +2 -0
- package/dist/types/formatting/sync-results-to-md.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/load-plugin.d.ts +2 -1
- package/dist/types/load-plugin.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/match.d.ts +1 -0
- package/dist/types/match.d.ts.map +1 -0
- package/dist/types/match.spec.d.ts +2 -0
- package/dist/types/match.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/merge-file.d.ts +3 -2
- package/dist/types/merge-file.d.ts.map +1 -0
- package/dist/types/merge-file.spec.d.ts +2 -0
- package/dist/types/merge-file.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/plugins/index.d.ts +2 -1
- package/dist/types/plugins/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/plugins/json-merge.d.ts +2 -1
- package/dist/types/plugins/json-merge.d.ts.map +1 -0
- package/dist/types/plugins/json-merge.spec.d.ts +2 -0
- package/dist/types/plugins/json-merge.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/ref-drivers/git-current-ref.d.ts +1 -0
- package/dist/types/ref-drivers/git-current-ref.d.ts.map +1 -0
- package/dist/types/ref-drivers/git-current-ref.spec.d.ts +2 -0
- package/dist/types/ref-drivers/git-current-ref.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/ref-drivers/index.d.ts +1 -0
- package/dist/types/ref-drivers/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/ref-drivers/types.d.ts +1 -0
- package/dist/types/ref-drivers/types.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/template-sync.d.ts +6 -5
- package/dist/types/template-sync.d.ts.map +1 -0
- package/dist/types/template-sync.spec.d.ts +2 -0
- package/dist/types/template-sync.spec.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/test-utils/index.d.ts +1 -0
- package/dist/types/test-utils/index.d.ts.map +1 -0
- package/{lib/cjs → dist/types}/types.d.ts +1 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +26 -23
- package/.eslintrc.js +0 -10
- package/.github/CODEOWNERS +0 -6
- package/.github/workflows/pr-checks.yaml +0 -12
- package/.github/workflows/release.yaml +0 -47
- package/.github/workflows/test-flow.yaml +0 -63
- package/.husky/commit-msg +0 -4
- package/.prettierignore +0 -1
- package/.prettierrc +0 -1
- package/action.yml +0 -13
- package/commitlint.config.js +0 -3
- package/docs/merge-plugins/CURRENT_PLUGINS.md +0 -168
- package/docs/merge-plugins/PLUGIN_DEVELOPMENT.md +0 -122
- package/docs/merge-plugins/README.md +0 -75
- package/jest.config.js +0 -19
- package/lib/cjs/checkout-drivers/git-checkout.js +0 -29
- package/lib/cjs/checkout-drivers/index.js +0 -18
- package/lib/cjs/checkout-drivers/types.js +0 -2
- package/lib/cjs/clone-drivers/git-clone.js +0 -17
- package/lib/cjs/clone-drivers/index.js +0 -18
- package/lib/cjs/clone-drivers/types.js +0 -2
- package/lib/cjs/diff-drivers/git-diff.js +0 -41
- package/lib/cjs/diff-drivers/index.js +0 -18
- package/lib/cjs/diff-drivers/types.js +0 -2
- package/lib/cjs/formatting/index.js +0 -18
- package/lib/cjs/formatting/infer-json-indent.js +0 -18
- package/lib/cjs/formatting/sync-results-to-md.d.ts +0 -2
- package/lib/cjs/formatting/sync-results-to-md.js +0 -57
- package/lib/cjs/index.js +0 -19
- package/lib/cjs/load-plugin.js +0 -69
- package/lib/cjs/match.js +0 -45
- package/lib/cjs/merge-file.js +0 -98
- package/lib/cjs/plugins/index.js +0 -11
- package/lib/cjs/plugins/json-merge.js +0 -208
- package/lib/cjs/ref-drivers/git-current-ref.js +0 -12
- package/lib/cjs/ref-drivers/index.js +0 -17
- package/lib/cjs/ref-drivers/types.js +0 -2
- package/lib/cjs/template-sync.js +0 -163
- package/lib/cjs/test-utils/index.js +0 -10
- package/lib/cjs/types.js +0 -2
- package/lib/esm/checkout-drivers/git-checkout.js +0 -29
- package/lib/esm/checkout-drivers/index.js +0 -18
- package/lib/esm/checkout-drivers/types.js +0 -2
- package/lib/esm/clone-drivers/git-clone.js +0 -17
- package/lib/esm/clone-drivers/index.js +0 -18
- package/lib/esm/clone-drivers/types.js +0 -2
- package/lib/esm/diff-drivers/git-diff.js +0 -41
- package/lib/esm/diff-drivers/index.js +0 -18
- package/lib/esm/diff-drivers/types.js +0 -2
- package/lib/esm/formatting/index.js +0 -18
- package/lib/esm/formatting/infer-json-indent.js +0 -18
- package/lib/esm/formatting/sync-results-to-md.js +0 -57
- package/lib/esm/index.js +0 -19
- package/lib/esm/load-plugin.js +0 -46
- package/lib/esm/match.js +0 -45
- package/lib/esm/merge-file.js +0 -98
- package/lib/esm/plugins/index.js +0 -11
- package/lib/esm/plugins/json-merge.js +0 -208
- package/lib/esm/ref-drivers/git-current-ref.js +0 -12
- package/lib/esm/ref-drivers/index.js +0 -17
- package/lib/esm/ref-drivers/types.js +0 -2
- package/lib/esm/template-sync.js +0 -163
- package/lib/esm/test-utils/index.js +0 -10
- package/lib/esm/types.js +0 -2
- package/release.config.js +0 -40
- package/src/checkout-drivers/git-checkout.spec.ts +0 -69
- package/src/checkout-drivers/git-checkout.ts +0 -38
- package/src/checkout-drivers/index.ts +0 -2
- package/src/checkout-drivers/types.ts +0 -14
- package/src/clone-drivers/git-clone.ts +0 -20
- package/src/clone-drivers/index.ts +0 -2
- package/src/clone-drivers/types.ts +0 -20
- package/src/diff-drivers/git-diff.spec.ts +0 -73
- package/src/diff-drivers/git-diff.ts +0 -39
- package/src/diff-drivers/index.ts +0 -2
- package/src/diff-drivers/types.ts +0 -14
- package/src/formatting/__snapshots__/sync-results-to-md.spec.ts.snap +0 -39
- package/src/formatting/index.ts +0 -2
- package/src/formatting/infer-json-indent.spec.ts +0 -49
- package/src/formatting/infer-json-indent.ts +0 -16
- package/src/formatting/sync-results-to-md.spec.ts +0 -31
- package/src/formatting/sync-results-to-md.ts +0 -63
- package/src/index.ts +0 -3
- package/src/load-plugin.ts +0 -51
- package/src/match.spec.ts +0 -68
- package/src/match.ts +0 -52
- package/src/merge-file.spec.ts +0 -506
- package/src/merge-file.ts +0 -154
- package/src/plugins/index.ts +0 -12
- package/src/plugins/json-merge.spec.ts +0 -436
- package/src/plugins/json-merge.ts +0 -215
- package/src/ref-drivers/git-current-ref.spec.ts +0 -12
- package/src/ref-drivers/git-current-ref.ts +0 -9
- package/src/ref-drivers/index.ts +0 -1
- package/src/ref-drivers/types.ts +0 -10
- package/src/template-sync.spec.ts +0 -509
- package/src/template-sync.ts +0 -256
- package/src/test-utils/index.ts +0 -13
- package/src/types.ts +0 -129
- package/templatesync.local.json +0 -15
- package/test-fixtures/downstream/README.md +0 -3
- package/test-fixtures/downstream/package.json +0 -18
- package/test-fixtures/downstream/plugins/custom-plugin.js +0 -11
- package/test-fixtures/downstream/src/index.js +0 -2
- package/test-fixtures/downstream/src/index.ts +0 -1
- package/test-fixtures/downstream/src/templated.js +0 -2
- package/test-fixtures/downstream/src/templated.ts +0 -1
- package/test-fixtures/downstream/templatesync.json +0 -16
- package/test-fixtures/downstream/templatesync.local.json +0 -10
- package/test-fixtures/dummy-plugin.js +0 -8
- package/test-fixtures/glob-test/folder1/something.js +0 -1
- package/test-fixtures/glob-test/folder1/something.ts +0 -0
- package/test-fixtures/glob-test/toplevel.js +0 -0
- package/test-fixtures/glob-test/toplevel.txt +0 -0
- package/test-fixtures/template/custom-bin/something.txt +0 -1
- package/test-fixtures/template/package.json +0 -17
- package/test-fixtures/template/src/index.js +0 -2
- package/test-fixtures/template/src/index.ts +0 -1
- package/test-fixtures/template/src/templated.js +0 -2
- package/test-fixtures/template/src/templated.ts +0 -1
- package/test-fixtures/template/templatesync.json +0 -16
- package/test-fixtures/testGitRepo/README.md +0 -17
- package/test-fixtures/testGitRepo/gitDir/COMMIT_EDITMSG +0 -14
- package/test-fixtures/testGitRepo/gitDir/HEAD +0 -1
- package/test-fixtures/testGitRepo/gitDir/config +0 -7
- package/test-fixtures/testGitRepo/gitDir/description +0 -1
- package/test-fixtures/testGitRepo/gitDir/hooks/applypatch-msg.sample +0 -15
- package/test-fixtures/testGitRepo/gitDir/hooks/commit-msg.sample +0 -24
- package/test-fixtures/testGitRepo/gitDir/hooks/fsmonitor-watchman.sample +0 -174
- package/test-fixtures/testGitRepo/gitDir/hooks/post-update.sample +0 -8
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-applypatch.sample +0 -14
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-commit.sample +0 -49
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-merge-commit.sample +0 -13
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-push.sample +0 -53
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-rebase.sample +0 -169
- package/test-fixtures/testGitRepo/gitDir/hooks/pre-receive.sample +0 -24
- package/test-fixtures/testGitRepo/gitDir/hooks/prepare-commit-msg.sample +0 -42
- package/test-fixtures/testGitRepo/gitDir/hooks/push-to-checkout.sample +0 -78
- package/test-fixtures/testGitRepo/gitDir/hooks/sendemail-validate.sample +0 -77
- package/test-fixtures/testGitRepo/gitDir/hooks/update.sample +0 -128
- package/test-fixtures/testGitRepo/gitDir/index +0 -0
- package/test-fixtures/testGitRepo/gitDir/info/exclude +0 -6
- package/test-fixtures/testGitRepo/gitDir/logs/HEAD +0 -5
- package/test-fixtures/testGitRepo/gitDir/logs/refs/heads/master +0 -2
- package/test-fixtures/testGitRepo/gitDir/logs/refs/heads/test-branch +0 -2
- package/test-fixtures/testGitRepo/gitDir/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/6e/187bee8d02f39d0a1be8331dd8fe6a00c9b613 +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/73/185f1f3f5a6345e087d9f46dc4af77cc59449f +0 -2
- package/test-fixtures/testGitRepo/gitDir/objects/90/e7ea1089f939840e9649fd617584c1ad117159 +0 -3
- package/test-fixtures/testGitRepo/gitDir/objects/ba/99a452b9097047e9bfa8d5a08b3e452fcb364a +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/c5/8d400177cd5180b8566f82a127fafc5bf394b7 +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/e2/e668265db019249a7e8296d85f79000e3d71cf +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/e4/243e430c1ab69f3e344249f5b1859e90abc883 +0 -1
- package/test-fixtures/testGitRepo/gitDir/objects/ec/6c1cb72312605282ac61858cf1eaf1ea9f1d02 +0 -0
- package/test-fixtures/testGitRepo/gitDir/objects/fc/89cecc4ac0b5b075bd7d0ce9e09b2f50598b82 +0 -0
- package/test-fixtures/testGitRepo/gitDir/refs/heads/master +0 -1
- package/test-fixtures/testGitRepo/gitDir/refs/heads/test-branch +0 -1
- package/tsconfig.cjs.json +0 -12
- package/tsconfig.esm.json +0 -10
- package/tsconfig.json +0 -22
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { syncResultsToMd } from "./sync-results-to-md";
|
|
2
|
-
|
|
3
|
-
describe("syncResultsToMd", () => {
|
|
4
|
-
it("snapshots", () => {
|
|
5
|
-
expect(
|
|
6
|
-
syncResultsToMd({
|
|
7
|
-
localSkipFiles: ["src/file1.ts"],
|
|
8
|
-
localFileChanges: {
|
|
9
|
-
"package.json": [
|
|
10
|
-
{
|
|
11
|
-
count: 8,
|
|
12
|
-
value: "my thing",
|
|
13
|
-
added: true,
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
count: 10,
|
|
17
|
-
value: "your thang",
|
|
18
|
-
removed: true,
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
},
|
|
22
|
-
modifiedFiles: {
|
|
23
|
-
added: ["src/something.ts", "new_settings.toml"],
|
|
24
|
-
deleted: ["TODO.md", "throwaway.ts"],
|
|
25
|
-
modified: ["something.txt", ".env"],
|
|
26
|
-
total: 6,
|
|
27
|
-
},
|
|
28
|
-
}),
|
|
29
|
-
).toMatchSnapshot();
|
|
30
|
-
});
|
|
31
|
-
});
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Change } from "diff";
|
|
2
|
-
import {
|
|
3
|
-
TEMPLATE_SYNC_LOCAL_CONFIG,
|
|
4
|
-
TemplateSyncReturn,
|
|
5
|
-
} from "../template-sync";
|
|
6
|
-
|
|
7
|
-
export function syncResultsToMd(result: TemplateSyncReturn) {
|
|
8
|
-
return `# ${TEMPLATE_SYNC_LOCAL_CONFIG}
|
|
9
|
-
|
|
10
|
-
## Stopped the following files from syncing:
|
|
11
|
-
|
|
12
|
-
${result.localSkipFiles.reduce((s, file) => {
|
|
13
|
-
return `${s}* ${file}\n`;
|
|
14
|
-
}, "")}
|
|
15
|
-
|
|
16
|
-
## Changed the following files from what they would have synced:
|
|
17
|
-
|
|
18
|
-
${Object.keys(result.localFileChanges).reduce((s, file) => {
|
|
19
|
-
return `${s}${file}
|
|
20
|
-
\`\`\`diff
|
|
21
|
-
${result.localFileChanges[file].reduce((diffS, change) => {
|
|
22
|
-
return `${diffS}\n${makeChangeIntoDiffLines(change)}`;
|
|
23
|
-
}, "")}
|
|
24
|
-
\`\`\``;
|
|
25
|
-
}, "")}
|
|
26
|
-
|
|
27
|
-
## Files Modified (${result.modifiedFiles.total})
|
|
28
|
-
|
|
29
|
-
Added:
|
|
30
|
-
${result.modifiedFiles.added.reduce((s, f) => {
|
|
31
|
-
return `${s}\n- ${f}`;
|
|
32
|
-
}, "")}
|
|
33
|
-
|
|
34
|
-
Modified:
|
|
35
|
-
${result.modifiedFiles.modified.reduce((s, f) => {
|
|
36
|
-
return `${s}\n- ${f}`;
|
|
37
|
-
}, "")}
|
|
38
|
-
|
|
39
|
-
Deleted:
|
|
40
|
-
${result.modifiedFiles.deleted.reduce((s, f) => {
|
|
41
|
-
return `${s}\n- ${f}`;
|
|
42
|
-
}, "")}
|
|
43
|
-
`;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function makeChangeIntoDiffLines(change: Change, nonchangeMax = 3) {
|
|
47
|
-
const operator = change.added ? "+" : change.removed ? "-" : "";
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
!operator &&
|
|
51
|
-
nonchangeMax > 0 &&
|
|
52
|
-
change.count &&
|
|
53
|
-
change.count > nonchangeMax
|
|
54
|
-
) {
|
|
55
|
-
const lines = change.value.split("\n");
|
|
56
|
-
const partial = lines.slice(lines.length - nonchangeMax);
|
|
57
|
-
return `...\n${partial.join("\n")}\n`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return change.value.split("\n").reduce((s, line) => {
|
|
61
|
-
return `${s}${operator}${line}\n`;
|
|
62
|
-
}, "");
|
|
63
|
-
}
|
package/src/index.ts
DELETED
package/src/load-plugin.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { defaultExtensionMap } from "./plugins";
|
|
2
|
-
import { MergeConfig, MergePlugin } from "./types";
|
|
3
|
-
import { existsSync } from "fs";
|
|
4
|
-
import { resolve } from "path";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Loads the plugin associated with the merge config
|
|
8
|
-
* @param mergeConfig
|
|
9
|
-
* @param forExt
|
|
10
|
-
* @param configDir
|
|
11
|
-
* @returns
|
|
12
|
-
*/
|
|
13
|
-
export async function loadPlugin<T>(
|
|
14
|
-
mergeConfig: MergeConfig<T>,
|
|
15
|
-
configDir: string,
|
|
16
|
-
): Promise<MergePlugin<T>> {
|
|
17
|
-
if (mergeConfig.plugin.startsWith("_")) {
|
|
18
|
-
const defaultHandler = Object.values(defaultExtensionMap).find(
|
|
19
|
-
(el) => el.builtinName === mergeConfig.plugin,
|
|
20
|
-
);
|
|
21
|
-
if (!defaultHandler) {
|
|
22
|
-
throw new Error(
|
|
23
|
-
`No builtin merge function supplied for ${mergeConfig.plugin}. Cannot have merge config without custom plugin supplied.`,
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
return defaultHandler as MergePlugin<T>;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
let handler: MergePlugin<unknown>;
|
|
30
|
-
// First check if this is a local .js file
|
|
31
|
-
const localPath = resolve(configDir, mergeConfig.plugin);
|
|
32
|
-
const importPath = existsSync(localPath) ? localPath : mergeConfig.plugin;
|
|
33
|
-
try {
|
|
34
|
-
// Sad workaround for testing since dynamic import segfaults
|
|
35
|
-
if (process.env.JEST_WORKER_ID !== undefined) {
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
37
|
-
handler = require(importPath) as MergePlugin<unknown>;
|
|
38
|
-
} else {
|
|
39
|
-
handler = (await import(importPath)) as MergePlugin<unknown>;
|
|
40
|
-
}
|
|
41
|
-
if (!handler.merge) {
|
|
42
|
-
handler = (handler as unknown as { default: MergePlugin<unknown> })
|
|
43
|
-
.default;
|
|
44
|
-
}
|
|
45
|
-
} catch (err) {
|
|
46
|
-
console.error(err);
|
|
47
|
-
throw err;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return handler as MergePlugin<T>;
|
|
51
|
-
}
|
package/src/match.spec.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { resolve } from "path";
|
|
2
|
-
import { getAllFilesInDir } from "./match";
|
|
3
|
-
import { TEST_FIXTURES_DIR } from "./test-utils";
|
|
4
|
-
|
|
5
|
-
const TEST_GLOB_DIR = resolve(TEST_FIXTURES_DIR, "glob-test");
|
|
6
|
-
|
|
7
|
-
describe("getAllFilesInDir", () => {
|
|
8
|
-
it("gets all files in the directory with no ignores", () => {
|
|
9
|
-
const files = getAllFilesInDir(TEST_GLOB_DIR, []);
|
|
10
|
-
expect(files).toEqual(
|
|
11
|
-
expect.arrayContaining([
|
|
12
|
-
"folder1/something.js",
|
|
13
|
-
"folder1/something.ts",
|
|
14
|
-
"toplevel.js",
|
|
15
|
-
"toplevel.txt",
|
|
16
|
-
]),
|
|
17
|
-
);
|
|
18
|
-
try {
|
|
19
|
-
expect(files.length).toBe(4);
|
|
20
|
-
} catch (err) {
|
|
21
|
-
console.error("All found files: " + files);
|
|
22
|
-
throw err;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
it("gets all files in the directory that do not match the ignore (single)", () => {
|
|
26
|
-
const files = getAllFilesInDir(TEST_GLOB_DIR, ["**/*.ts"]);
|
|
27
|
-
expect(files).toEqual(
|
|
28
|
-
expect.arrayContaining([
|
|
29
|
-
"folder1/something.js",
|
|
30
|
-
"toplevel.js",
|
|
31
|
-
"toplevel.txt",
|
|
32
|
-
]),
|
|
33
|
-
);
|
|
34
|
-
try {
|
|
35
|
-
expect(files.length).toBe(3);
|
|
36
|
-
} catch (err) {
|
|
37
|
-
console.error("All found files: " + files);
|
|
38
|
-
throw err;
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
it("gets all files in the directory that do not match the ignore (multiple)", () => {
|
|
42
|
-
const files = getAllFilesInDir(TEST_GLOB_DIR, ["**/*.ts", "**/*.txt"]);
|
|
43
|
-
expect(files).toEqual(
|
|
44
|
-
expect.arrayContaining(["folder1/something.js", "toplevel.js"]),
|
|
45
|
-
);
|
|
46
|
-
try {
|
|
47
|
-
expect(files.length).toBe(2);
|
|
48
|
-
} catch (err) {
|
|
49
|
-
console.error("All found files: " + files);
|
|
50
|
-
throw err;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
it("gets all files in the directory that do not match the ignore with a folder level directive (multiple)", () => {
|
|
55
|
-
const files = getAllFilesInDir(TEST_GLOB_DIR, [
|
|
56
|
-
"**/*.ts",
|
|
57
|
-
"**/*.txt",
|
|
58
|
-
"folder1",
|
|
59
|
-
]);
|
|
60
|
-
expect(files).toEqual(expect.arrayContaining(["toplevel.js"]));
|
|
61
|
-
try {
|
|
62
|
-
expect(files.length).toBe(1);
|
|
63
|
-
} catch (err) {
|
|
64
|
-
console.error("All found files: " + files);
|
|
65
|
-
throw err;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
package/src/match.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { readdirSync } from "fs";
|
|
2
|
-
import { some } from "micromatch";
|
|
3
|
-
import { join } from "path";
|
|
4
|
-
|
|
5
|
-
export function invertMatchPatterns(patterns: string[]) {
|
|
6
|
-
return patterns.map((pattern) => {
|
|
7
|
-
if (pattern.startsWith("!")) {
|
|
8
|
-
return pattern.slice(1);
|
|
9
|
-
}
|
|
10
|
-
return `!${pattern}`;
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Gets all the files in the directory recursively while avoiding any micromatch patterns
|
|
16
|
-
* that would match for ignoring
|
|
17
|
-
*
|
|
18
|
-
* @param dir
|
|
19
|
-
* @param ignorePatterns
|
|
20
|
-
* @returns
|
|
21
|
-
*/
|
|
22
|
-
export function getAllFilesInDir(
|
|
23
|
-
dir: string,
|
|
24
|
-
ignorePatterns: string[],
|
|
25
|
-
): string[] {
|
|
26
|
-
return recurseDirsForFiles(dir, ignorePatterns);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function recurseDirsForFiles(
|
|
30
|
-
dirpath: string,
|
|
31
|
-
ignorePatterns: string[],
|
|
32
|
-
relativeRoot = "",
|
|
33
|
-
): string[] {
|
|
34
|
-
return readdirSync(dirpath, {
|
|
35
|
-
withFileTypes: true,
|
|
36
|
-
}).reduce((files, f) => {
|
|
37
|
-
const relPath = join(relativeRoot, f.name);
|
|
38
|
-
if (some(relPath, ignorePatterns)) {
|
|
39
|
-
return files;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Ensure we aren't ignoring these folders explicitly
|
|
43
|
-
if (f.isDirectory()) {
|
|
44
|
-
files.push(
|
|
45
|
-
...recurseDirsForFiles(join(dirpath, f.name), ignorePatterns, relPath),
|
|
46
|
-
);
|
|
47
|
-
} else {
|
|
48
|
-
files.push(relPath);
|
|
49
|
-
}
|
|
50
|
-
return files;
|
|
51
|
-
}, [] as string[]);
|
|
52
|
-
}
|