get from url, fix logic
All checks were successful
Unit tests / Unit tests (lts/*) (push) Successful in -2m0s
Unit tests / Unit tests (lts/hydrogen) (push) Successful in -1m59s
Distribution check / Generated files check (push) Successful in -1m58s
NPM Audit Check / Check NPM audit (push) Successful in -2m10s
Unit tests / Unit tests (latest) (push) Successful in -1m59s
All checks were successful
Unit tests / Unit tests (lts/*) (push) Successful in -2m0s
Unit tests / Unit tests (lts/hydrogen) (push) Successful in -1m59s
Distribution check / Generated files check (push) Successful in -1m58s
NPM Audit Check / Check NPM audit (push) Successful in -2m10s
Unit tests / Unit tests (latest) (push) Successful in -1m59s
This commit is contained in:
25
dist/index.js
vendored
25
dist/index.js
vendored
@@ -41379,11 +41379,15 @@ const ky = createInstance();
|
||||
//# sourceMappingURL=index.js.map
|
||||
;// CONCATENATED MODULE: external "fs/promises"
|
||||
const promises_namespaceObject = __WEBPACK_EXTERNAL_createRequire(import.meta.url)("fs/promises");
|
||||
// EXTERNAL MODULE: external "url"
|
||||
var external_url_ = __nccwpck_require__(7016);
|
||||
// EXTERNAL MODULE: ./node_modules/yaml/dist/index.js
|
||||
var dist = __nccwpck_require__(8815);
|
||||
;// CONCATENATED MODULE: ./lib/src/pkgbase.js
|
||||
|
||||
|
||||
|
||||
|
||||
async function parse(previous, current) {
|
||||
const prev = await tryRead(previous);
|
||||
const curr = await tryRead(current);
|
||||
@@ -41394,13 +41398,14 @@ async function parse(previous, current) {
|
||||
delete: [],
|
||||
actions,
|
||||
};
|
||||
if (isDelete(actions)) {
|
||||
// can't delete if there's nothing to delete/no previous success
|
||||
if (prev && isDelete(actions)) {
|
||||
const repo = prev.repos[actions.removeRepo];
|
||||
result.delete.push(...parseRepoContents(repo, actions.removeRepo));
|
||||
}
|
||||
else if (prev && isMove(actions)) {
|
||||
else if (isMove(actions)) {
|
||||
const moving = result.move = parseRepoContents(curr.repos[actions.addRepo], actions.removeRepo);
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), moving));
|
||||
prev && result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), moving));
|
||||
}
|
||||
else if ((result.build = isAdd(actions)) && prev) {
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), parseRepoContents(curr.repos[actions.addRepo], actions.addRepo)));
|
||||
@@ -41429,15 +41434,25 @@ function isAdd(actions) {
|
||||
function isMove(actions) {
|
||||
return !!(actions.removeRepo && actions.addRepo);
|
||||
}
|
||||
async function tryRead(file) {
|
||||
async function tryRead(location) {
|
||||
try {
|
||||
const contents = await promises_namespaceObject.readFile(file, { encoding: 'utf-8' });
|
||||
const contents = isUrl(location) ? await (await distribution.get(location)).text() : await promises_namespaceObject.readFile(location, { encoding: 'utf-8' });
|
||||
return dist/* parse */.qg(contents);
|
||||
}
|
||||
catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
function isUrl(s) {
|
||||
try {
|
||||
new external_url_.URL(s);
|
||||
return true;
|
||||
}
|
||||
catch (err) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
;
|
||||
//# sourceMappingURL=pkgbase.js.map
|
||||
;// CONCATENATED MODULE: ./lib/src/router.js
|
||||
|
||||
|
||||
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,7 @@
|
||||
import { type PathLike } from 'fs';
|
||||
import fsp from 'fs/promises';
|
||||
import { URL } from 'url';
|
||||
import ky from 'ky';
|
||||
import * as YAML from 'yaml';
|
||||
|
||||
export interface PackageInfo {
|
||||
@@ -51,9 +53,9 @@ export interface PkgBase {
|
||||
}
|
||||
}
|
||||
|
||||
export async function parse(previous: PathLike, current: PathLike): Promise<Result> {
|
||||
const prev = await tryRead(previous);
|
||||
const curr = await tryRead(current);
|
||||
export async function parse(previous: string, current: string): Promise<Result> {
|
||||
const prev: PkgBase | null = await tryRead(previous);
|
||||
const curr: PkgBase | null = await tryRead(current);
|
||||
const actions = curr?.actions;
|
||||
const result: Result = {
|
||||
build: false,
|
||||
@@ -62,13 +64,14 @@ export async function parse(previous: PathLike, current: PathLike): Promise<Resu
|
||||
actions,
|
||||
};
|
||||
|
||||
if (isDelete(actions)) {
|
||||
// can't delete if there's nothing to delete/no previous success
|
||||
if (prev && isDelete(actions)) {
|
||||
const repo: RepoContents = prev.repos[actions.removeRepo];
|
||||
result.delete.push(...parseRepoContents(repo, actions.removeRepo));
|
||||
}
|
||||
else if (prev && isMove(actions)) {
|
||||
else if (isMove(actions)) {
|
||||
const moving = result.move = parseRepoContents(curr.repos[actions.addRepo], actions.removeRepo);
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), moving));
|
||||
prev && result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), moving));
|
||||
}
|
||||
else if ((result.build = isAdd(actions)) && prev) {
|
||||
result.delete.push(...getDropped(parseRepoContents(prev.repos[actions.addRepo], actions.addRepo), parseRepoContents(curr.repos[actions.addRepo], actions.addRepo)));
|
||||
@@ -104,12 +107,21 @@ function isMove(actions: Actions): boolean {
|
||||
return !!(actions.removeRepo && actions.addRepo);
|
||||
}
|
||||
|
||||
export async function tryRead(file: PathLike): Promise<PkgBase | null> {
|
||||
export async function tryRead(location: string): Promise<PkgBase | null> {
|
||||
try {
|
||||
const contents = await fsp.readFile(file, { encoding: 'utf-8' });
|
||||
const contents = isUrl(location) ? await (await ky.get(location)).text() : await fsp.readFile(location, { encoding: 'utf-8' });
|
||||
return YAML.parse(contents);
|
||||
}
|
||||
catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function isUrl(s: string) {
|
||||
try {
|
||||
new URL(s);
|
||||
return true;
|
||||
} catch (err) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -129,7 +129,7 @@ describe('pkgbase parser', () => {
|
||||
}
|
||||
};
|
||||
const rDir = 'move-with-dropped';
|
||||
await expect(parse(path.join('test', 'resources', rDir, 'pkgbase.old.yaml'), path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected);
|
||||
await expect(parse(`https://git.sanin.dev/packages_test/pkgbase-yaml-parser/raw/branch/master/test/resources/${rDir}/pkgbase.old.yaml`, path.join('test', 'resources', rDir, 'pkgbase.new.yaml'))).resolves.toEqual(expected);
|
||||
});
|
||||
|
||||
it('can detect a delete operation', async () => {
|
||||
|
||||
Reference in New Issue
Block a user