catalog-model: Remove serializeEntityRef
Signed-off-by: Johan Haals <johan.haals@gmail.com>
This commit is contained in:
committed by
Fredrik Adelöw
parent
f8e3fe38c0
commit
edbc03814a
@@ -489,17 +489,6 @@ export class SchemaValidEntityPolicy implements EntityPolicy {
|
||||
enforce(entity: Entity): Promise<Entity>;
|
||||
}
|
||||
|
||||
// @public @deprecated
|
||||
export function serializeEntityRef(
|
||||
ref:
|
||||
| Entity
|
||||
| {
|
||||
kind?: string;
|
||||
namespace?: string;
|
||||
name: string;
|
||||
},
|
||||
): EntityRef;
|
||||
|
||||
// @public
|
||||
export const SOURCE_LOCATION_ANNOTATION = 'backstage.io/source-location';
|
||||
|
||||
|
||||
@@ -40,7 +40,6 @@ export {
|
||||
getEntityName,
|
||||
parseEntityName,
|
||||
parseEntityRef,
|
||||
serializeEntityRef,
|
||||
stringifyEntityRef,
|
||||
} from './ref';
|
||||
export type { EntityRefContext } from './ref';
|
||||
|
||||
@@ -16,12 +16,7 @@
|
||||
|
||||
import { ENTITY_DEFAULT_NAMESPACE } from './constants';
|
||||
import { Entity } from './Entity';
|
||||
import {
|
||||
compareEntityToRef,
|
||||
parseEntityName,
|
||||
parseEntityRef,
|
||||
serializeEntityRef,
|
||||
} from './ref';
|
||||
import { compareEntityToRef, parseEntityName, parseEntityRef } from './ref';
|
||||
|
||||
describe('ref', () => {
|
||||
describe('parseEntityName', () => {
|
||||
@@ -329,64 +324,6 @@ describe('ref', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('serializeEntityRef', () => {
|
||||
it('handles partials', () => {
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b', name: 'c' }),
|
||||
).toEqual('a:b/c');
|
||||
expect(serializeEntityRef({ namespace: 'b', name: 'c' })).toEqual('b/c');
|
||||
expect(serializeEntityRef({ kind: 'a', name: 'c' })).toEqual('a:c');
|
||||
expect(serializeEntityRef({ name: 'c' })).toEqual('c');
|
||||
});
|
||||
|
||||
it('handles entities', () => {
|
||||
const entityWithNamespace: Entity = {
|
||||
apiVersion: 'a',
|
||||
kind: 'b',
|
||||
metadata: {
|
||||
name: 'c',
|
||||
namespace: 'd',
|
||||
},
|
||||
};
|
||||
const entityWithoutNamespace: Entity = {
|
||||
apiVersion: 'a',
|
||||
kind: 'b',
|
||||
metadata: {
|
||||
name: 'c',
|
||||
},
|
||||
};
|
||||
expect(serializeEntityRef(entityWithNamespace)).toEqual('b:d/c');
|
||||
expect(serializeEntityRef(entityWithoutNamespace)).toEqual('b:c');
|
||||
});
|
||||
|
||||
it('picks the least complex form', () => {
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b', name: 'c' }),
|
||||
).toEqual('a:b/c');
|
||||
expect(serializeEntityRef({ namespace: 'b', name: 'c' })).toEqual('b/c');
|
||||
expect(serializeEntityRef({ kind: 'a', name: 'c' })).toEqual('a:c');
|
||||
expect(serializeEntityRef({ name: 'c' })).toEqual('c');
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a:x', namespace: 'b', name: 'c' }),
|
||||
).toEqual({ kind: 'a:x', namespace: 'b', name: 'c' });
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a/x', namespace: 'b', name: 'c' }),
|
||||
).toEqual({ kind: 'a/x', namespace: 'b', name: 'c' });
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b:x', name: 'c' }),
|
||||
).toEqual({ kind: 'a', namespace: 'b:x', name: 'c' });
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b/x', name: 'c' }),
|
||||
).toEqual({ kind: 'a', namespace: 'b/x', name: 'c' });
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b', name: 'c:x' }),
|
||||
).toEqual({ kind: 'a', namespace: 'b', name: 'c:x' });
|
||||
expect(
|
||||
serializeEntityRef({ kind: 'a', namespace: 'b', name: 'c/x' }),
|
||||
).toEqual({ kind: 'a', namespace: 'b', name: 'c/x' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('compareEntityToRef', () => {
|
||||
const entityWithNamespace: Entity = {
|
||||
apiVersion: 'a',
|
||||
|
||||
@@ -184,54 +184,6 @@ export function parseEntityRef(
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes an entity reference or name, and outputs an entity reference on the
|
||||
* most compact form possible. I.e. if the parts do not contain any
|
||||
* special/reserved characters, it outputs the string form, otherwise it
|
||||
* outputs the compound form.
|
||||
*
|
||||
* @public
|
||||
* @deprecated Use `stringifyEntityRef` instead
|
||||
* @param ref - The reference to serialize
|
||||
* @returns The same reference on either string or compound form
|
||||
*/
|
||||
export function serializeEntityRef(
|
||||
ref:
|
||||
| Entity
|
||||
| {
|
||||
kind?: string;
|
||||
namespace?: string;
|
||||
name: string;
|
||||
},
|
||||
): EntityRef {
|
||||
let kind;
|
||||
let namespace;
|
||||
let name;
|
||||
|
||||
if ('metadata' in ref) {
|
||||
kind = ref.kind;
|
||||
namespace = ref.metadata.namespace;
|
||||
name = ref.metadata.name;
|
||||
} else {
|
||||
kind = ref.kind;
|
||||
namespace = ref.namespace;
|
||||
name = ref.name;
|
||||
}
|
||||
|
||||
if (
|
||||
kind?.includes(':') ||
|
||||
kind?.includes('/') ||
|
||||
namespace?.includes(':') ||
|
||||
namespace?.includes('/') ||
|
||||
name.includes(':') ||
|
||||
name.includes('/')
|
||||
) {
|
||||
return { kind, namespace, name };
|
||||
}
|
||||
|
||||
return `${kind ? `${kind}:` : ''}${namespace ? `${namespace}/` : ''}${name}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes an entity or entity name/reference, and returns the string form of an
|
||||
* entity ref.
|
||||
|
||||
Reference in New Issue
Block a user