refactor(core): rename ngDirectiveDef to ɵdir (#33110)

Directive defs are not considered public API, so the property
that contains them should be prefixed with Angular's marker
for "private" ('ɵ') to discourage apps from relying on def
APIs directly.

This commit adds the prefix and shortens the name from
ngDirectiveDef to dir. This is because property names
cannot be minified by Uglify without turning on property
mangling (which most apps have turned off) and are thus
size-sensitive.

Note that the other "defs" (ngFactoryDef, etc) will be
prefixed and shortened in follow-up PRs, in an attempt to
limit how large and conflict-y this change is.

PR Close #33110
This commit is contained in:
Kara Erickson
2019-10-11 12:28:12 -07:00
committed by Miško Hevery
parent d8249d1230
commit 1a67d70bf8
47 changed files with 150 additions and 156 deletions

View File

@ -100,7 +100,7 @@ export class DirectiveDecoratorHandler implements
}
return [
factoryRes, {
name: 'ngDirectiveDef',
name: 'ɵdir',
initializer: res.expression,
statements: [],
type: res.type,

View File

@ -69,7 +69,7 @@ export class DtsMetadataReader implements MetadataReader {
getDirectiveMetadata(ref: Reference<ClassDeclaration>): DirectiveMeta|null {
const clazz = ref.node;
const def = this.reflector.getMembersOfClass(clazz).find(
field => field.isStatic && (field.name === 'ɵcmp' || field.name === 'ngDirectiveDef'));
field => field.isStatic && (field.name === 'ɵcmp' || field.name === 'ɵdir'));
if (def === undefined) {
// No definition could be found.
return null;

View File

@ -85,7 +85,7 @@ runInEachFileSystem(() => {
const {resolver, refs} = makeTestEnv({
'test': `
export declare class Dir {
static ngDirectiveDef: DirectiveMeta<Dir, '[dir]', ['exportAs'], {'input': 'input2'},
static ɵdir: DirectiveMeta<Dir, '[dir]', ['exportAs'], {'input': 'input2'},
{'output': 'output2'}, ['query']>;
}
@ -103,7 +103,7 @@ runInEachFileSystem(() => {
const {resolver, refs} = makeTestEnv({
'test': `
export declare class Dir {
static ngDirectiveDef: DirectiveMeta<Dir, '[dir]', never, never, never, never>;
static ɵdir: DirectiveMeta<Dir, '[dir]', never, never, never, never>;
}
export declare class ModuleA {
@ -124,7 +124,7 @@ runInEachFileSystem(() => {
const {resolver, refs} = makeTestEnv({
'declaration': `
export declare class Dir {
static ngDirectiveDef: DirectiveMeta<Dir, '[dir]', never, never, never, never>;
static ɵdir: DirectiveMeta<Dir, '[dir]', never, never, never, never>;
}
export declare class ModuleA {
@ -152,7 +152,7 @@ runInEachFileSystem(() => {
{
'deep': `
export declare class DeepDir {
static ngDirectiveDef: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
static ɵdir: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
}
export declare class DeepModule {
@ -163,7 +163,7 @@ runInEachFileSystem(() => {
import * as deep from 'deep';
export declare class MiddleDir {
static ngDirectiveDef: DirectiveMeta<MiddleDir, '[middle]', never, never, never, never>;
static ɵdir: DirectiveMeta<MiddleDir, '[middle]', never, never, never, never>;
}
export declare class MiddleModule {
@ -174,7 +174,7 @@ runInEachFileSystem(() => {
import * as middle from 'middle';
export declare class ShallowDir {
static ngDirectiveDef: DirectiveMeta<ShallowDir, '[middle]', never, never, never, never>;
static ɵdir: DirectiveMeta<ShallowDir, '[middle]', never, never, never, never>;
}
export declare class ShallowModule {
@ -202,7 +202,7 @@ runInEachFileSystem(() => {
{
'deep': `
export declare class DeepDir {
static ngDirectiveDef: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
static ɵdir: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
}
export declare class DeepModule {
@ -213,7 +213,7 @@ runInEachFileSystem(() => {
import * as deep from 'deep';
export declare class MiddleDir {
static ngDirectiveDef: DirectiveMeta<MiddleDir, '[middle]', never, never, never, never>;
static ɵdir: DirectiveMeta<MiddleDir, '[middle]', never, never, never, never>;
}
export declare class MiddleModule {
@ -224,7 +224,7 @@ runInEachFileSystem(() => {
import * as middle from 'middle';
export declare class ShallowDir {
static ngDirectiveDef: DirectiveMeta<ShallowDir, '[middle]', never, never, never, never>;
static ɵdir: DirectiveMeta<ShallowDir, '[middle]', never, never, never, never>;
}
export declare class ShallowModule {
@ -253,7 +253,7 @@ runInEachFileSystem(() => {
{
'module': `
export declare class DeepDir {
static ngDirectiveDef: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
static ɵdir: DirectiveMeta<DeepDir, '[deep]', never, never, never, never>;
}
export declare class DeepModule {

View File

@ -21,7 +21,7 @@
const R3_DEF_NAME_PATTERN = [
'ngBaseDef',
'ɵcmp',
'ngDirectiveDef',
'ɵdir',
'ngInjectableDef',
'ngInjectorDef',
'ngModuleDef',